From 538d6ce82859e4476bb23c04e51dbbd0d1a9193f Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Wed, 4 May 2022 21:00:32 +0300 Subject: [PATCH 01/64] fix(48948): disallow constructor name in class accessors and generators --- src/compiler/checker.ts | 7 +++++++ src/compiler/diagnosticMessages.json | 8 ++++++++ .../reference/constructorNameInAccessor.errors.txt | 14 ++++++++++++++ .../reference/constructorNameInAccessor.js | 12 ++++++++++++ .../reference/constructorNameInAccessor.symbols | 12 ++++++++++++ .../reference/constructorNameInAccessor.types | 12 ++++++++++++ .../constructorNameInGenerator.errors.txt | 10 ++++++++++ .../reference/constructorNameInGenerator.js | 10 ++++++++++ .../reference/constructorNameInGenerator.symbols | 8 ++++++++ .../reference/constructorNameInGenerator.types | 8 ++++++++ tests/cases/compiler/constructorNameInAccessor.ts | 5 +++++ tests/cases/compiler/constructorNameInGenerator.ts | 4 ++++ 12 files changed, 110 insertions(+) create mode 100644 tests/baselines/reference/constructorNameInAccessor.errors.txt create mode 100644 tests/baselines/reference/constructorNameInAccessor.js create mode 100644 tests/baselines/reference/constructorNameInAccessor.symbols create mode 100644 tests/baselines/reference/constructorNameInAccessor.types create mode 100644 tests/baselines/reference/constructorNameInGenerator.errors.txt create mode 100644 tests/baselines/reference/constructorNameInGenerator.js create mode 100644 tests/baselines/reference/constructorNameInGenerator.symbols create mode 100644 tests/baselines/reference/constructorNameInGenerator.types create mode 100644 tests/cases/compiler/constructorNameInAccessor.ts create mode 100644 tests/cases/compiler/constructorNameInGenerator.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5a1f6f440fe..5ee0f6c3f0a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -35325,6 +35325,10 @@ namespace ts { // Grammar checking if (!checkGrammarMethod(node)) checkGrammarComputedPropertyName(node.name); + if (isMethodDeclaration(node) && node.asteriskToken && isIdentifier(node.name) && idText(node.name) === "constructor") { + error(node.name, Diagnostics.Class_constructor_may_not_be_a_generator); + } + // Grammar checking for modifiers is done inside the function checkGrammarFunctionLikeDeclaration checkFunctionOrMethodDeclaration(node); @@ -35477,6 +35481,9 @@ namespace ts { } function checkAccessorDeclaration(node: AccessorDeclaration) { + if (isIdentifier(node.name) && idText(node.name) === "constructor") { + error(node.name, Diagnostics.Class_constructor_may_not_be_an_accessor); + } addLazyDiagnostic(checkAccessorDeclarationDiagnostics); checkSourceElement(node.body); setNodeLinksForPrivateIdentifierScope(node); diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 207b23d7013..16aa9a57304 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1012,6 +1012,10 @@ "category": "Error", "code": 1340 }, + "Class constructor may not be an accessor.": { + "category": "Error", + "code": 1341 + }, "Type arguments cannot be used here.": { "category": "Error", "code": 1342 @@ -1084,6 +1088,10 @@ "category": "Error", "code": 1359 }, + "Class constructor may not be a generator.": { + "category": "Error", + "code": 1360 + }, "'{0}' cannot be used as a value because it was imported using 'import type'.": { "category": "Error", "code": 1361 diff --git a/tests/baselines/reference/constructorNameInAccessor.errors.txt b/tests/baselines/reference/constructorNameInAccessor.errors.txt new file mode 100644 index 00000000000..b83e2cfbde8 --- /dev/null +++ b/tests/baselines/reference/constructorNameInAccessor.errors.txt @@ -0,0 +1,14 @@ +tests/cases/compiler/constructorNameInAccessor.ts(2,9): error TS1341: Class constructor may not be an accessor. +tests/cases/compiler/constructorNameInAccessor.ts(3,9): error TS1341: Class constructor may not be an accessor. + + +==== tests/cases/compiler/constructorNameInAccessor.ts (2 errors) ==== + class C1 { + get constructor() { return } + ~~~~~~~~~~~ +!!! error TS1341: Class constructor may not be an accessor. + set constructor(value) {} + ~~~~~~~~~~~ +!!! error TS1341: Class constructor may not be an accessor. + } + \ No newline at end of file diff --git a/tests/baselines/reference/constructorNameInAccessor.js b/tests/baselines/reference/constructorNameInAccessor.js new file mode 100644 index 00000000000..041d812b016 --- /dev/null +++ b/tests/baselines/reference/constructorNameInAccessor.js @@ -0,0 +1,12 @@ +//// [constructorNameInAccessor.ts] +class C1 { + get constructor() { return } + set constructor(value) {} +} + + +//// [constructorNameInAccessor.js] +class C1 { + get constructor() { return; } + set constructor(value) { } +} diff --git a/tests/baselines/reference/constructorNameInAccessor.symbols b/tests/baselines/reference/constructorNameInAccessor.symbols new file mode 100644 index 00000000000..7d7a3e52437 --- /dev/null +++ b/tests/baselines/reference/constructorNameInAccessor.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/constructorNameInAccessor.ts === +class C1 { +>C1 : Symbol(C1, Decl(constructorNameInAccessor.ts, 0, 0)) + + get constructor() { return } +>constructor : Symbol(C1.constructor, Decl(constructorNameInAccessor.ts, 0, 10), Decl(constructorNameInAccessor.ts, 1, 32)) + + set constructor(value) {} +>constructor : Symbol(C1.constructor, Decl(constructorNameInAccessor.ts, 0, 10), Decl(constructorNameInAccessor.ts, 1, 32)) +>value : Symbol(value, Decl(constructorNameInAccessor.ts, 2, 20)) +} + diff --git a/tests/baselines/reference/constructorNameInAccessor.types b/tests/baselines/reference/constructorNameInAccessor.types new file mode 100644 index 00000000000..9b797f21891 --- /dev/null +++ b/tests/baselines/reference/constructorNameInAccessor.types @@ -0,0 +1,12 @@ +=== tests/cases/compiler/constructorNameInAccessor.ts === +class C1 { +>C1 : C1 + + get constructor() { return } +>constructor : void + + set constructor(value) {} +>constructor : void +>value : void +} + diff --git a/tests/baselines/reference/constructorNameInGenerator.errors.txt b/tests/baselines/reference/constructorNameInGenerator.errors.txt new file mode 100644 index 00000000000..a66d3693648 --- /dev/null +++ b/tests/baselines/reference/constructorNameInGenerator.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/constructorNameInGenerator.ts(2,6): error TS1360: Class constructor may not be a generator. + + +==== tests/cases/compiler/constructorNameInGenerator.ts (1 errors) ==== + class C2 { + *constructor() {} + ~~~~~~~~~~~ +!!! error TS1360: Class constructor may not be a generator. + } + \ No newline at end of file diff --git a/tests/baselines/reference/constructorNameInGenerator.js b/tests/baselines/reference/constructorNameInGenerator.js new file mode 100644 index 00000000000..fb7b318a192 --- /dev/null +++ b/tests/baselines/reference/constructorNameInGenerator.js @@ -0,0 +1,10 @@ +//// [constructorNameInGenerator.ts] +class C2 { + *constructor() {} +} + + +//// [constructorNameInGenerator.js] +class C2 { + *constructor() { } +} diff --git a/tests/baselines/reference/constructorNameInGenerator.symbols b/tests/baselines/reference/constructorNameInGenerator.symbols new file mode 100644 index 00000000000..4da0599f5bd --- /dev/null +++ b/tests/baselines/reference/constructorNameInGenerator.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/constructorNameInGenerator.ts === +class C2 { +>C2 : Symbol(C2, Decl(constructorNameInGenerator.ts, 0, 0)) + + *constructor() {} +>constructor : Symbol(C2.constructor, Decl(constructorNameInGenerator.ts, 0, 10)) +} + diff --git a/tests/baselines/reference/constructorNameInGenerator.types b/tests/baselines/reference/constructorNameInGenerator.types new file mode 100644 index 00000000000..799bdf6d7f7 --- /dev/null +++ b/tests/baselines/reference/constructorNameInGenerator.types @@ -0,0 +1,8 @@ +=== tests/cases/compiler/constructorNameInGenerator.ts === +class C2 { +>C2 : C2 + + *constructor() {} +>constructor : () => Generator +} + diff --git a/tests/cases/compiler/constructorNameInAccessor.ts b/tests/cases/compiler/constructorNameInAccessor.ts new file mode 100644 index 00000000000..878c4b8dc78 --- /dev/null +++ b/tests/cases/compiler/constructorNameInAccessor.ts @@ -0,0 +1,5 @@ +// @target: esnext +class C1 { + get constructor() { return } + set constructor(value) {} +} diff --git a/tests/cases/compiler/constructorNameInGenerator.ts b/tests/cases/compiler/constructorNameInGenerator.ts new file mode 100644 index 00000000000..7040fb40baa --- /dev/null +++ b/tests/cases/compiler/constructorNameInGenerator.ts @@ -0,0 +1,4 @@ +// @target: esnext +class C2 { + *constructor() {} +} From 8e433cda3dcdcd337eab0030942728536780ea8e Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 5 May 2022 12:53:56 -0700 Subject: [PATCH 02/64] Allow export map entries to remap back to input files for a program (#47925) * Allow export map entries to remap back to input files for a program * Fix file casing issues on windows * Implement abiguity error, doesnt quite work * Refine selection logic in error case to use getCommonSourceDirectory, add more tests --- src/compiler/diagnosticMessages.json | 9 + src/compiler/moduleNameResolver.ts | 182 ++++++++++++++++-- src/compiler/program.ts | 31 +++ src/compiler/types.ts | 4 + src/compiler/utilities.ts | 10 + src/testRunner/unittests/moduleResolution.ts | 6 + ...sPackageSelfName(module=node16).errors.txt | 2 + ...ackageSelfName(module=nodenext).errors.txt | 2 + ...alPackageExports(module=node16).errors.txt | 2 + ...PackageExports(module=nodenext).errors.txt | 2 + ...JsPackageExports(module=node16).errors.txt | 2 + ...PackageExports(module=nodenext).errors.txt | 2 + ...JsPackageImports(module=node16).errors.txt | 2 + ...PackageImports(module=nodenext).errors.txt | 2 + ...alPackageExports(module=node16).errors.txt | 2 + ...PackageExports(module=nodenext).errors.txt | 2 + ...thPackageExports(module=node16).errors.txt | 2 + ...PackageExports(module=nodenext).errors.txt | 2 + ...esPackageExports(module=node16).errors.txt | 2 + ...PackageExports(module=nodenext).errors.txt | 2 + .../nodeNextPackageImportMapRootDir.js | 25 +++ .../nodeNextPackageImportMapRootDir.symbols | 12 ++ .../nodeNextPackageImportMapRootDir.types | 13 ++ ...deNextPackageSelfNameWithOutDir.errors.txt | 19 ++ .../nodeNextPackageSelfNameWithOutDir.js | 22 +++ .../nodeNextPackageSelfNameWithOutDir.symbols | 12 ++ .../nodeNextPackageSelfNameWithOutDir.types | 13 ++ ...ackageSelfNameWithOutDirDeclDir.errors.txt | 22 +++ ...odeNextPackageSelfNameWithOutDirDeclDir.js | 29 +++ ...xtPackageSelfNameWithOutDirDeclDir.symbols | 12 ++ ...NextPackageSelfNameWithOutDirDeclDir.types | 13 ++ ...ckageSelfNameWithOutDirDeclDirComposite.js | 29 +++ ...SelfNameWithOutDirDeclDirComposite.symbols | 12 ++ ...geSelfNameWithOutDirDeclDirComposite.types | 13 ++ ...ameWithOutDirDeclDirCompositeNestedDirs.js | 46 +++++ ...thOutDirDeclDirCompositeNestedDirs.symbols | 25 +++ ...WithOutDirDeclDirCompositeNestedDirs.types | 26 +++ ...NameWithOutDirDeclDirNestedDirs.errors.txt | 41 ++++ ...kageSelfNameWithOutDirDeclDirNestedDirs.js | 46 +++++ ...elfNameWithOutDirDeclDirNestedDirs.symbols | 25 +++ ...eSelfNameWithOutDirDeclDirNestedDirs.types | 26 +++ ...PackageSelfNameWithOutDirDeclDirRootDir.js | 29 +++ ...geSelfNameWithOutDirDeclDirRootDir.symbols | 12 ++ ...kageSelfNameWithOutDirDeclDirRootDir.types | 13 ++ ...odeNextPackageSelfNameWithOutDirRootDir.js | 22 +++ ...xtPackageSelfNameWithOutDirRootDir.symbols | 12 ++ ...NextPackageSelfNameWithOutDirRootDir.types | 13 ++ .../nodeNextPackageImportMapRootDir.ts | 20 ++ .../nodeNextPackageSelfNameWithOutDir.ts | 16 ++ ...odeNextPackageSelfNameWithOutDirDeclDir.ts | 21 ++ ...ckageSelfNameWithOutDirDeclDirComposite.ts | 26 +++ ...ameWithOutDirDeclDirCompositeNestedDirs.ts | 37 ++++ ...kageSelfNameWithOutDirDeclDirNestedDirs.ts | 37 ++++ ...PackageSelfNameWithOutDirDeclDirRootDir.ts | 22 +++ ...odeNextPackageSelfNameWithOutDirRootDir.ts | 17 ++ 55 files changed, 1035 insertions(+), 13 deletions(-) create mode 100644 tests/baselines/reference/nodeNextPackageImportMapRootDir.js create mode 100644 tests/baselines/reference/nodeNextPackageImportMapRootDir.symbols create mode 100644 tests/baselines/reference/nodeNextPackageImportMapRootDir.types create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.errors.txt create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.js create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.symbols create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.types create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.errors.txt create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.js create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.symbols create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.types create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.js create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.symbols create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.types create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.js create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.symbols create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.types create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.errors.txt create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.js create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.symbols create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.types create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.js create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.symbols create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.types create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.js create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.symbols create mode 100644 tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.types create mode 100644 tests/cases/compiler/nodeNextPackageImportMapRootDir.ts create mode 100644 tests/cases/compiler/nodeNextPackageSelfNameWithOutDir.ts create mode 100644 tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDir.ts create mode 100644 tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirComposite.ts create mode 100644 tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.ts create mode 100644 tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.ts create mode 100644 tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.ts create mode 100644 tests/cases/compiler/nodeNextPackageSelfNameWithOutDirRootDir.ts diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 3e1b4a3ad2d..2382a16cf1d 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1511,6 +1511,15 @@ "code": 2207 }, + "The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.": { + "category": "Error", + "code": 2209 + }, + "The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.": { + "category": "Error", + "code": 2210 + }, + "Duplicate identifier '{0}'.": { "category": "Error", "code": 2300 diff --git a/src/compiler/moduleNameResolver.ts b/src/compiler/moduleNameResolver.ts index 6b0664b835c..8f466c0495a 100644 --- a/src/compiler/moduleNameResolver.ts +++ b/src/compiler/moduleNameResolver.ts @@ -86,14 +86,15 @@ namespace ts { return { fileName: resolved.path, packageId: resolved.packageId }; } - function createResolvedModuleWithFailedLookupLocations(resolved: Resolved | undefined, isExternalLibraryImport: boolean | undefined, failedLookupLocations: string[], resultFromCache: ResolvedModuleWithFailedLookupLocations | undefined): ResolvedModuleWithFailedLookupLocations { + function createResolvedModuleWithFailedLookupLocations(resolved: Resolved | undefined, isExternalLibraryImport: boolean | undefined, failedLookupLocations: string[], diagnostics: Diagnostic[], resultFromCache: ResolvedModuleWithFailedLookupLocations | undefined): ResolvedModuleWithFailedLookupLocations { if (resultFromCache) { resultFromCache.failedLookupLocations.push(...failedLookupLocations); return resultFromCache; } return { resolvedModule: resolved && { resolvedFileName: resolved.path, originalPath: resolved.originalPath === true ? undefined : resolved.originalPath, extension: resolved.extension, isExternalLibraryImport, packageId: resolved.packageId }, - failedLookupLocations + failedLookupLocations, + resolutionDiagnostics: diagnostics }; } @@ -107,6 +108,8 @@ namespace ts { packageJsonInfoCache: PackageJsonInfoCache | undefined; features: NodeResolutionFeatures; conditions: string[]; + requestContainingDirectory: string | undefined; + reportDiagnostic: DiagnosticReporter; } /** Just the fields that we use for module resolution. */ @@ -354,7 +357,18 @@ namespace ts { features |= NodeResolutionFeatures.EsmMode; } const conditions = features & NodeResolutionFeatures.Exports ? features & NodeResolutionFeatures.EsmMode ? ["node", "import", "types"] : ["node", "require", "types"] : []; - const moduleResolutionState: ModuleResolutionState = { compilerOptions: options, host, traceEnabled, failedLookupLocations, packageJsonInfoCache: cache, features, conditions }; + const diagnostics: Diagnostic[] = []; + const moduleResolutionState: ModuleResolutionState = { + compilerOptions: options, + host, + traceEnabled, + failedLookupLocations, + packageJsonInfoCache: cache, + features, + conditions, + requestContainingDirectory: containingDirectory, + reportDiagnostic: diag => void diagnostics.push(diag), + }; let resolved = primaryLookup(); let primary = true; if (!resolved) { @@ -374,7 +388,7 @@ namespace ts { isExternalLibraryImport: pathContainsNodeModules(fileName), }; } - result = { resolvedTypeReferenceDirective, failedLookupLocations }; + result = { resolvedTypeReferenceDirective, failedLookupLocations, resolutionDiagnostics: diagnostics }; perFolderCache?.set(typeReferenceDirectiveName, /*mode*/ resolutionMode, result); if (traceEnabled) traceResult(result); return result; @@ -468,6 +482,8 @@ namespace ts { packageJsonInfoCache: cache?.getPackageJsonInfoCache(), conditions: emptyArray, features: NodeResolutionFeatures.None, + requestContainingDirectory: containingDirectory, + reportDiagnostic: noop }; return forEachAncestorDirectory(containingDirectory, ancestorDirectory => { @@ -1317,6 +1333,7 @@ namespace ts { conditions.pop(); } + const diagnostics: Diagnostic[] = []; const state: ModuleResolutionState = { compilerOptions, host, @@ -1325,10 +1342,12 @@ namespace ts { packageJsonInfoCache: cache, features, conditions, + requestContainingDirectory: containingDirectory, + reportDiagnostic: diag => void diagnostics.push(diag), }; const result = forEach(extensions, ext => tryResolve(ext)); - return createResolvedModuleWithFailedLookupLocations(result?.value?.resolved, result?.value?.isExternalLibraryImport, failedLookupLocations, state.resultFromCache); + return createResolvedModuleWithFailedLookupLocations(result?.value?.resolved, result?.value?.isExternalLibraryImport, failedLookupLocations, diagnostics, state.resultFromCache); function tryResolve(extensions: Extensions): SearchResult<{ resolved: Resolved, isExternalLibraryImport: boolean }> { const loader: ResolutionKindSpecificLoader = (extensions, candidate, onlyRecordFailures, state) => nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, /*considerPackageJson*/ true); @@ -1516,9 +1535,9 @@ namespace ts { } function loadJSOrExactTSFileName(extensions: Extensions, candidate: string, onlyRecordFailures: boolean, state: ModuleResolutionState): PathAndExtension | undefined { - if ((extensions === Extensions.TypeScript || extensions === Extensions.DtsOnly) && isDeclarationFileName(candidate)) { + if ((extensions === Extensions.TypeScript || extensions === Extensions.DtsOnly) && fileExtensionIsOneOf(candidate, supportedTSExtensionsFlat)) { const result = tryFile(candidate, onlyRecordFailures, state); - return result !== undefined ? { path: candidate, ext: forEach(supportedDeclarationExtensions, e => fileExtensionIs(candidate, e) ? e : undefined)! } : undefined; + return result !== undefined ? { path: candidate, ext: tryExtractTSExtension(candidate) as Extension } : undefined; } return loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state); @@ -1655,6 +1674,8 @@ namespace ts { packageJsonInfoCache: cache?.getPackageJsonInfoCache(), conditions: ["node", "require", "types"], features, + requestContainingDirectory: packageJsonInfo.packageDirectory, + reportDiagnostic: noop }; const requireResolution = loadNodeModuleFromDirectoryWorker( extensions, @@ -1764,6 +1785,8 @@ namespace ts { packageJsonInfoCache: PackageJsonInfoCache | undefined; features: number; conditions: never[]; + requestContainingDirectory: string | undefined; + reportDiagnostic: DiagnosticReporter } = { host, compilerOptions: options, @@ -1772,6 +1795,8 @@ namespace ts { packageJsonInfoCache, features: 0, conditions: [], + requestContainingDirectory: undefined, + reportDiagnostic: noop }; const parts = getPathComponents(fileName); parts.pop(); @@ -2112,8 +2137,9 @@ namespace ts { } return toSearchResult(/*value*/ undefined); } - const finalPath = getNormalizedAbsolutePath(pattern ? resolvedTarget.replace(/\*/g, subpath) : resolvedTarget + subpath, state.host.getCurrentDirectory?.()); - + const finalPath = toAbsolutePath(pattern ? resolvedTarget.replace(/\*/g, subpath) : resolvedTarget + subpath); + const inputLink = tryLoadInputFileForPath(finalPath, subpath, combinePaths(scope.packageDirectory, "package.json"), isImports); + if (inputLink) return inputLink; return toSearchResult(withPackageId(scope, loadJSOrExactTSFileName(extensions, finalPath, /*onlyRecordFailures*/ false, state))); } else if (typeof target === "object" && target !== null) { // eslint-disable-line no-null/no-null @@ -2154,6 +2180,134 @@ namespace ts { trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName); } return toSearchResult(/*value*/ undefined); + + function toAbsolutePath(path: string): string; + function toAbsolutePath(path: string | undefined): string | undefined; + function toAbsolutePath(path: string | undefined): string | undefined { + if (path === undefined) return path; + return hostGetCanonicalFileName({ useCaseSensitiveFileNames })(getNormalizedAbsolutePath(path, state.host.getCurrentDirectory?.())); + } + + function combineDirectoryPath(root: string, dir: string) { + return ensureTrailingDirectorySeparator(combinePaths(root, dir)); + } + + function useCaseSensitiveFileNames() { + return !state.host.useCaseSensitiveFileNames ? true : + typeof state.host.useCaseSensitiveFileNames === "boolean" ? state.host.useCaseSensitiveFileNames : + state.host.useCaseSensitiveFileNames(); + } + + function tryLoadInputFileForPath(finalPath: string, entry: string, packagePath: string, isImports: boolean) { + // Replace any references to outputs for files in the program with the input files to support package self-names used with outDir + // PROBLEM: We don't know how to calculate the output paths yet, because the "common source directory" we use as the base of the file structure + // we reproduce into the output directory is based on the set of input files, which we're still in the process of traversing and resolving! + // _Given that_, we have to guess what the base of the output directory is (obviously the user wrote the export map, so has some idea what it is!). + // We are going to probe _so many_ possible paths. We limit where we'll do this to try to reduce the possibilities of false positive lookups. + if ((extensions === Extensions.TypeScript || extensions === Extensions.JavaScript || extensions === Extensions.Json) + && (state.compilerOptions.declarationDir || state.compilerOptions.outDir) + && finalPath.indexOf("/node_modules/") === -1 + && (state.compilerOptions.configFile ? startsWith(toAbsolutePath(state.compilerOptions.configFile.fileName), scope.packageDirectory) : true) + ) { + // So that all means we'll only try these guesses for files outside `node_modules` in a directory where the `package.json` and `tsconfig.json` are siblings. + // Even with all that, we still don't know if the root of the output file structure will be (relative to the package file) + // `.`, `./src` or any other deeper directory structure. (If project references are used, it's definitely `.` by fiat, so that should be pretty common.) + + const getCanonicalFileName = hostGetCanonicalFileName({ useCaseSensitiveFileNames }); + const commonSourceDirGuesses: string[] = []; + // A `rootDir` compiler option strongly indicates the root location + // A `composite` project is using project references and has it's common src dir set to `.`, so it shouldn't need to check any other locations + if (state.compilerOptions.rootDir || (state.compilerOptions.composite && state.compilerOptions.configFilePath)) { + const commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, () => [], state.host.getCurrentDirectory?.() || "", getCanonicalFileName)); + commonSourceDirGuesses.push(commonDir); + } + else if (state.requestContainingDirectory) { + // However without either of those set we're in the dark. Let's say you have + // + // ./tools/index.ts + // ./src/index.ts + // ./dist/index.js + // ./package.json <-- references ./dist/index.js + // ./tsconfig.json <-- loads ./src/index.ts + // + // How do we know `./src` is the common src dir, and not `./tools`, given only the `./dist` out dir and `./dist/index.js` filename? + // Answer: We... don't. We know we're looking for an `index.ts` input file, but we have _no clue_ which subfolder it's supposed to be loaded from + // without more context. + // But we do have more context! Just a tiny bit more! We're resolving an import _for some other input file_! And that input file, too + // must be inside the common source directory! So we propagate that tidbit of info all the way to here via state.requestContainingDirectory + + const requestingFile = toAbsolutePath(combinePaths(state.requestContainingDirectory, "index.ts")); + // And we can try every folder above the common folder for the request folder and the config/package base directory + // This technically can be wrong - we may load ./src/index.ts when ./src/sub/index.ts was right because we don't + // know if only `./src/sub` files were loaded by the program; but this has the best chance to be right of just about anything + // else we have. And, given that we're about to load `./src/index.ts` because we choose it as likely correct, there will then + // be a file outside of `./src/sub` in the program (the file we resolved to), making us de-facto right. So this fallback lookup + // logic may influence what files are pulled in by self-names, which in turn influences the output path shape, but it's all + // internally consistent so the paths should be stable so long as we prefer the "most general" (meaning: top-most-level directory) possible results first. + const commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, () => [requestingFile, toAbsolutePath(packagePath)], state.host.getCurrentDirectory?.() || "", getCanonicalFileName)); + commonSourceDirGuesses.push(commonDir); + + let fragment = ensureTrailingDirectorySeparator(commonDir); + while (fragment && fragment.length > 1) { + const parts = getPathComponents(fragment); + parts.pop(); // remove a directory + const commonDir = getPathFromPathComponents(parts); + commonSourceDirGuesses.unshift(commonDir); + fragment = ensureTrailingDirectorySeparator(commonDir); + } + } + if (commonSourceDirGuesses.length > 1) { + state.reportDiagnostic(createCompilerDiagnostic( + isImports + ? Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate + : Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate, + entry === "" ? "." : entry, // replace empty string with `.` - the reverse of the operation done when entries are built - so main entrypoint errors don't look weird + packagePath + )); + } + for (const commonSourceDirGuess of commonSourceDirGuesses) { + const candidateDirectories = getOutputDirectoriesForBaseDirectory(commonSourceDirGuess); + for (const candidateDir of candidateDirectories) { + if (startsWith(finalPath, candidateDir)) { + // The matched export is looking up something in either the out declaration or js dir, now map the written path back into the source dir and source extension + const pathFragment = finalPath.slice(candidateDir.length + 1); // +1 to also remove directory seperator + const possibleInputBase = combinePaths(commonSourceDirGuess, pathFragment); + const jsAndDtsExtensions = [Extension.Mjs, Extension.Cjs, Extension.Js, Extension.Json, Extension.Dmts, Extension.Dcts, Extension.Dts]; + for (const ext of jsAndDtsExtensions) { + if (fileExtensionIs(possibleInputBase, ext)) { + const inputExts = getPossibleOriginalInputExtensionForExtension(possibleInputBase); + for (const possibleExt of inputExts) { + const possibleInputWithInputExtension = changeAnyExtension(possibleInputBase, possibleExt, ext, !useCaseSensitiveFileNames()); + if ((extensions === Extensions.TypeScript && hasJSFileExtension(possibleInputWithInputExtension)) || + (extensions === Extensions.JavaScript && hasTSFileExtension(possibleInputWithInputExtension))) { + continue; + } + if (state.host.fileExists(possibleInputWithInputExtension)) { + return toSearchResult(withPackageId(scope, loadJSOrExactTSFileName(extensions, possibleInputWithInputExtension, /*onlyRecordFailures*/ false, state))); + } + } + } + } + } + } + } + } + return undefined; + + function getOutputDirectoriesForBaseDirectory(commonSourceDirGuess: string) { + // Config file ouput paths are processed to be relative to the host's current directory, while + // otherwise the paths are resolved relative to the common source dir the compiler puts together + const currentDir = state.compilerOptions.configFile ? state.host.getCurrentDirectory?.() || "" : commonSourceDirGuess; + const candidateDirectories = []; + if (state.compilerOptions.declarationDir) { + candidateDirectories.push(toAbsolutePath(combineDirectoryPath(currentDir, state.compilerOptions.declarationDir))); + } + if (state.compilerOptions.outDir && state.compilerOptions.outDir !== state.compilerOptions.declarationDir) { + candidateDirectories.push(toAbsolutePath(combineDirectoryPath(currentDir, state.compilerOptions.outDir))); + } + return candidateDirectories; + } + } } } @@ -2374,12 +2528,13 @@ namespace ts { export function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations { const traceEnabled = isTraceEnabled(compilerOptions, host); const failedLookupLocations: string[] = []; - const state: ModuleResolutionState = { compilerOptions, host, traceEnabled, failedLookupLocations, packageJsonInfoCache: cache, features: NodeResolutionFeatures.None, conditions: [] }; const containingDirectory = getDirectoryPath(containingFile); + const diagnostics: Diagnostic[] = []; + const state: ModuleResolutionState = { compilerOptions, host, traceEnabled, failedLookupLocations, packageJsonInfoCache: cache, features: NodeResolutionFeatures.None, conditions: [], requestContainingDirectory: containingDirectory, reportDiagnostic: diag => void diagnostics.push(diag) }; const resolved = tryResolve(Extensions.TypeScript) || tryResolve(Extensions.JavaScript); // No originalPath because classic resolution doesn't resolve realPath - return createResolvedModuleWithFailedLookupLocations(resolved && resolved.value, /*isExternalLibraryImport*/ false, failedLookupLocations, state.resultFromCache); + return createResolvedModuleWithFailedLookupLocations(resolved && resolved.value, /*isExternalLibraryImport*/ false, failedLookupLocations, diagnostics, state.resultFromCache); function tryResolve(extensions: Extensions): SearchResult { const resolvedUsingSettings = tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loadModuleFromFileNoPackageId, state); @@ -2424,9 +2579,10 @@ namespace ts { trace(host, Diagnostics.Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2, projectName, moduleName, globalCache); } const failedLookupLocations: string[] = []; - const state: ModuleResolutionState = { compilerOptions, host, traceEnabled, failedLookupLocations, packageJsonInfoCache, features: NodeResolutionFeatures.None, conditions: [] }; + const diagnostics: Diagnostic[] = []; + const state: ModuleResolutionState = { compilerOptions, host, traceEnabled, failedLookupLocations, packageJsonInfoCache, features: NodeResolutionFeatures.None, conditions: [], requestContainingDirectory: undefined, reportDiagnostic: diag => void diagnostics.push(diag) }; const resolved = loadModuleFromImmediateNodeModulesDirectory(Extensions.DtsOnly, moduleName, globalCache, state, /*typesScopeOnly*/ false, /*cache*/ undefined, /*redirectedReference*/ undefined); - return createResolvedModuleWithFailedLookupLocations(resolved, /*isExternalLibraryImport*/ true, failedLookupLocations, state.resultFromCache); + return createResolvedModuleWithFailedLookupLocations(resolved, /*isExternalLibraryImport*/ true, failedLookupLocations, diagnostics, state.resultFromCache); } /** diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 2caa36f1425..2d7777e7631 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -1364,6 +1364,36 @@ namespace ts { return program; + function addResolutionDiagnostics(list: Diagnostic[] | undefined) { + if (!list) return; + for (const elem of list) { + programDiagnostics.add(elem); + } + } + + function pullDiagnosticsFromCache(names: string[] | readonly FileReference[], containingFile: SourceFile) { + if (!moduleResolutionCache) return; + const containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory); + const containingFileMode = !isString(containingFile) ? containingFile.impliedNodeFormat : undefined; + const containingDir = getDirectoryPath(containingFileName); + const redirectedReference = getRedirectReferenceForResolution(containingFile); + let i = 0; + for (const n of names) { + // mimics logic done in the resolution cache, should be resilient to upgrading it to use `FileReference`s for non-type-reference modal lookups to make it rely on the index in the list less + const mode = typeof n === "string" ? getModeForResolutionAtIndex(containingFile, i) : getModeForFileReference(n, containingFileMode); + const name = typeof n === "string" ? n : n.fileName; + i++; + // only nonrelative names hit the cache, and, at least as of right now, only nonrelative names can issue diagnostics + // (Since diagnostics are only issued via import or export map lookup) + // This may totally change if/when the issue of output paths not mapping to input files is fixed in a broader context + // When it is, how we extract diagnostics from the module name resolver will have the be refined - the current cache + // APIs wrapping the underlying resolver make it almost impossible to smuggle the diagnostics out in a generalized way + if (isExternalModuleNameRelative(name)) continue; + const diags = moduleResolutionCache.getOrCreateCacheForModuleName(name, mode, redirectedReference).get(containingDir)?.resolutionDiagnostics; + addResolutionDiagnostics(diags); + } + } + function resolveModuleNamesWorker(moduleNames: string[], containingFile: SourceFile, reusedNames: string[] | undefined): readonly ResolvedModuleFull[] { if (!moduleNames.length) return emptyArray; const containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory); @@ -1374,6 +1404,7 @@ namespace ts { performance.mark("afterResolveModule"); performance.measure("ResolveModule", "beforeResolveModule", "afterResolveModule"); tracing?.pop(); + pullDiagnosticsFromCache(moduleNames, containingFile); return result; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index c3a2f8f72b2..6becb6813ea 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -6717,6 +6717,8 @@ namespace ts { readonly resolvedModule: ResolvedModuleFull | undefined; /* @internal */ readonly failedLookupLocations: string[]; + /* @internal */ + readonly resolutionDiagnostics: Diagnostic[] } export interface ResolvedTypeReferenceDirective { @@ -6738,6 +6740,8 @@ namespace ts { export interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations { readonly resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined; readonly failedLookupLocations: string[]; + /* @internal */ + resolutionDiagnostics: Diagnostic[] } /* @internal */ diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index b4a22b298fe..3c38df36b44 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -4387,6 +4387,16 @@ namespace ts { Extension.Dts; } + /** + * This function is an inverse of `getDeclarationEmitExtensionForPath`. + */ + export function getPossibleOriginalInputExtensionForExtension(path: string) { + return fileExtensionIsOneOf(path, [Extension.Dmts, Extension.Mjs, Extension.Mts]) ? [Extension.Mts, Extension.Mjs] : + fileExtensionIsOneOf(path, [Extension.Dcts, Extension.Cjs, Extension.Cts]) ? [Extension.Cts, Extension.Cjs]: + fileExtensionIsOneOf(path, [`.json.d.ts`]) ? [Extension.Json] : + [Extension.Tsx, Extension.Ts, Extension.Jsx, Extension.Js]; + } + export function outFile(options: CompilerOptions) { return options.outFile || options.out; } diff --git a/src/testRunner/unittests/moduleResolution.ts b/src/testRunner/unittests/moduleResolution.ts index 87c3587ec2f..872e9e8b17f 100644 --- a/src/testRunner/unittests/moduleResolution.ts +++ b/src/testRunner/unittests/moduleResolution.ts @@ -215,6 +215,7 @@ namespace ts { extension: Extension.Ts, }, failedLookupLocations: [], + resolutionDiagnostics: [], }); assert.isDefined(cache.get("/sub")); assert.isUndefined(cache.get("/")); @@ -228,6 +229,7 @@ namespace ts { extension: Extension.Ts, }, failedLookupLocations: [], + resolutionDiagnostics: [], }); assert.isDefined(cache.get("/sub/dir/foo")); assert.isDefined(cache.get("/sub/dir")); @@ -243,6 +245,7 @@ namespace ts { extension: Extension.Ts, }, failedLookupLocations: [], + resolutionDiagnostics: [], }); assert.isDefined(cache.get("/foo/bar")); assert.isDefined(cache.get("/foo")); @@ -257,6 +260,7 @@ namespace ts { extension: Extension.Ts, }, failedLookupLocations: [], + resolutionDiagnostics: [], }); assert.isDefined(cache.get("/foo")); assert.isUndefined(cache.get("/")); @@ -270,6 +274,7 @@ namespace ts { extension: Extension.Ts, }, failedLookupLocations: [], + resolutionDiagnostics: [], }); assert.isDefined(cache.get("c:/foo")); assert.isDefined(cache.get("c:/")); @@ -279,6 +284,7 @@ namespace ts { cache.set("/foo/bar/baz", { resolvedModule: undefined, failedLookupLocations: [], + resolutionDiagnostics: [], }); assert.isDefined(cache.get("/foo/bar/baz")); assert.isDefined(cache.get("/foo/bar")); diff --git a/tests/baselines/reference/nodeAllowJsPackageSelfName(module=node16).errors.txt b/tests/baselines/reference/nodeAllowJsPackageSelfName(module=node16).errors.txt index bdf6aba250c..42a324dadf6 100644 --- a/tests/baselines/reference/nodeAllowJsPackageSelfName(module=node16).errors.txt +++ b/tests/baselines/reference/nodeAllowJsPackageSelfName(module=node16).errors.txt @@ -1,6 +1,8 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/allowJs/index.cjs(2,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/allowJs/index.js (0 errors) ==== // esm format file import * as self from "package"; diff --git a/tests/baselines/reference/nodeAllowJsPackageSelfName(module=nodenext).errors.txt b/tests/baselines/reference/nodeAllowJsPackageSelfName(module=nodenext).errors.txt index bdf6aba250c..42a324dadf6 100644 --- a/tests/baselines/reference/nodeAllowJsPackageSelfName(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeAllowJsPackageSelfName(module=nodenext).errors.txt @@ -1,6 +1,8 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/allowJs/index.cjs(2,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/allowJs/index.js (0 errors) ==== // esm format file import * as self from "package"; diff --git a/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=node16).errors.txt b/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=node16).errors.txt index 83e50c001e7..904a4714318 100644 --- a/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=node16).errors.txt +++ b/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=node16).errors.txt @@ -1,9 +1,11 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/allowJs/index.cjs(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts(2,13): error TS2303: Circular definition of import alias 'cjs'. tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts(2,13): error TS2303: Circular definition of import alias 'cjs'. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/allowJs/index.js (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=nodenext).errors.txt index 83e50c001e7..904a4714318 100644 --- a/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=nodenext).errors.txt @@ -1,9 +1,11 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/allowJs/index.cjs(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts(2,13): error TS2303: Circular definition of import alias 'cjs'. tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts(2,13): error TS2303: Circular definition of import alias 'cjs'. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/allowJs/index.js (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node16).errors.txt b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node16).errors.txt index e6f4b3ce2eb..63e7af6ada0 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node16).errors.txt +++ b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node16).errors.txt @@ -1,3 +1,4 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/allowJs/index.cjs(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(9,23): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. @@ -6,6 +7,7 @@ tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts(2,13): error tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts(3,22): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/allowJs/index.js (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).errors.txt index e6f4b3ce2eb..63e7af6ada0 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).errors.txt @@ -1,3 +1,4 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/allowJs/index.cjs(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(9,23): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. @@ -6,6 +7,7 @@ tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts(2,13): error tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts(3,22): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/allowJs/index.js (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=node16).errors.txt b/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=node16).errors.txt index 261be58f1a2..ffbcbe24e99 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=node16).errors.txt +++ b/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=node16).errors.txt @@ -1,7 +1,9 @@ +error TS2210: The project root is ambiguous, but is required to resolve import map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/allowJs/index.cjs(3,22): error TS1471: Module '#mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(4,23): error TS1471: Module '#type' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. +!!! error TS2210: The project root is ambiguous, but is required to resolve import map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/allowJs/index.js (0 errors) ==== // esm format file import * as cjs from "#cjs"; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=nodenext).errors.txt index 261be58f1a2..ffbcbe24e99 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=nodenext).errors.txt @@ -1,7 +1,9 @@ +error TS2210: The project root is ambiguous, but is required to resolve import map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/allowJs/index.cjs(3,22): error TS1471: Module '#mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(4,23): error TS1471: Module '#type' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. +!!! error TS2210: The project root is ambiguous, but is required to resolve import map entry '.' in file 'tests/cases/conformance/node/allowJs/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/allowJs/index.js (0 errors) ==== // esm format file import * as cjs from "#cjs"; diff --git a/tests/baselines/reference/nodeModulesConditionalPackageExports(module=node16).errors.txt b/tests/baselines/reference/nodeModulesConditionalPackageExports(module=node16).errors.txt index 7397e1e1dbd..793f3f03da2 100644 --- a/tests/baselines/reference/nodeModulesConditionalPackageExports(module=node16).errors.txt +++ b/tests/baselines/reference/nodeModulesConditionalPackageExports(module=node16).errors.txt @@ -1,9 +1,11 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/index.cts(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/node_modules/inner/index.d.mts(2,13): error TS2303: Circular definition of import alias 'cjs'. tests/cases/conformance/node/node_modules/inner/index.d.ts(2,13): error TS2303: Circular definition of import alias 'cjs'. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/index.ts (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesConditionalPackageExports(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesConditionalPackageExports(module=nodenext).errors.txt index 7397e1e1dbd..793f3f03da2 100644 --- a/tests/baselines/reference/nodeModulesConditionalPackageExports(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeModulesConditionalPackageExports(module=nodenext).errors.txt @@ -1,9 +1,11 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/index.cts(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/node_modules/inner/index.d.mts(2,13): error TS2303: Circular definition of import alias 'cjs'. tests/cases/conformance/node/node_modules/inner/index.d.ts(2,13): error TS2303: Circular definition of import alias 'cjs'. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/index.ts (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=node16).errors.txt b/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=node16).errors.txt index 11f39b9dd93..4ee7f3c4cef 100644 --- a/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=node16).errors.txt +++ b/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=node16).errors.txt @@ -1,3 +1,4 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/index.cts(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(9,23): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. @@ -8,6 +9,7 @@ tests/cases/conformance/node/node_modules/inner/index.d.ts(3,22): error TS1471: tests/cases/conformance/node/node_modules/inner/index.d.ts(5,1): error TS1036: Statements are not allowed in ambient contexts. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/index.ts (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).errors.txt index 11f39b9dd93..4ee7f3c4cef 100644 --- a/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).errors.txt @@ -1,3 +1,4 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/index.cts(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(9,23): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. @@ -8,6 +9,7 @@ tests/cases/conformance/node/node_modules/inner/index.d.ts(3,22): error TS1471: tests/cases/conformance/node/node_modules/inner/index.d.ts(5,1): error TS1036: Statements are not allowed in ambient contexts. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/index.ts (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesPackageExports(module=node16).errors.txt b/tests/baselines/reference/nodeModulesPackageExports(module=node16).errors.txt index 464db33f319..8f7452ffa72 100644 --- a/tests/baselines/reference/nodeModulesPackageExports(module=node16).errors.txt +++ b/tests/baselines/reference/nodeModulesPackageExports(module=node16).errors.txt @@ -1,3 +1,4 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/index.cts(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(9,23): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. @@ -6,6 +7,7 @@ tests/cases/conformance/node/node_modules/inner/index.d.ts(2,13): error TS2303: tests/cases/conformance/node/node_modules/inner/index.d.ts(3,22): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/index.ts (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).errors.txt index 464db33f319..8f7452ffa72 100644 --- a/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).errors.txt @@ -1,3 +1,4 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. tests/cases/conformance/node/index.cts(3,22): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(4,23): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(9,23): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. @@ -6,6 +7,7 @@ tests/cases/conformance/node/node_modules/inner/index.d.ts(2,13): error TS2303: tests/cases/conformance/node/node_modules/inner/index.d.ts(3,22): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/conformance/node/package.json'. Supply the `rootDir` compiler option to disambiguate. ==== tests/cases/conformance/node/index.ts (0 errors) ==== // esm format file import * as cjs from "package/cjs"; diff --git a/tests/baselines/reference/nodeNextPackageImportMapRootDir.js b/tests/baselines/reference/nodeNextPackageImportMapRootDir.js new file mode 100644 index 00000000000..df6506fa35c --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageImportMapRootDir.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/nodeNextPackageImportMapRootDir.ts] //// + +//// [package.json] +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": "./dist/index.js" + }, + "imports": { + "#dep": "./dist/index.js" + } +} +//// [index.ts] +import * as me from "#dep"; + +me.thing(); + +export function thing(): void {} + + +//// [index.js] +import * as me from "#dep"; +me.thing(); +export function thing() { } diff --git a/tests/baselines/reference/nodeNextPackageImportMapRootDir.symbols b/tests/baselines/reference/nodeNextPackageImportMapRootDir.symbols new file mode 100644 index 00000000000..f03b685e938 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageImportMapRootDir.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/index.ts === +import * as me from "#dep"; +>me : Symbol(me, Decl(index.ts, 0, 6)) + +me.thing(); +>me.thing : Symbol(thing, Decl(index.ts, 2, 11)) +>me : Symbol(me, Decl(index.ts, 0, 6)) +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + +export function thing(): void {} +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + diff --git a/tests/baselines/reference/nodeNextPackageImportMapRootDir.types b/tests/baselines/reference/nodeNextPackageImportMapRootDir.types new file mode 100644 index 00000000000..445dd91324a --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageImportMapRootDir.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/index.ts === +import * as me from "#dep"; +>me : typeof me + +me.thing(); +>me.thing() : void +>me.thing : () => void +>me : typeof me +>thing : () => void + +export function thing(): void {} +>thing : () => void + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.errors.txt b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.errors.txt new file mode 100644 index 00000000000..6577aed8336 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.errors.txt @@ -0,0 +1,19 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/compiler/package.json'. Supply the `rootDir` compiler option to disambiguate. + + +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/compiler/package.json'. Supply the `rootDir` compiler option to disambiguate. +==== tests/cases/compiler/package.json (0 errors) ==== + { + "name": "@this/package", + "type": "module", + "exports": { + ".": "./dist/index.js" + } + } +==== tests/cases/compiler/index.ts (0 errors) ==== + import * as me from "@this/package"; + + me.thing(); + + export function thing(): void {} + \ No newline at end of file diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.js b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.js new file mode 100644 index 00000000000..d4451ed91fc --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/nodeNextPackageSelfNameWithOutDir.ts] //// + +//// [package.json] +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": "./dist/index.js" + } +} +//// [index.ts] +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} + + +//// [index.js] +import * as me from "@this/package"; +me.thing(); +export function thing() { } diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.symbols b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.symbols new file mode 100644 index 00000000000..8bcf39cdd7a --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/index.ts === +import * as me from "@this/package"; +>me : Symbol(me, Decl(index.ts, 0, 6)) + +me.thing(); +>me.thing : Symbol(thing, Decl(index.ts, 2, 11)) +>me : Symbol(me, Decl(index.ts, 0, 6)) +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + +export function thing(): void {} +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.types b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.types new file mode 100644 index 00000000000..a22456ef499 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDir.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/index.ts === +import * as me from "@this/package"; +>me : typeof me + +me.thing(); +>me.thing() : void +>me.thing : () => void +>me : typeof me +>thing : () => void + +export function thing(): void {} +>thing : () => void + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.errors.txt b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.errors.txt new file mode 100644 index 00000000000..6ccce9cf141 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.errors.txt @@ -0,0 +1,22 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/compiler/package.json'. Supply the `rootDir` compiler option to disambiguate. + + +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/compiler/package.json'. Supply the `rootDir` compiler option to disambiguate. +==== tests/cases/compiler/package.json (0 errors) ==== + { + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } + } +==== tests/cases/compiler/index.ts (0 errors) ==== + import * as me from "@this/package"; + + me.thing(); + + export function thing(): void {} + \ No newline at end of file diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.js b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.js new file mode 100644 index 00000000000..d035a43f7c0 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDir.ts] //// + +//// [package.json] +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +//// [index.ts] +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} + + +//// [index.js] +import * as me from "@this/package"; +me.thing(); +export function thing() { } + + +//// [index.d.ts] +export declare function thing(): void; diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.symbols b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.symbols new file mode 100644 index 00000000000..8bcf39cdd7a --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/index.ts === +import * as me from "@this/package"; +>me : Symbol(me, Decl(index.ts, 0, 6)) + +me.thing(); +>me.thing : Symbol(thing, Decl(index.ts, 2, 11)) +>me : Symbol(me, Decl(index.ts, 0, 6)) +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + +export function thing(): void {} +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.types b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.types new file mode 100644 index 00000000000..a22456ef499 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDir.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/index.ts === +import * as me from "@this/package"; +>me : typeof me + +me.thing(); +>me.thing() : void +>me.thing : () => void +>me : typeof me +>thing : () => void + +export function thing(): void {} +>thing : () => void + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.js b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.js new file mode 100644 index 00000000000..0406bf88612 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirComposite.ts] //// + +//// [package.json] +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +//// [index.ts] +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} + + +//// [index.js] +import * as me from "@this/package"; +me.thing(); +export function thing() { } + + +//// [index.d.ts] +export declare function thing(): void; diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.symbols b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.symbols new file mode 100644 index 00000000000..8bcf39cdd7a --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/index.ts === +import * as me from "@this/package"; +>me : Symbol(me, Decl(index.ts, 0, 6)) + +me.thing(); +>me.thing : Symbol(thing, Decl(index.ts, 2, 11)) +>me : Symbol(me, Decl(index.ts, 0, 6)) +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + +export function thing(): void {} +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.types b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.types new file mode 100644 index 00000000000..a22456ef499 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirComposite.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/index.ts === +import * as me from "@this/package"; +>me : typeof me + +me.thing(); +>me.thing() : void +>me.thing : () => void +>me : typeof me +>thing : () => void + +export function thing(): void {} +>thing : () => void + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.js b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.js new file mode 100644 index 00000000000..21197f9881e --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.js @@ -0,0 +1,46 @@ +//// [tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.ts] //// + +//// [package.json] +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +//// [index.ts] +export {srcthing as thing} from "./src/thing.js"; +//// [thing.ts] +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; + +me.thing(); + +export function srcthing(): void {} + + + +//// [thing.js] +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; +me.thing(); +export function srcthing() { } + + +//// [thing.d.ts] +export declare function srcthing(): void; diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.symbols b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.symbols new file mode 100644 index 00000000000..38fc4efe336 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/src/thing.ts === +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; +>me : Symbol(me, Decl(thing.ts, 7, 6)) + +me.thing(); +>me.thing : Symbol(me.thing, Decl(index.ts, 0, 8)) +>me : Symbol(me, Decl(thing.ts, 7, 6)) +>thing : Symbol(me.thing, Decl(index.ts, 0, 8)) + +export function srcthing(): void {} +>srcthing : Symbol(srcthing, Decl(thing.ts, 9, 11)) + + +=== tests/cases/compiler/index.ts === +export {srcthing as thing} from "./src/thing.js"; +>srcthing : Symbol(srcthing, Decl(thing.ts, 9, 11)) +>thing : Symbol(thing, Decl(index.ts, 0, 8)) + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.types b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.types new file mode 100644 index 00000000000..2d4d2bcd994 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.types @@ -0,0 +1,26 @@ +=== tests/cases/compiler/src/thing.ts === +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; +>me : typeof me + +me.thing(); +>me.thing() : void +>me.thing : () => void +>me : typeof me +>thing : () => void + +export function srcthing(): void {} +>srcthing : () => void + + +=== tests/cases/compiler/index.ts === +export {srcthing as thing} from "./src/thing.js"; +>srcthing : () => void +>thing : () => void + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.errors.txt b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.errors.txt new file mode 100644 index 00000000000..14365276c31 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.errors.txt @@ -0,0 +1,41 @@ +error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/compiler/package.json'. Supply the `rootDir` compiler option to disambiguate. + + +!!! error TS2209: The project root is ambiguous, but is required to resolve export map entry '.' in file 'tests/cases/compiler/package.json'. Supply the `rootDir` compiler option to disambiguate. +==== tests/cases/compiler/tsconfig.json (0 errors) ==== + { + "compilerOptions": { + "module": "nodenext", + "outDir": "./dist", + "declarationDir": "./types", + "declaration": true + } + } +==== tests/cases/compiler/src/thing.ts (0 errors) ==== + // The following import should cause `index.ts` + // to be included in the build, which will, + // in turn, cause the common src directory to not be `src` + // (the harness is wierd here in that noImplicitReferences makes only + // this file get loaded as an entrypoint and emitted, while on the + // real command-line we'll crawl the imports for that set - a limitation + // of the harness, I suppose) + import * as me from "@this/package"; + + me.thing(); + + export function srcthing(): void {} + + +==== tests/cases/compiler/package.json (0 errors) ==== + { + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } + } +==== tests/cases/compiler/index.ts (0 errors) ==== + export {srcthing as thing} from "./src/thing.js"; \ No newline at end of file diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.js b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.js new file mode 100644 index 00000000000..433a7dfc989 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.js @@ -0,0 +1,46 @@ +//// [tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.ts] //// + +//// [package.json] +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +//// [index.ts] +export {srcthing as thing} from "./src/thing.js"; +//// [thing.ts] +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; + +me.thing(); + +export function srcthing(): void {} + + + +//// [thing.js] +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; +me.thing(); +export function srcthing() { } + + +//// [thing.d.ts] +export declare function srcthing(): void; diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.symbols b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.symbols new file mode 100644 index 00000000000..38fc4efe336 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/src/thing.ts === +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; +>me : Symbol(me, Decl(thing.ts, 7, 6)) + +me.thing(); +>me.thing : Symbol(me.thing, Decl(index.ts, 0, 8)) +>me : Symbol(me, Decl(thing.ts, 7, 6)) +>thing : Symbol(me.thing, Decl(index.ts, 0, 8)) + +export function srcthing(): void {} +>srcthing : Symbol(srcthing, Decl(thing.ts, 9, 11)) + + +=== tests/cases/compiler/index.ts === +export {srcthing as thing} from "./src/thing.js"; +>srcthing : Symbol(srcthing, Decl(thing.ts, 9, 11)) +>thing : Symbol(thing, Decl(index.ts, 0, 8)) + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.types b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.types new file mode 100644 index 00000000000..2d4d2bcd994 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.types @@ -0,0 +1,26 @@ +=== tests/cases/compiler/src/thing.ts === +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; +>me : typeof me + +me.thing(); +>me.thing() : void +>me.thing : () => void +>me : typeof me +>thing : () => void + +export function srcthing(): void {} +>srcthing : () => void + + +=== tests/cases/compiler/index.ts === +export {srcthing as thing} from "./src/thing.js"; +>srcthing : () => void +>thing : () => void + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.js b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.js new file mode 100644 index 00000000000..683dad9fb12 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.ts] //// + +//// [package.json] +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +//// [index.ts] +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} + + +//// [index.js] +import * as me from "@this/package"; +me.thing(); +export function thing() { } + + +//// [index.d.ts] +export declare function thing(): void; diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.symbols b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.symbols new file mode 100644 index 00000000000..beb1169cc73 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.symbols @@ -0,0 +1,12 @@ +=== /pkg/src/index.ts === +import * as me from "@this/package"; +>me : Symbol(me, Decl(index.ts, 0, 6)) + +me.thing(); +>me.thing : Symbol(thing, Decl(index.ts, 2, 11)) +>me : Symbol(me, Decl(index.ts, 0, 6)) +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + +export function thing(): void {} +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.types b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.types new file mode 100644 index 00000000000..17098101fce --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.types @@ -0,0 +1,13 @@ +=== /pkg/src/index.ts === +import * as me from "@this/package"; +>me : typeof me + +me.thing(); +>me.thing() : void +>me.thing : () => void +>me : typeof me +>thing : () => void + +export function thing(): void {} +>thing : () => void + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.js b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.js new file mode 100644 index 00000000000..7dad992a946 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/nodeNextPackageSelfNameWithOutDirRootDir.ts] //// + +//// [package.json] +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": "./dist/index.js" + } +} +//// [index.ts] +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} + + +//// [index.js] +import * as me from "@this/package"; +me.thing(); +export function thing() { } diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.symbols b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.symbols new file mode 100644 index 00000000000..8bcf39cdd7a --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/index.ts === +import * as me from "@this/package"; +>me : Symbol(me, Decl(index.ts, 0, 6)) + +me.thing(); +>me.thing : Symbol(thing, Decl(index.ts, 2, 11)) +>me : Symbol(me, Decl(index.ts, 0, 6)) +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + +export function thing(): void {} +>thing : Symbol(thing, Decl(index.ts, 2, 11)) + diff --git a/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.types b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.types new file mode 100644 index 00000000000..a22456ef499 --- /dev/null +++ b/tests/baselines/reference/nodeNextPackageSelfNameWithOutDirRootDir.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/index.ts === +import * as me from "@this/package"; +>me : typeof me + +me.thing(); +>me.thing() : void +>me.thing : () => void +>me : typeof me +>thing : () => void + +export function thing(): void {} +>thing : () => void + diff --git a/tests/cases/compiler/nodeNextPackageImportMapRootDir.ts b/tests/cases/compiler/nodeNextPackageImportMapRootDir.ts new file mode 100644 index 00000000000..a0a8dfb8e7b --- /dev/null +++ b/tests/cases/compiler/nodeNextPackageImportMapRootDir.ts @@ -0,0 +1,20 @@ +// @module: nodenext +// @outDir: ./dist +// @rootDir: tests/cases/compiler +// @filename: package.json +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": "./dist/index.js" + }, + "imports": { + "#dep": "./dist/index.js" + } +} +// @filename: index.ts +import * as me from "#dep"; + +me.thing(); + +export function thing(): void {} diff --git a/tests/cases/compiler/nodeNextPackageSelfNameWithOutDir.ts b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDir.ts new file mode 100644 index 00000000000..71c1494aafb --- /dev/null +++ b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDir.ts @@ -0,0 +1,16 @@ +// @module: nodenext +// @outDir: ./dist +// @filename: package.json +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": "./dist/index.js" + } +} +// @filename: index.ts +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} diff --git a/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDir.ts b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDir.ts new file mode 100644 index 00000000000..f495002c9e4 --- /dev/null +++ b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDir.ts @@ -0,0 +1,21 @@ +// @module: nodenext +// @outDir: ./dist +// @declarationDir: ./types +// @declaration: true +// @filename: package.json +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +// @filename: index.ts +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} diff --git a/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirComposite.ts b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirComposite.ts new file mode 100644 index 00000000000..c8efa7f7677 --- /dev/null +++ b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirComposite.ts @@ -0,0 +1,26 @@ +// @filename: tsconfig.json +{ + "compilerOptions": { + "module": "nodenext", + "outDir": "./dist", + "declarationDir": "./types", + "composite": true + } +} +// @filename: package.json +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +// @filename: index.ts +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} diff --git a/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.ts b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.ts new file mode 100644 index 00000000000..df09199ced6 --- /dev/null +++ b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirCompositeNestedDirs.ts @@ -0,0 +1,37 @@ +// @noImplicitReferences: true +// @filename: tsconfig.json +{ + "compilerOptions": { + "module": "nodenext", + "outDir": "./dist", + "declarationDir": "./types", + "composite": true + } +} +// @filename: package.json +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +// @filename: index.ts +export {srcthing as thing} from "./src/thing.js"; +// @filename: src/thing.ts +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; + +me.thing(); + +export function srcthing(): void {} + diff --git a/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.ts b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.ts new file mode 100644 index 00000000000..f8e28e05f7c --- /dev/null +++ b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirNestedDirs.ts @@ -0,0 +1,37 @@ +// @noImplicitReferences: true +// @filename: tsconfig.json +{ + "compilerOptions": { + "module": "nodenext", + "outDir": "./dist", + "declarationDir": "./types", + "declaration": true + } +} +// @filename: package.json +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +// @filename: index.ts +export {srcthing as thing} from "./src/thing.js"; +// @filename: src/thing.ts +// The following import should cause `index.ts` +// to be included in the build, which will, +// in turn, cause the common src directory to not be `src` +// (the harness is wierd here in that noImplicitReferences makes only +// this file get loaded as an entrypoint and emitted, while on the +// real command-line we'll crawl the imports for that set - a limitation +// of the harness, I suppose) +import * as me from "@this/package"; + +me.thing(); + +export function srcthing(): void {} + diff --git a/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.ts b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.ts new file mode 100644 index 00000000000..5857765749f --- /dev/null +++ b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirDeclDirRootDir.ts @@ -0,0 +1,22 @@ +// @module: nodenext +// @outDir: /pkg/dist +// @declarationDir: /pkg/types +// @declaration: true +// @rootDir: /pkg/src +// @filename: /pkg/package.json +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": { + "default": "./dist/index.js", + "types": "./types/index.d.ts" + } + } +} +// @filename: /pkg/src/index.ts +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} diff --git a/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirRootDir.ts b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirRootDir.ts new file mode 100644 index 00000000000..1e32c30e683 --- /dev/null +++ b/tests/cases/compiler/nodeNextPackageSelfNameWithOutDirRootDir.ts @@ -0,0 +1,17 @@ +// @module: nodenext +// @outDir: ./dist +// @rootDir: tests/cases/compiler +// @filename: package.json +{ + "name": "@this/package", + "type": "module", + "exports": { + ".": "./dist/index.js" + } +} +// @filename: index.ts +import * as me from "@this/package"; + +me.thing(); + +export function thing(): void {} From f8a09bee6fa4489a15b3817b682ef0234e74f409 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Thu, 5 May 2022 23:07:32 +0300 Subject: [PATCH 03/64] fix(48878): return errorType on invalid nodes in getTypeAtLocation (#48967) --- src/compiler/checker.ts | 2 +- src/testRunner/unittests/publicApi.ts | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 504cdf669c7..ae1ded9d0d8 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -42198,7 +42198,7 @@ namespace ts { if (isDeclaration(node)) { // In this case, we call getSymbolOfNode instead of getSymbolAtLocation because it is a declaration const symbol = getSymbolOfNode(node); - return getTypeOfSymbol(symbol); + return symbol ? getTypeOfSymbol(symbol) : errorType; } if (isDeclarationNameOrImportPropertyName(node)) { diff --git a/src/testRunner/unittests/publicApi.ts b/src/testRunner/unittests/publicApi.ts index 2a5581bc93e..a1e43e7c371 100644 --- a/src/testRunner/unittests/publicApi.ts +++ b/src/testRunner/unittests/publicApi.ts @@ -130,6 +130,26 @@ describe("unittests:: Public APIs:: getTypeAtLocation", () => { const type = checker.getTypeAtLocation(file); assert.equal(type.flags, ts.TypeFlags.Any); }); + + it("returns an errorType for VariableDeclaration with BindingPattern name", () => { + const content = "const foo = [1];\n" + "const [a] = foo;"; + + const host = new fakes.CompilerHost(vfs.createFromFileSystem( + Harness.IO, + /*ignoreCase*/ true, + { documents: [new documents.TextDocument("/file.ts", content)], cwd: "/" })); + + const program = ts.createProgram({ + host, + rootNames: ["/file.ts"], + options: { noLib: true } + }); + + const checker = program.getTypeChecker(); + const file = program.getSourceFile("/file.ts")!; + const [declaration] = (ts.findLast(file.statements, ts.isVariableStatement) as ts.VariableStatement).declarationList.declarations; + assert.equal(checker.getTypeAtLocation(declaration).flags, ts.TypeFlags.Any); + }); }); describe("unittests:: Public APIs:: validateLocaleAndSetLanguage", () => { From 4680b5461676e4ae7c526c2c9c69e242ea2885ac Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Thu, 5 May 2022 13:42:30 -0700 Subject: [PATCH 04/64] Clear ExportMapCache on cancellation requested (#48979) --- src/services/exportInfoMap.ts | 55 ++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/src/services/exportInfoMap.ts b/src/services/exportInfoMap.ts index 875511fdeff..e8b52d48122 100644 --- a/src/services/exportInfoMap.ts +++ b/src/services/exportInfoMap.ts @@ -381,38 +381,45 @@ namespace ts { host.log?.("getExportInfoMap: cache miss or empty; calculating new results"); const compilerOptions = program.getCompilerOptions(); let moduleCount = 0; - forEachExternalModuleToImportFrom(program, host, /*useAutoImportProvider*/ true, (moduleSymbol, moduleFile, program, isFromPackageJson) => { - if (++moduleCount % 100 === 0) cancellationToken?.throwIfCancellationRequested(); - const seenExports = new Map<__String, true>(); - const checker = program.getTypeChecker(); - const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions); - // Note: I think we shouldn't actually see resolved module symbols here, but weird merges - // can cause it to happen: see 'completionsImport_mergedReExport.ts' - if (defaultInfo && isImportableSymbol(defaultInfo.symbol, checker)) { - cache.add( - importingFile.path, - defaultInfo.symbol, - defaultInfo.exportKind === ExportKind.Default ? InternalSymbolName.Default : InternalSymbolName.ExportEquals, - moduleSymbol, - moduleFile, - defaultInfo.exportKind, - isFromPackageJson, - checker); - } - checker.forEachExportAndPropertyOfModule(moduleSymbol, (exported, key) => { - if (exported !== defaultInfo?.symbol && isImportableSymbol(exported, checker) && addToSeen(seenExports, key)) { + try { + forEachExternalModuleToImportFrom(program, host, /*useAutoImportProvider*/ true, (moduleSymbol, moduleFile, program, isFromPackageJson) => { + if (++moduleCount % 100 === 0) cancellationToken?.throwIfCancellationRequested(); + const seenExports = new Map<__String, true>(); + const checker = program.getTypeChecker(); + const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions); + // Note: I think we shouldn't actually see resolved module symbols here, but weird merges + // can cause it to happen: see 'completionsImport_mergedReExport.ts' + if (defaultInfo && isImportableSymbol(defaultInfo.symbol, checker)) { cache.add( importingFile.path, - exported, - key, + defaultInfo.symbol, + defaultInfo.exportKind === ExportKind.Default ? InternalSymbolName.Default : InternalSymbolName.ExportEquals, moduleSymbol, moduleFile, - ExportKind.Named, + defaultInfo.exportKind, isFromPackageJson, checker); } + checker.forEachExportAndPropertyOfModule(moduleSymbol, (exported, key) => { + if (exported !== defaultInfo?.symbol && isImportableSymbol(exported, checker) && addToSeen(seenExports, key)) { + cache.add( + importingFile.path, + exported, + key, + moduleSymbol, + moduleFile, + ExportKind.Named, + isFromPackageJson, + checker); + } + }); }); - }); + } + catch (err) { + // Ensure cache is reset if operation is cancelled + cache.clear(); + throw err; + } host.log?.(`getExportInfoMap: done in ${timestamp() - start} ms`); return cache; From 58114cf387d455192e96bae2ddddd988dc20c506 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Thu, 5 May 2022 13:52:34 -0700 Subject: [PATCH 05/64] Harden combineProjectOutputForReferences against empty results (#48978) Getting an empty result doesn't seem expected, but a deeper fix doesn't make sense until #48619 is merged. Fixes #48963 --- src/server/session.ts | 2 +- .../referencesToNonPropertyNameStringLiteral.baseline.jsonc | 1 + .../server/referencesToNonPropertyNameStringLiteral.ts | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc create mode 100644 tests/cases/fourslash/server/referencesToNonPropertyNameStringLiteral.ts diff --git a/src/server/session.ts b/src/server/session.ts index 8c92d71db1b..ecd5b76ac46 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -356,7 +356,7 @@ namespace ts.server { logger.info(`Finding references to ${location.fileName} position ${location.pos} in project ${project.getProjectName()}`); const projectOutputs = project.getLanguageService().findReferences(location.fileName, location.pos); if (projectOutputs) { - const clearIsDefinition = projectOutputs[0].references[0].isDefinition === undefined; + const clearIsDefinition = projectOutputs[0]?.references[0]?.isDefinition === undefined; for (const referencedSymbol of projectOutputs) { const mappedDefinitionFile = getMappedLocation(project, documentSpanLocation(referencedSymbol.definition)); const definition: ReferencedSymbolDefinitionInfo = mappedDefinitionFile === undefined ? diff --git a/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc b/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/cases/fourslash/server/referencesToNonPropertyNameStringLiteral.ts b/tests/cases/fourslash/server/referencesToNonPropertyNameStringLiteral.ts new file mode 100644 index 00000000000..cf21c74c2d5 --- /dev/null +++ b/tests/cases/fourslash/server/referencesToNonPropertyNameStringLiteral.ts @@ -0,0 +1,5 @@ +/// + +////const str: string = "hello/*1*/"; + +verify.baselineFindAllReferences('1') From 4a0b083c69042953b80975541450836ad844c70c Mon Sep 17 00:00:00 2001 From: Kenta Moriuchi Date: Fri, 6 May 2022 09:09:06 +0900 Subject: [PATCH 06/64] Add ES2022 `Intl.Segmenter` type (#48800) * Add `Intl.Segmenter` type * Update baseline * Fix useless generics * Fix indent size * Fix `ResolvedSegmenterOptions` --- src/compiler/commandLineParser.ts | 1 + src/lib/es2022.d.ts | 1 + src/lib/es2022.intl.d.ts | 91 +++++++++++++++++++ src/lib/libs.json | 1 + .../reference/es2022IntlAPIs.symbols | 2 +- .../reference/formatToPartsBigInt.symbols | 4 +- .../numberFormatCurrencySign.symbols | 2 +- .../numberFormatCurrencySignResolved.symbols | 2 +- .../reactJsxReactResolvedNodeNext.trace.json | 2 + ...eactJsxReactResolvedNodeNextEsm.trace.json | 2 + ...does-not-add-color-when-NO_COLOR-is-set.js | 2 +- ...-when-host-can't-provide-terminal-width.js | 2 +- ...tatus.DiagnosticsPresent_OutputsSkipped.js | 2 +- 13 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 src/lib/es2022.intl.d.ts diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index d60facd264b..b257d7aed4c 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -81,6 +81,7 @@ namespace ts { ["es2021.intl", "lib.es2021.intl.d.ts"], ["es2022.array", "lib.es2022.array.d.ts"], ["es2022.error", "lib.es2022.error.d.ts"], + ["es2022.intl", "lib.es2022.intl.d.ts"], ["es2022.object", "lib.es2022.object.d.ts"], ["es2022.string", "lib.es2022.string.d.ts"], ["esnext.array", "lib.es2022.array.d.ts"], diff --git a/src/lib/es2022.d.ts b/src/lib/es2022.d.ts index 67a9199b5d6..7069e4ecdf1 100644 --- a/src/lib/es2022.d.ts +++ b/src/lib/es2022.d.ts @@ -1,5 +1,6 @@ /// /// /// +/// /// /// diff --git a/src/lib/es2022.intl.d.ts b/src/lib/es2022.intl.d.ts new file mode 100644 index 00000000000..0672ec4d2d4 --- /dev/null +++ b/src/lib/es2022.intl.d.ts @@ -0,0 +1,91 @@ +declare namespace Intl { + + /** + * An object with some or all properties of the `Intl.Segmenter` constructor `options` parameter. + * + * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters) + */ + interface SegmenterOptions { + /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */ + localeMatcher?: "best fit" | "lookup" | undefined; + /** The type of input to be split */ + granularity?: "grapheme" | "word" | "sentence" | undefined; + } + + interface Segmenter { + /** + * Returns `Segments` object containing the segments of the input string, using the segmenter's locale and granularity. + * + * @param input - The text to be segmented as a `string`. + * + * @returns A new iterable Segments object containing the segments of the input string, using the segmenter's locale and granularity. + */ + segment(input: string): Segments; + resolvedOptions(): ResolvedSegmenterOptions; + } + + interface ResolvedSegmenterOptions { + locale: string; + granularity: "grapheme" | "word" | "sentence"; + } + + interface Segments { + /** + * Returns an object describing the segment in the original string that includes the code unit at a specified index. + * + * @param codeUnitIndex - A number specifying the index of the code unit in the original input string. If the value is omitted, it defaults to `0`. + */ + containing(codeUnitIndex?: number): SegmentData; + + /** Returns an iterator to iterate over the segments. */ + [Symbol.iterator](): IterableIterator; + } + + interface SegmentData { + /** A string containing the segment extracted from the original input string. */ + segment: string; + /** The code unit index in the original input string at which the segment begins. */ + index: number; + /** The complete input string that was segmented. */ + input: string; + /** + * A boolean value only if granularity is "word"; otherwise, undefined. + * If granularity is "word", then isWordLike is true when the segment is word-like (i.e., consists of letters/numbers/ideographs/etc.); otherwise, false. + */ + isWordLike?: boolean; + } + + const Segmenter: { + prototype: Segmenter; + + /** + * Creates a new `Intl.Segmenter` object. + * + * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings. + * For the general form and interpretation of the `locales` argument, + * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation). + * + * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters) + * with some or all options of `SegmenterOptions`. + * + * @returns [Intl.Segmenter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segments) object. + * + * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter). + */ + new(locales?: BCP47LanguageTag | BCP47LanguageTag[], options?: SegmenterOptions): Segmenter; + + /** + * Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale. + * + * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings. + * For the general form and interpretation of the `locales` argument, + * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation). + * + * @param options An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf#parameters). + * with some or all possible options. + * + * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf) + */ + supportedLocalesOf(locales: BCP47LanguageTag | BCP47LanguageTag[], options?: Pick): BCP47LanguageTag[]; + }; +} diff --git a/src/lib/libs.json b/src/lib/libs.json index 0dbe57f36fa..ad01b1dff2c 100644 --- a/src/lib/libs.json +++ b/src/lib/libs.json @@ -57,6 +57,7 @@ "es2021.intl", "es2022.array", "es2022.error", + "es2022.intl", "es2022.object", "es2022.string", "esnext.intl", diff --git a/tests/baselines/reference/es2022IntlAPIs.symbols b/tests/baselines/reference/es2022IntlAPIs.symbols index 939c6b383a5..914f9c93a85 100644 --- a/tests/baselines/reference/es2022IntlAPIs.symbols +++ b/tests/baselines/reference/es2022IntlAPIs.symbols @@ -11,7 +11,7 @@ for (const zoneName of timezoneNames) { var formatter = new Intl.DateTimeFormat('en-US', { >formatter : Symbol(formatter, Decl(es2022IntlAPIs.ts, 3, 5)) >Intl.DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) ->Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 1 more) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) >DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) timeZone: 'America/Los_Angeles', diff --git a/tests/baselines/reference/formatToPartsBigInt.symbols b/tests/baselines/reference/formatToPartsBigInt.symbols index 41d4f83b1d9..1cf2f6000f5 100644 --- a/tests/baselines/reference/formatToPartsBigInt.symbols +++ b/tests/baselines/reference/formatToPartsBigInt.symbols @@ -5,14 +5,14 @@ new Intl.NumberFormat("fr").formatToParts(3000n); >new Intl.NumberFormat("fr").formatToParts : Symbol(Intl.NumberFormat.formatToParts, Decl(lib.es2018.intl.d.ts, --, --)) >Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) ->Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 3 more) >NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >formatToParts : Symbol(Intl.NumberFormat.formatToParts, Decl(lib.es2018.intl.d.ts, --, --)) new Intl.NumberFormat("fr").formatToParts(BigInt(123)); >new Intl.NumberFormat("fr").formatToParts : Symbol(Intl.NumberFormat.formatToParts, Decl(lib.es2018.intl.d.ts, --, --)) >Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) ->Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 3 more) >NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >formatToParts : Symbol(Intl.NumberFormat.formatToParts, Decl(lib.es2018.intl.d.ts, --, --)) >BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) diff --git a/tests/baselines/reference/numberFormatCurrencySign.symbols b/tests/baselines/reference/numberFormatCurrencySign.symbols index 0a22340bcc5..d4b3c8da3ca 100644 --- a/tests/baselines/reference/numberFormatCurrencySign.symbols +++ b/tests/baselines/reference/numberFormatCurrencySign.symbols @@ -3,7 +3,7 @@ const str = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', >str : Symbol(str, Decl(numberFormatCurrencySign.ts, 0, 5)) >new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format : Symbol(Intl.NumberFormat.format, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) >Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) ->Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 3 more) >NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >style : Symbol(style, Decl(numberFormatCurrencySign.ts, 0, 44)) >currency : Symbol(currency, Decl(numberFormatCurrencySign.ts, 0, 63)) diff --git a/tests/baselines/reference/numberFormatCurrencySignResolved.symbols b/tests/baselines/reference/numberFormatCurrencySignResolved.symbols index 4c1b52928b0..c5e125f3930 100644 --- a/tests/baselines/reference/numberFormatCurrencySignResolved.symbols +++ b/tests/baselines/reference/numberFormatCurrencySignResolved.symbols @@ -3,7 +3,7 @@ const options = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'N >options : Symbol(options, Decl(numberFormatCurrencySignResolved.ts, 0, 5)) >new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions : Symbol(Intl.NumberFormat.resolvedOptions, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) >Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) ->Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 3 more) >NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >style : Symbol(style, Decl(numberFormatCurrencySignResolved.ts, 0, 48)) >currency : Symbol(currency, Decl(numberFormatCurrencySignResolved.ts, 0, 67)) diff --git a/tests/baselines/reference/reactJsxReactResolvedNodeNext.trace.json b/tests/baselines/reference/reactJsxReactResolvedNodeNext.trace.json index aff11ff7b34..7857b59fd0f 100644 --- a/tests/baselines/reference/reactJsxReactResolvedNodeNext.trace.json +++ b/tests/baselines/reference/reactJsxReactResolvedNodeNext.trace.json @@ -145,5 +145,7 @@ "File 'package.json' does not exist according to earlier cached lookups.", "File '/package.json' does not exist according to earlier cached lookups.", "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", "File '/package.json' does not exist according to earlier cached lookups." ] \ No newline at end of file diff --git a/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.trace.json b/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.trace.json index 783a70f3a41..0e83601b165 100644 --- a/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.trace.json +++ b/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.trace.json @@ -139,5 +139,7 @@ "File 'package.json' does not exist according to earlier cached lookups.", "File '/package.json' does not exist according to earlier cached lookups.", "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", "File '/package.json' does not exist according to earlier cached lookups." ] \ No newline at end of file diff --git a/tests/baselines/reference/tsc/runWithoutArgs/does-not-add-color-when-NO_COLOR-is-set.js b/tests/baselines/reference/tsc/runWithoutArgs/does-not-add-color-when-NO_COLOR-is-set.js index 5e7ba543d34..e440d0f2801 100644 --- a/tests/baselines/reference/tsc/runWithoutArgs/does-not-add-color-when-NO_COLOR-is-set.js +++ b/tests/baselines/reference/tsc/runWithoutArgs/does-not-add-color-when-NO_COLOR-is-set.js @@ -90,7 +90,7 @@ default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.object, es2022.string/esnext.string, esnext.intl +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.intl, es2022.object, es2022.string/esnext.string, esnext.intl default: undefined --allowJs diff --git a/tests/baselines/reference/tsc/runWithoutArgs/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-can't-provide-terminal-width.js b/tests/baselines/reference/tsc/runWithoutArgs/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-can't-provide-terminal-width.js index eb384f25ae3..a7886b4d5b5 100644 --- a/tests/baselines/reference/tsc/runWithoutArgs/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-can't-provide-terminal-width.js +++ b/tests/baselines/reference/tsc/runWithoutArgs/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-can't-provide-terminal-width.js @@ -90,7 +90,7 @@ default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.object, es2022.string/esnext.string, esnext.intl +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.intl, es2022.object, es2022.string/esnext.string, esnext.intl default: undefined --allowJs diff --git a/tests/baselines/reference/tsc/runWithoutArgs/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js b/tests/baselines/reference/tsc/runWithoutArgs/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js index eb384f25ae3..a7886b4d5b5 100644 --- a/tests/baselines/reference/tsc/runWithoutArgs/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js +++ b/tests/baselines/reference/tsc/runWithoutArgs/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js @@ -90,7 +90,7 @@ default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.object, es2022.string/esnext.string, esnext.intl +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.intl, es2022.object, es2022.string/esnext.string, esnext.intl default: undefined --allowJs From 4765355e714f445a99dc3498686b290f66c2d853 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Fri, 6 May 2022 11:09:42 -0700 Subject: [PATCH 07/64] Fix more tests missing 'it' call in 'describe' (#48994) --- src/testRunner/unittests/publicApi.ts | 34 +++++++++++++++------------ 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/testRunner/unittests/publicApi.ts b/src/testRunner/unittests/publicApi.ts index a1e43e7c371..4bfce8288f5 100644 --- a/src/testRunner/unittests/publicApi.ts +++ b/src/testRunner/unittests/publicApi.ts @@ -180,30 +180,34 @@ describe("unittests:: Public APIs:: validateLocaleAndSetLanguage", () => { }); describe("unittests:: Public APIs :: forEachChild of @param comments in JSDoc", () => { - const content = ` + it("finds correct children", () => { + const content = ` /** * @param The {@link TypeReferencesInAedoc}. */ var x `; - const sourceFile = ts.createSourceFile("/file.ts", content, ts.ScriptTarget.ESNext, /*setParentNodes*/ true); - const paramTag = sourceFile.getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[0]; - const kids = paramTag.getChildren(); - const seen: Set = new Set(); - ts.forEachChild(paramTag, n => { - assert.strictEqual(/*actual*/ false, seen.has(n), "Found a duplicate-added child"); - seen.add(n); + const sourceFile = ts.createSourceFile("/file.ts", content, ts.ScriptTarget.ESNext, /*setParentNodes*/ true); + const paramTag = sourceFile.getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[0]; + const kids = paramTag.getChildren(); + const seen: Set = new Set(); + ts.forEachChild(paramTag, n => { + assert.strictEqual(/*actual*/ false, seen.has(n), "Found a duplicate-added child"); + seen.add(n); + }); + assert.equal(5, kids.length); }); - assert.equal(5, kids.length); }); describe("unittests:: Public APIs:: getChild* methods on EndOfFileToken with JSDoc", () => { - const content = ` + it("finds correct children", () => { + const content = ` /** jsdoc comment attached to EndOfFileToken */ `; - const sourceFile = ts.createSourceFile("/file.ts", content, ts.ScriptTarget.ESNext, /*setParentNodes*/ true); - const endOfFileToken = sourceFile.getChildren()[1]; - assert.equal(endOfFileToken.getChildren().length, 1); - assert.equal(endOfFileToken.getChildCount(), 1); - assert.notEqual(endOfFileToken.getChildAt(0), /*expected*/ undefined); + const sourceFile = ts.createSourceFile("/file.ts", content, ts.ScriptTarget.ESNext, /*setParentNodes*/ true); + const endOfFileToken = sourceFile.getChildren()[1]; + assert.equal(endOfFileToken.getChildren().length, 1); + assert.equal(endOfFileToken.getChildCount(), 1); + assert.notEqual(endOfFileToken.getChildAt(0), /*expected*/ undefined); + }); }); From 2ffe6864b163d54cca3b20ef5c2a894beb00b128 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Fri, 6 May 2022 12:58:12 -0700 Subject: [PATCH 08/64] Respect importModuleSpecifierEnding inside node_modules packages (#48995) * Respect importModuleSpecifierEnding inside node_modules packages * Add tests for missing package.json --- src/compiler/moduleSpecifiers.ts | 47 ++++++++++--------- .../autoImportNoPackageJson_commonjs.ts | 11 +++++ .../autoImportNoPackageJson_nodenext.ts | 11 +++++ .../fourslash/importNameCodeFixJsEnding.ts | 17 +++++++ 4 files changed, 63 insertions(+), 23 deletions(-) create mode 100644 tests/cases/fourslash/autoImportNoPackageJson_commonjs.ts create mode 100644 tests/cases/fourslash/autoImportNoPackageJson_nodenext.ts create mode 100644 tests/cases/fourslash/importNameCodeFixJsEnding.ts diff --git a/src/compiler/moduleSpecifiers.ts b/src/compiler/moduleSpecifiers.ts index 542afb796a9..ed8d9f90b0a 100644 --- a/src/compiler/moduleSpecifiers.ts +++ b/src/compiler/moduleSpecifiers.ts @@ -105,7 +105,7 @@ namespace ts.moduleSpecifiers { const info = getInfo(importingSourceFile.path, host); const modulePaths = getAllModulePaths(importingSourceFile.path, nodeModulesFileName, host, preferences, options); return firstDefined(modulePaths, - modulePath => tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, /*packageNameOnly*/ true, options.overrideImportMode)); + modulePath => tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, preferences, /*packageNameOnly*/ true, options.overrideImportMode)); } function getModuleSpecifierWorker( @@ -120,7 +120,7 @@ namespace ts.moduleSpecifiers { ): string { const info = getInfo(importingSourceFileName, host); const modulePaths = getAllModulePaths(importingSourceFileName, toFileName, host, userPreferences, options); - return firstDefined(modulePaths, modulePath => tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, /*packageNameOnly*/ undefined, options.overrideImportMode)) || + return firstDefined(modulePaths, modulePath => tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, userPreferences, /*packageNameOnly*/ undefined, options.overrideImportMode)) || getLocalModuleSpecifier(toFileName, info, compilerOptions, host, preferences); } @@ -248,7 +248,7 @@ namespace ts.moduleSpecifiers { let pathsSpecifiers: string[] | undefined; let relativeSpecifiers: string[] | undefined; for (const modulePath of modulePaths) { - const specifier = tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, /*packageNameOnly*/ undefined, options.overrideImportMode); + const specifier = tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, userPreferences, /*packageNameOnly*/ undefined, options.overrideImportMode); nodeModulesSpecifiers = append(nodeModulesSpecifiers, specifier); if (specifier && modulePath.isRedirect) { // If we got a specifier for a redirect, it was a bare package specifier (e.g. "@foo/bar", @@ -666,7 +666,7 @@ namespace ts.moduleSpecifiers { : removeFileExtension(relativePath); } - function tryGetModuleNameAsNodeModule({ path, isRedirect }: ModulePath, { getCanonicalFileName, sourceDirectory }: Info, importingSourceFile: SourceFile , host: ModuleSpecifierResolutionHost, options: CompilerOptions, packageNameOnly?: boolean, overrideMode?: ModuleKind.ESNext | ModuleKind.CommonJS): string | undefined { + function tryGetModuleNameAsNodeModule({ path, isRedirect }: ModulePath, { getCanonicalFileName, sourceDirectory }: Info, importingSourceFile: SourceFile , host: ModuleSpecifierResolutionHost, options: CompilerOptions, userPreferences: UserPreferences, packageNameOnly?: boolean, overrideMode?: ModuleKind.ESNext | ModuleKind.CommonJS): string | undefined { if (!host.fileExists || !host.readFile) { return undefined; } @@ -680,8 +680,9 @@ namespace ts.moduleSpecifiers { let moduleSpecifier = path; let isPackageRootPath = false; if (!packageNameOnly) { + const preferences = getPreferences(host, userPreferences, options, importingSourceFile); let packageRootIndex = parts.packageRootIndex; - let moduleFileNameForExtensionless: string | undefined; + let moduleFileName: string | undefined; while (true) { // If the module could be imported by a directory name, use that directory's name const { moduleFileToTry, packageRootPath, blockedByExports, verbatimFromExports } = tryDirectoryWithPackageJson(packageRootIndex); @@ -698,12 +699,12 @@ namespace ts.moduleSpecifiers { isPackageRootPath = true; break; } - if (!moduleFileNameForExtensionless) moduleFileNameForExtensionless = moduleFileToTry; + if (!moduleFileName) moduleFileName = moduleFileToTry; // try with next level of directory packageRootIndex = path.indexOf(directorySeparator, packageRootIndex + 1); if (packageRootIndex === -1) { - moduleSpecifier = getExtensionlessFileName(moduleFileNameForExtensionless); + moduleSpecifier = removeExtensionAndIndexPostFix(moduleFileName, preferences.ending, options, host); break; } } @@ -768,7 +769,7 @@ namespace ts.moduleSpecifiers { } } // If the file is the main module, it can be imported by the package name - const mainFileRelative = packageJsonContent.typings || packageJsonContent.types || packageJsonContent.main; + const mainFileRelative = packageJsonContent.typings || packageJsonContent.types || packageJsonContent.main || "index.js"; if (isString(mainFileRelative)) { const mainExportFile = toPath(mainFileRelative, packageRootPath, getCanonicalFileName); if (removeFileExtension(mainExportFile) === removeFileExtension(getCanonicalFileName(moduleFileToTry))) { @@ -776,20 +777,14 @@ namespace ts.moduleSpecifiers { } } } - return { moduleFileToTry }; - } - - function getExtensionlessFileName(path: string): string { - // We still have a file name - remove the extension - const fullModulePathWithoutExtension = removeFileExtension(path); - - // If the file is /index, it can be imported by its directory name - // IFF there is not _also_ a file by the same name - if (getCanonicalFileName(fullModulePathWithoutExtension.substring(parts.fileNameIndex)) === "/index" && !tryGetAnyFileFromPath(host, fullModulePathWithoutExtension.substring(0, parts.fileNameIndex))) { - return fullModulePathWithoutExtension.substring(0, parts.fileNameIndex); + else { + // No package.json exists; an index.js will still resolve as the package name + const fileName = getCanonicalFileName(moduleFileToTry.substring(parts.packageRootIndex + 1)); + if (fileName === "index.d.ts" || fileName === "index.js" || fileName === "index.ts" || fileName === "index.tsx") { + return { moduleFileToTry, packageRootPath }; + } } - - return fullModulePathWithoutExtension; + return { moduleFileToTry }; } } @@ -812,13 +807,19 @@ namespace ts.moduleSpecifiers { }); } - function removeExtensionAndIndexPostFix(fileName: string, ending: Ending, options: CompilerOptions): string { + function removeExtensionAndIndexPostFix(fileName: string, ending: Ending, options: CompilerOptions, host?: ModuleSpecifierResolutionHost): string { if (fileExtensionIsOneOf(fileName, [Extension.Json, Extension.Mjs, Extension.Cjs])) return fileName; const noExtension = removeFileExtension(fileName); if (fileExtensionIsOneOf(fileName, [Extension.Dmts, Extension.Mts, Extension.Dcts, Extension.Cts])) return noExtension + getJSExtensionForFile(fileName, options); switch (ending) { case Ending.Minimal: - return removeSuffix(noExtension, "/index"); + const withoutIndex = removeSuffix(noExtension, "/index"); + if (host && withoutIndex !== noExtension && tryGetAnyFileFromPath(host, withoutIndex)) { + // Can't remove index if there's a file by the same name as the directory. + // Probably more callers should pass `host` so we can determine this? + return noExtension; + } + return withoutIndex; case Ending.Index: return noExtension; case Ending.JsExtension: diff --git a/tests/cases/fourslash/autoImportNoPackageJson_commonjs.ts b/tests/cases/fourslash/autoImportNoPackageJson_commonjs.ts new file mode 100644 index 00000000000..1d9a0ad3233 --- /dev/null +++ b/tests/cases/fourslash/autoImportNoPackageJson_commonjs.ts @@ -0,0 +1,11 @@ +/// + +// @module: commonjs + +// @Filename: /node_modules/lit/index.d.cts +//// export declare function customElement(name: string): any; + +// @Filename: /a.ts +//// customElement/**/ + +verify.importFixModuleSpecifiers("", ["lit/index.cjs"]); diff --git a/tests/cases/fourslash/autoImportNoPackageJson_nodenext.ts b/tests/cases/fourslash/autoImportNoPackageJson_nodenext.ts new file mode 100644 index 00000000000..ff57e8fe710 --- /dev/null +++ b/tests/cases/fourslash/autoImportNoPackageJson_nodenext.ts @@ -0,0 +1,11 @@ +/// + +// @module: nodenext + +// @Filename: /node_modules/lit/index.d.cts +//// export declare function customElement(name: string): any; + +// @Filename: /a.ts +//// customElement/**/ + +verify.importFixModuleSpecifiers("", ["lit/index.cjs"]); diff --git a/tests/cases/fourslash/importNameCodeFixJsEnding.ts b/tests/cases/fourslash/importNameCodeFixJsEnding.ts new file mode 100644 index 00000000000..3ab4215e7f7 --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFixJsEnding.ts @@ -0,0 +1,17 @@ +/// + +// @module: commonjs + +// @Filename: /node_modules/lit/package.json +//// { "name": "lit", "version": "1.0.0" } + +// @Filename: /node_modules/lit/index.d.ts +//// import "./decorators"; + +// @Filename: /node_modules/lit/decorators.d.ts +//// export declare function customElement(name: string): any; + +// @Filename: /a.ts +//// customElement/**/ + +verify.importFixModuleSpecifiers("", ["lit/decorators.js"], { importModuleSpecifierEnding: "js" }) From 8d0393d227d6fca43b1108a2d514b9856cb6e605 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Fri, 6 May 2022 13:36:27 -0700 Subject: [PATCH 09/64] Fix missing parsingContext restore at return in parseDelimitedList (#48999) --- src/compiler/parser.ts | 1 + .../parserUnparsedTokenCrash1.errors.txt | 11 +++++++ .../reference/parserUnparsedTokenCrash1.js | 7 +++++ .../parserUnparsedTokenCrash1.symbols | 4 +++ .../reference/parserUnparsedTokenCrash1.types | 8 +++++ .../parserUnparsedTokenCrash2.errors.txt | 30 +++++++++++++++++++ .../reference/parserUnparsedTokenCrash2.js | 10 +++++++ .../parserUnparsedTokenCrash2.symbols | 4 +++ .../reference/parserUnparsedTokenCrash2.types | 14 +++++++++ .../compiler/parserUnparsedTokenCrash1.ts | 4 +++ .../compiler/parserUnparsedTokenCrash2.ts | 1 + 11 files changed, 94 insertions(+) create mode 100644 tests/baselines/reference/parserUnparsedTokenCrash1.errors.txt create mode 100644 tests/baselines/reference/parserUnparsedTokenCrash1.js create mode 100644 tests/baselines/reference/parserUnparsedTokenCrash1.symbols create mode 100644 tests/baselines/reference/parserUnparsedTokenCrash1.types create mode 100644 tests/baselines/reference/parserUnparsedTokenCrash2.errors.txt create mode 100644 tests/baselines/reference/parserUnparsedTokenCrash2.js create mode 100644 tests/baselines/reference/parserUnparsedTokenCrash2.symbols create mode 100644 tests/baselines/reference/parserUnparsedTokenCrash2.types create mode 100644 tests/cases/compiler/parserUnparsedTokenCrash1.ts create mode 100644 tests/cases/compiler/parserUnparsedTokenCrash2.ts diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 240385df8df..dd1e7f6431a 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2745,6 +2745,7 @@ namespace ts { const startPos = scanner.getStartPos(); const result = parseListElement(kind, parseElement); if (!result) { + parsingContext = saveParsingContext; return undefined; } list.push(result as NonNullable); diff --git a/tests/baselines/reference/parserUnparsedTokenCrash1.errors.txt b/tests/baselines/reference/parserUnparsedTokenCrash1.errors.txt new file mode 100644 index 00000000000..133be2968a2 --- /dev/null +++ b/tests/baselines/reference/parserUnparsedTokenCrash1.errors.txt @@ -0,0 +1,11 @@ +tests/cases/compiler/a.js(1,9): error TS1005: ')' expected. +tests/cases/compiler/a.js(1,13): error TS1005: ';' expected. + + +==== tests/cases/compiler/a.js (2 errors) ==== + ( y = 1 ; 2 ) + ~ +!!! error TS1005: ')' expected. + ~ +!!! error TS1005: ';' expected. + \ No newline at end of file diff --git a/tests/baselines/reference/parserUnparsedTokenCrash1.js b/tests/baselines/reference/parserUnparsedTokenCrash1.js new file mode 100644 index 00000000000..feffea8688a --- /dev/null +++ b/tests/baselines/reference/parserUnparsedTokenCrash1.js @@ -0,0 +1,7 @@ +//// [a.js] +( y = 1 ; 2 ) + + +//// [a.js] +(y = 1); +2; diff --git a/tests/baselines/reference/parserUnparsedTokenCrash1.symbols b/tests/baselines/reference/parserUnparsedTokenCrash1.symbols new file mode 100644 index 00000000000..a07da336f81 --- /dev/null +++ b/tests/baselines/reference/parserUnparsedTokenCrash1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/a.js === +( y = 1 ; 2 ) +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserUnparsedTokenCrash1.types b/tests/baselines/reference/parserUnparsedTokenCrash1.types new file mode 100644 index 00000000000..836ba475b5d --- /dev/null +++ b/tests/baselines/reference/parserUnparsedTokenCrash1.types @@ -0,0 +1,8 @@ +=== tests/cases/compiler/a.js === +( y = 1 ; 2 ) +>( y = 1 : 1 +>y = 1 : 1 +>y : any +>1 : 1 +>2 : 2 + diff --git a/tests/baselines/reference/parserUnparsedTokenCrash2.errors.txt b/tests/baselines/reference/parserUnparsedTokenCrash2.errors.txt new file mode 100644 index 00000000000..4f23134ef9f --- /dev/null +++ b/tests/baselines/reference/parserUnparsedTokenCrash2.errors.txt @@ -0,0 +1,30 @@ +tests/cases/compiler/parserUnparsedTokenCrash2.ts(1,10): error TS1109: Expression expected. +tests/cases/compiler/parserUnparsedTokenCrash2.ts(1,12): error TS2304: Cannot find name 'x'. +tests/cases/compiler/parserUnparsedTokenCrash2.ts(1,16): error TS2364: The left-hand side of an assignment expression must be a variable or a property access. +tests/cases/compiler/parserUnparsedTokenCrash2.ts(1,18): error TS2304: Cannot find name 'y'. +tests/cases/compiler/parserUnparsedTokenCrash2.ts(1,22): error TS2304: Cannot find name 'z'. +tests/cases/compiler/parserUnparsedTokenCrash2.ts(1,27): error TS1109: Expression expected. +tests/cases/compiler/parserUnparsedTokenCrash2.ts(1,39): error TS1005: ';' expected. +tests/cases/compiler/parserUnparsedTokenCrash2.ts(2,1): error TS1005: '}' expected. + + +==== tests/cases/compiler/parserUnparsedTokenCrash2.ts (8 errors) ==== + export = } x = ( y = z ==== 'function') { + ~ +!!! error TS1109: Expression expected. + ~ +!!! error TS2304: Cannot find name 'x'. + ~~~~~~~~~~~ +!!! error TS2364: The left-hand side of an assignment expression must be a variable or a property access. + ~ +!!! error TS2304: Cannot find name 'y'. + ~ +!!! error TS2304: Cannot find name 'z'. + ~ +!!! error TS1109: Expression expected. + ~ +!!! error TS1005: ';' expected. + + +!!! error TS1005: '}' expected. +!!! related TS1007 tests/cases/compiler/parserUnparsedTokenCrash2.ts:1:41: The parser expected to find a '}' to match the '{' token here. \ No newline at end of file diff --git a/tests/baselines/reference/parserUnparsedTokenCrash2.js b/tests/baselines/reference/parserUnparsedTokenCrash2.js new file mode 100644 index 00000000000..e7ff31800eb --- /dev/null +++ b/tests/baselines/reference/parserUnparsedTokenCrash2.js @@ -0,0 +1,10 @@ +//// [parserUnparsedTokenCrash2.ts] +export = } x = ( y = z ==== 'function') { + + +//// [parserUnparsedTokenCrash2.js] +"use strict"; +x = (y = z === ) = 'function'; +{ +} +module.exports = ; diff --git a/tests/baselines/reference/parserUnparsedTokenCrash2.symbols b/tests/baselines/reference/parserUnparsedTokenCrash2.symbols new file mode 100644 index 00000000000..a027cd161a7 --- /dev/null +++ b/tests/baselines/reference/parserUnparsedTokenCrash2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/parserUnparsedTokenCrash2.ts === +export = } x = ( y = z ==== 'function') { +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserUnparsedTokenCrash2.types b/tests/baselines/reference/parserUnparsedTokenCrash2.types new file mode 100644 index 00000000000..62e37ed3443 --- /dev/null +++ b/tests/baselines/reference/parserUnparsedTokenCrash2.types @@ -0,0 +1,14 @@ +=== tests/cases/compiler/parserUnparsedTokenCrash2.ts === +export = } x = ( y = z ==== 'function') { +> : any +>x = ( y = z ==== 'function' : "function" +>x : any +>( y = z ==== 'function' : "function" +>( y = z === : boolean +>y = z === : boolean +>y : any +>z === : boolean +>z : any +> : any +>'function' : "function" + diff --git a/tests/cases/compiler/parserUnparsedTokenCrash1.ts b/tests/cases/compiler/parserUnparsedTokenCrash1.ts new file mode 100644 index 00000000000..303c455825b --- /dev/null +++ b/tests/cases/compiler/parserUnparsedTokenCrash1.ts @@ -0,0 +1,4 @@ +// @allowJs: true +// @outDir: ./out +// @filename: a.js +( y = 1 ; 2 ) diff --git a/tests/cases/compiler/parserUnparsedTokenCrash2.ts b/tests/cases/compiler/parserUnparsedTokenCrash2.ts new file mode 100644 index 00000000000..d470175462b --- /dev/null +++ b/tests/cases/compiler/parserUnparsedTokenCrash2.ts @@ -0,0 +1 @@ +export = } x = ( y = z ==== 'function') { From 1a4643bdcec6f800c84b29c5716aa9c2ad2fd0c7 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 6 May 2022 16:31:40 -0700 Subject: [PATCH 10/64] Flag resolution mode assertions in non-nightly builds (#49002) * Flag resolution mode assertions in non-nightly builds * Add checker check --- src/compiler/checker.ts | 4 ++++ src/compiler/diagnosticMessages.json | 4 ++++ src/compiler/program.ts | 2 +- src/compiler/transformers/declarations.ts | 21 ++++++++++++++++----- src/compiler/utilities.ts | 4 ++++ 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ae1ded9d0d8..6370dddf49f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -40718,6 +40718,10 @@ namespace ts { const validForTypeAssertions = isExclusivelyTypeOnlyImportOrExport(declaration); const override = getResolutionModeOverrideForClause(declaration.assertClause, validForTypeAssertions ? grammarErrorOnNode : undefined); if (validForTypeAssertions && override) { + if (!isNightly()) { + grammarErrorOnNode(declaration.assertClause, Diagnostics.Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next); + } + if (getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.Node16 && getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.NodeNext) { return grammarErrorOnNode(declaration.assertClause, Diagnostics.Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext); } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 2382a16cf1d..bae97eb5375 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -3880,6 +3880,10 @@ "category": "Error", "code": 4124 }, + "Resolution mode assertions are unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.": { + "category": "Error", + "code": 4125 + }, "The current host does not support the '{0}' option.": { "category": "Error", diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 2d7777e7631..7044953fee6 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -593,7 +593,7 @@ namespace ts { } /* @internal */ - export function getResolutionModeOverrideForClause(clause: AssertClause | undefined, grammarErrorOnNode?: (node: Node, diagnostic: DiagnosticMessage) => boolean) { + export function getResolutionModeOverrideForClause(clause: AssertClause | undefined, grammarErrorOnNode?: (node: Node, diagnostic: DiagnosticMessage) => void) { if (!clause) return undefined; if (length(clause.elements) !== 1) { grammarErrorOnNode?.(clause, Diagnostics.Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require); diff --git a/src/compiler/transformers/declarations.ts b/src/compiler/transformers/declarations.ts index 0667cf386f7..b855fd4b8da 100644 --- a/src/compiler/transformers/declarations.ts +++ b/src/compiler/transformers/declarations.ts @@ -733,7 +733,7 @@ namespace ts { decl.modifiers, decl.importClause, rewriteModuleSpecifier(decl, decl.moduleSpecifier), - getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined + getResolutionModeOverrideForClauseInNightly(decl.assertClause) ); } // The `importClause` visibility corresponds to the default's visibility. @@ -745,7 +745,7 @@ namespace ts { decl.importClause.isTypeOnly, visibleDefaultBinding, /*namedBindings*/ undefined, - ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined); + ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause)); } if (decl.importClause.namedBindings.kind === SyntaxKind.NamespaceImport) { // Namespace import (optionally with visible default) @@ -755,7 +755,7 @@ namespace ts { decl.importClause.isTypeOnly, visibleDefaultBinding, namedBindings, - ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined) : undefined; + ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause)) : undefined; } // Named imports (optionally with visible default) const bindingList = mapDefined(decl.importClause.namedBindings.elements, b => resolver.isDeclarationVisible(b) ? b : undefined); @@ -771,7 +771,7 @@ namespace ts { bindingList && bindingList.length ? factory.updateNamedImports(decl.importClause.namedBindings, bindingList) : undefined, ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), - getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined + getResolutionModeOverrideForClauseInNightly(decl.assertClause) ); } // Augmentation of export depends on import @@ -782,12 +782,23 @@ namespace ts { decl.modifiers, /*importClause*/ undefined, rewriteModuleSpecifier(decl, decl.moduleSpecifier), - getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined + getResolutionModeOverrideForClauseInNightly(decl.assertClause) ); } // Nothing visible } + function getResolutionModeOverrideForClauseInNightly(assertClause: AssertClause | undefined) { + const mode = getResolutionModeOverrideForClause(assertClause); + if (mode !== undefined) { + if (!isNightly()) { + context.addDiagnostic(createDiagnosticForNode(assertClause!, Diagnostics.Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next)); + } + return assertClause; + } + return undefined; + } + function transformAndReplaceLatePaintedStatements(statements: NodeArray): NodeArray { // This is a `while` loop because `handleSymbolAccessibilityError` can see additional import aliases marked as visible during // error handling which must now be included in the output and themselves checked for errors. diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 3c38df36b44..6036f516bb0 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -4121,6 +4121,10 @@ namespace ts { return indentStrings[1].length; } + export function isNightly() { + return stringContains(version, "-dev") || stringContains(version, "-insiders"); + } + export function createTextWriter(newLine: string): EmitTextWriter { let output: string; let indent: number; From 94391dc9b546e11ca2202557f3c8a299a0d3101a Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Sat, 7 May 2022 00:22:34 +0000 Subject: [PATCH 11/64] Bump version to 4.8. --- package.json | 2 +- src/compiler/corePublic.ts | 2 +- tests/baselines/reference/api/tsserverlibrary.d.ts | 2 +- tests/baselines/reference/api/typescript.d.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 180063e1d89..56a00f94f7d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "typescript", "author": "Microsoft Corp.", "homepage": "https://www.typescriptlang.org/", - "version": "4.7.0", + "version": "4.8.0", "license": "Apache-2.0", "description": "TypeScript is a language for application scale JavaScript development", "keywords": [ diff --git a/src/compiler/corePublic.ts b/src/compiler/corePublic.ts index 1d84b6726e6..aabd9ac8333 100644 --- a/src/compiler/corePublic.ts +++ b/src/compiler/corePublic.ts @@ -1,7 +1,7 @@ namespace ts { // WARNING: The script `configurePrerelease.ts` uses a regexp to parse out these values. // If changing the text in this section, be sure to test `configurePrerelease` too. - export const versionMajorMinor = "4.7"; + export const versionMajorMinor = "4.8"; // The following is baselined as a literal template type without intervention /** The version of the TypeScript compiler release */ // eslint-disable-next-line @typescript-eslint/no-inferrable-types diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index f7e45674ac0..9f6634bcfa3 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -14,7 +14,7 @@ and limitations under the License. ***************************************************************************** */ declare namespace ts { - const versionMajorMinor = "4.7"; + const versionMajorMinor = "4.8"; /** The version of the TypeScript compiler release */ const version: string; /** diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index fb0a5a0c1e7..2219a924d47 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -14,7 +14,7 @@ and limitations under the License. ***************************************************************************** */ declare namespace ts { - const versionMajorMinor = "4.7"; + const versionMajorMinor = "4.8"; /** The version of the TypeScript compiler release */ const version: string; /** From bc161c0dd8f44df74247c29f5fa5eb97dbae457b Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Sat, 7 May 2022 06:06:49 +0000 Subject: [PATCH 12/64] Update package-lock.json --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 46831288f2d..48355a16ece 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "typescript", - "version": "4.7.0", + "version": "4.8.0", "lockfileVersion": 1, "requires": true, "dependencies": { From 53343dd94d894ba141f53a1b2dde45d91e6b3a14 Mon Sep 17 00:00:00 2001 From: csigs Date: Sat, 7 May 2022 05:42:49 -0700 Subject: [PATCH 13/64] LEGO: Merge pull request 49010 LEGO: Merge pull request 49010 --- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- 10 files changed, 640 insertions(+), 400 deletions(-) diff --git a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl index b20a7942045..8ef252de28c 100644 --- a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5360,10 +5360,13 @@ - + - + + + + @@ -5376,11 +5379,11 @@ - + - + - + @@ -7965,15 +7968,6 @@ - - - - - - - - - @@ -10757,19 +10751,25 @@ - + - + + + + - + - + + + + @@ -11115,11 +11115,11 @@ - + - + - + @@ -12696,6 +12696,15 @@ + + + + + + + + + @@ -12827,10 +12836,13 @@ - + - + + + + @@ -13140,6 +13152,24 @@ + + + + + + + + + + + + + + + + + + @@ -13728,15 +13758,6 @@ - - - - - - - - - @@ -13746,11 +13767,11 @@ - + - + - + @@ -13764,11 +13785,11 @@ - + - + - + @@ -15950,10 +15971,13 @@ - + - + + + + diff --git a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl index f614e8f1932..5013f028ff7 100644 --- a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5369,10 +5369,13 @@ - + - + + + + @@ -5385,11 +5388,11 @@ - + - + - + @@ -7974,15 +7977,6 @@ - - - - - - - - - @@ -10766,19 +10760,25 @@ - + - + + + + - + - + + + + @@ -11124,11 +11124,11 @@ - + - + - + @@ -12705,6 +12705,15 @@ + + + + + + + + + @@ -12836,10 +12845,13 @@ - + - + + + + @@ -13149,6 +13161,24 @@ + + + + + + + + + + + + + + + + + + @@ -13737,15 +13767,6 @@ - - - - - - - - - @@ -13755,11 +13776,11 @@ - + - + - + @@ -13773,11 +13794,11 @@ - + - + - + @@ -15959,10 +15980,13 @@ - + - + + + + diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl index 33b4db6a78c..f2b25f7483c 100644 --- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5357,10 +5357,13 @@ - + - + + + + @@ -5373,11 +5376,11 @@ - + - + - + @@ -7962,15 +7965,6 @@ - - - - - - - - - @@ -10751,19 +10745,25 @@ - + - + + + + - + - + + + + @@ -11109,11 +11109,11 @@ - + - + - + @@ -12690,6 +12690,15 @@ + + + + + + + + + @@ -12821,10 +12830,13 @@ - + - + + + + @@ -13134,6 +13146,24 @@ + + + + + + + + + + + + + + + + + + @@ -13722,15 +13752,6 @@ - - - - - - - - - @@ -13740,11 +13761,11 @@ - + - + - + @@ -13758,11 +13779,11 @@ - + - + - + @@ -15944,10 +15965,13 @@ - + - + + + + diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 0892782e82d..3973855a8b6 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5372,10 +5372,13 @@ - + - + + + + @@ -5388,11 +5391,11 @@ - + - + - + @@ -7977,15 +7980,6 @@ - - - - - - - - - @@ -10769,19 +10763,25 @@ - + - + + + + - + - + + + + @@ -11127,11 +11127,11 @@ - + - + - + @@ -12708,6 +12708,15 @@ + + + + + + + + + @@ -12839,10 +12848,13 @@ - + - + + + + @@ -13152,6 +13164,24 @@ + + + + + + + + + + + + + + + + + + @@ -13740,15 +13770,6 @@ - - - - - - - - - @@ -13758,11 +13779,11 @@ - + - + - + @@ -13776,11 +13797,11 @@ - + - + - + @@ -15962,10 +15983,13 @@ - + - + + + + diff --git a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl index e2263e2549d..10636017b21 100644 --- a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5372,10 +5372,13 @@ - + - + + + + @@ -5388,11 +5391,11 @@ - + - + - + @@ -7977,15 +7980,6 @@ - - - - - - - - - @@ -10769,19 +10763,25 @@ - + - + + + + - + - + + + + @@ -11127,11 +11127,11 @@ - + - + - + @@ -12708,6 +12708,15 @@ + + + + + + + + + @@ -12839,10 +12848,13 @@ - + - + + + + @@ -13152,6 +13164,24 @@ + + + + + + + + + + + + + + + + + + @@ -13740,15 +13770,6 @@ - - - - - - - - - @@ -13758,11 +13779,11 @@ - + - + - + @@ -13776,11 +13797,11 @@ - + - + - + @@ -15962,10 +15983,13 @@ - + - + + + + diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl index e222b1f13d7..b701d37e533 100644 --- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5360,10 +5360,13 @@ - + - + + + + @@ -5376,11 +5379,11 @@ - + - + - + @@ -7965,15 +7968,6 @@ - - - - - - - - - @@ -10757,19 +10751,25 @@ - + - + + + + - + - + + + + @@ -11115,11 +11115,11 @@ - + - + - + @@ -12696,6 +12696,15 @@ + + + + + + + + + @@ -12827,10 +12836,13 @@ - + - + + + + @@ -13140,6 +13152,24 @@ + + + + + + + + + + + + + + + + + + @@ -13728,15 +13758,6 @@ - - - - - - - - - @@ -13746,11 +13767,11 @@ - + - + - + @@ -13764,11 +13785,11 @@ - + - + - + @@ -15950,10 +15971,13 @@ - + - + + + + diff --git a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl index fb0bd7b0c44..e79a598527d 100644 --- a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5360,10 +5360,13 @@ - + - + + + + @@ -5376,11 +5379,11 @@ - + - + - + @@ -7965,15 +7968,6 @@ - - - - - - - - - @@ -10757,19 +10751,25 @@ - + - + + + + - + - + + + + @@ -11115,11 +11115,11 @@ - + - + - + @@ -12696,6 +12696,15 @@ + + + + + + + + + @@ -12827,10 +12836,13 @@ - + - + + + + @@ -13140,6 +13152,24 @@ + + + + + + + + + + + + + + + + + + @@ -13728,15 +13758,6 @@ - - - - - - - - - @@ -13746,11 +13767,11 @@ - + - + - + @@ -13764,11 +13785,11 @@ - + - + - + @@ -15950,10 +15971,13 @@ - + - + + + + diff --git a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl index 102654a92b6..b73b15ba1df 100644 --- a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5350,10 +5350,13 @@ - + - + + + + @@ -5366,11 +5369,11 @@ - + - + - + @@ -7955,15 +7958,6 @@ - - - - - - - - - @@ -10744,19 +10738,25 @@ - + - + + + + - + - + + + + @@ -11102,11 +11102,11 @@ - + - + - + @@ -12683,6 +12683,15 @@ + + + + + + + + + @@ -12814,10 +12823,13 @@ - + - + + + + @@ -13127,6 +13139,24 @@ + + + + + + + + + + + + + + + + + + @@ -13715,15 +13745,6 @@ - - - - - - - - - @@ -13733,11 +13754,11 @@ - + - + - + @@ -13751,11 +13772,11 @@ - + - + - + @@ -15937,10 +15958,13 @@ - + - + + + + diff --git a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl index 303d5413039..0f1fbede4a8 100644 --- a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5353,10 +5353,13 @@ - + - + + + + @@ -5369,11 +5372,11 @@ - + - + - + @@ -7958,15 +7961,6 @@ - - - - - - - - - @@ -10747,19 +10741,25 @@ - + - + + + + - + - + + + + @@ -11105,11 +11105,11 @@ - + - + - + @@ -12686,6 +12686,15 @@ + + + + + + + + + @@ -12817,10 +12826,13 @@ - + - + + + + @@ -13130,6 +13142,24 @@ + + + + + + + + + + + + + + + + + + @@ -13718,15 +13748,6 @@ - - - - - - - - - @@ -13736,11 +13757,11 @@ - + - + - + @@ -13754,11 +13775,11 @@ - + - + - + @@ -15940,10 +15961,13 @@ - + - + + + + diff --git a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl index 2e8bc37a128..03aaabf8e3d 100644 --- a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5359,10 +5359,13 @@ - + - + + + + @@ -5375,11 +5378,11 @@ - + - + - + @@ -7964,15 +7967,6 @@ - - - - - - - - - @@ -10756,19 +10750,25 @@ - + - + + + + - + - + + + + @@ -11114,11 +11114,11 @@ - + - + - + @@ -12695,6 +12695,15 @@ + + + + + + + + + @@ -12826,10 +12835,13 @@ - + - + + + + @@ -13139,6 +13151,24 @@ + + + + + + + + + + + + + + + + + + @@ -13727,15 +13757,6 @@ - - - - - - - - - @@ -13745,11 +13766,11 @@ - + - + - + @@ -13763,11 +13784,11 @@ - + - + - + @@ -15949,10 +15970,13 @@ - + - + + + + From 1071240907ab7aae63ecc9c0bbde42aa51dc7669 Mon Sep 17 00:00:00 2001 From: csigs Date: Sun, 8 May 2022 08:08:33 -0700 Subject: [PATCH 14/64] LEGO: Merge pull request 49016 LEGO: Merge pull request 49016 --- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- .../diagnosticMessages.generated.json.lcl | 104 +++++++++++------- 3 files changed, 192 insertions(+), 120 deletions(-) diff --git a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl index f6b570fc6ff..19804537abd 100644 --- a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5360,10 +5360,13 @@ - + - + + + + @@ -5376,11 +5379,11 @@ - + - + - + @@ -7965,15 +7968,6 @@ - - - - - - - - - @@ -10757,19 +10751,25 @@ - + - + + + + - + - + + + + @@ -11115,11 +11115,11 @@ - + - + - + @@ -12696,6 +12696,15 @@ + + + + + + + + + @@ -12827,10 +12836,13 @@ - + - + + + + @@ -13140,6 +13152,24 @@ + + + + + + + + + + + + + + + + + + @@ -13728,15 +13758,6 @@ - - - - - - - - - @@ -13746,11 +13767,11 @@ - + - + - + @@ -13764,11 +13785,11 @@ - + - + - + @@ -15950,10 +15971,13 @@ - + - + + + + diff --git a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl index 372de213b24..5ae6ecab644 100644 --- a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5360,10 +5360,13 @@ - + - + + + + @@ -5376,11 +5379,11 @@ - + - + - + @@ -7965,15 +7968,6 @@ - - - - - - - - - @@ -10757,19 +10751,25 @@ - + - + + + + - + - + + + + @@ -11115,11 +11115,11 @@ - + - + - + @@ -12696,6 +12696,15 @@ + + + + + + + + + @@ -12827,10 +12836,13 @@ - + - + + + + @@ -13140,6 +13152,24 @@ + + + + + + + + + + + + + + + + + + @@ -13728,15 +13758,6 @@ - - - - - - - - - @@ -13746,11 +13767,11 @@ - + - + - + @@ -13764,11 +13785,11 @@ - + - + - + @@ -15950,10 +15971,13 @@ - + - + + + + diff --git a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl index 9ae2836efbf..1641ebc6100 100644 --- a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -5353,10 +5353,13 @@ - + - + + + + @@ -5369,11 +5372,11 @@ - + - + - + @@ -7958,15 +7961,6 @@ - - - - - - - - - @@ -10750,19 +10744,25 @@ - + - + + + + - + - + + + + @@ -11108,11 +11108,11 @@ - + - + - + @@ -12689,6 +12689,15 @@ + + + + + + + + + @@ -12820,10 +12829,13 @@ - + - + + + + @@ -13133,6 +13145,24 @@ + + + + + + + + + + + + + + + + + + @@ -13721,15 +13751,6 @@ - - - - - - - - - @@ -13739,11 +13760,11 @@ - + - + - + @@ -13757,11 +13778,11 @@ - + - + - + @@ -15943,10 +15964,13 @@ - + - + + + + From 3dd9ef43ce489526e7284d170afec831147ae655 Mon Sep 17 00:00:00 2001 From: David Souther Date: Mon, 9 May 2022 10:22:22 -0700 Subject: [PATCH 15/64] fix(44466): Fixes parsing contextual keyword casts as arrow functions --- src/compiler/parser.ts | 4 ++++ tests/baselines/reference/overrideParenVariable.js | 8 ++++++++ tests/baselines/reference/overrideParenVariable.symbols | 0 tests/baselines/reference/overrideParenVariable.types | 0 tests/cases/compiler/readonlyParenCast.ts | 5 +++++ 5 files changed, 17 insertions(+) create mode 100644 tests/baselines/reference/overrideParenVariable.js create mode 100644 tests/baselines/reference/overrideParenVariable.symbols create mode 100644 tests/baselines/reference/overrideParenVariable.types create mode 100644 tests/cases/compiler/readonlyParenCast.ts diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index dd1e7f6431a..35536bb2246 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4538,6 +4538,10 @@ namespace ts { // isn't actually allowed, but we want to treat it as a lambda so we can provide // a good error message. if (isModifierKind(second) && second !== SyntaxKind.AsyncKeyword && lookAhead(nextTokenIsIdentifier)) { + if (lookAhead(() => nextToken() === SyntaxKind.AsKeyword)) { + // https://github.com/microsoft/TypeScript/issues/44466 + return Tristate.False; + } return Tristate.True; } diff --git a/tests/baselines/reference/overrideParenVariable.js b/tests/baselines/reference/overrideParenVariable.js new file mode 100644 index 00000000000..22eb85b7c31 --- /dev/null +++ b/tests/baselines/reference/overrideParenVariable.js @@ -0,0 +1,8 @@ +//// [overrideParenVariable.ts] + +let override: any; +export const a = (override as number); + +//// [overrideParenVariable.js] + +export const a = override; diff --git a/tests/baselines/reference/overrideParenVariable.symbols b/tests/baselines/reference/overrideParenVariable.symbols new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/baselines/reference/overrideParenVariable.types b/tests/baselines/reference/overrideParenVariable.types new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/cases/compiler/readonlyParenCast.ts b/tests/cases/compiler/readonlyParenCast.ts new file mode 100644 index 00000000000..b89372d3924 --- /dev/null +++ b/tests/cases/compiler/readonlyParenCast.ts @@ -0,0 +1,5 @@ +//@target: ES5 + +let readonly: any; + +export const a = (readonly as number); \ No newline at end of file From 958adfc9d835dfbf38f0e954e2e52a718ee35bca Mon Sep 17 00:00:00 2001 From: David Souther Date: Mon, 9 May 2022 10:41:02 -0700 Subject: [PATCH 16/64] Use all modifiers test --- .../baselines/reference/modifierParenCast.js | 23 +++++++++++ .../reference/modifierParenCast.symbols | 33 +++++++++++++++ .../reference/modifierParenCast.types | 41 +++++++++++++++++++ .../reference/overrideParenVariable.js | 8 ---- .../reference/overrideParenVariable.symbols | 0 .../reference/overrideParenVariable.types | 0 tests/cases/compiler/modifierParenCast.ts | 11 +++++ tests/cases/compiler/readonlyParenCast.ts | 5 --- 8 files changed, 108 insertions(+), 13 deletions(-) create mode 100644 tests/baselines/reference/modifierParenCast.js create mode 100644 tests/baselines/reference/modifierParenCast.symbols create mode 100644 tests/baselines/reference/modifierParenCast.types delete mode 100644 tests/baselines/reference/overrideParenVariable.js delete mode 100644 tests/baselines/reference/overrideParenVariable.symbols delete mode 100644 tests/baselines/reference/overrideParenVariable.types create mode 100644 tests/cases/compiler/modifierParenCast.ts delete mode 100644 tests/cases/compiler/readonlyParenCast.ts diff --git a/tests/baselines/reference/modifierParenCast.js b/tests/baselines/reference/modifierParenCast.js new file mode 100644 index 00000000000..d4026dcb3d4 --- /dev/null +++ b/tests/baselines/reference/modifierParenCast.js @@ -0,0 +1,23 @@ +//// [modifierParenCast.ts] +let readonly: any = undefined; +let override: any = undefined; +let out: any = undefined; +let declare: any = undefined; + +export const a = (readonly as number); +export const b = (override as number); +export const c = (out as number); +export const d = (declare as number); + +//// [modifierParenCast.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.d = exports.c = exports.b = exports.a = void 0; +var readonly = undefined; +var override = undefined; +var out = undefined; +var declare = undefined; +exports.a = readonly; +exports.b = override; +exports.c = out; +exports.d = declare; diff --git a/tests/baselines/reference/modifierParenCast.symbols b/tests/baselines/reference/modifierParenCast.symbols new file mode 100644 index 00000000000..abf03d6c41a --- /dev/null +++ b/tests/baselines/reference/modifierParenCast.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/modifierParenCast.ts === +let readonly: any = undefined; +>readonly : Symbol(readonly, Decl(modifierParenCast.ts, 0, 3)) +>undefined : Symbol(undefined) + +let override: any = undefined; +>override : Symbol(override, Decl(modifierParenCast.ts, 1, 3)) +>undefined : Symbol(undefined) + +let out: any = undefined; +>out : Symbol(out, Decl(modifierParenCast.ts, 2, 3)) +>undefined : Symbol(undefined) + +let declare: any = undefined; +>declare : Symbol(declare, Decl(modifierParenCast.ts, 3, 3)) +>undefined : Symbol(undefined) + +export const a = (readonly as number); +>a : Symbol(a, Decl(modifierParenCast.ts, 5, 12)) +>readonly : Symbol(readonly, Decl(modifierParenCast.ts, 0, 3)) + +export const b = (override as number); +>b : Symbol(b, Decl(modifierParenCast.ts, 6, 12)) +>override : Symbol(override, Decl(modifierParenCast.ts, 1, 3)) + +export const c = (out as number); +>c : Symbol(c, Decl(modifierParenCast.ts, 7, 12)) +>out : Symbol(out, Decl(modifierParenCast.ts, 2, 3)) + +export const d = (declare as number); +>d : Symbol(d, Decl(modifierParenCast.ts, 8, 12)) +>declare : Symbol(declare, Decl(modifierParenCast.ts, 3, 3)) + diff --git a/tests/baselines/reference/modifierParenCast.types b/tests/baselines/reference/modifierParenCast.types new file mode 100644 index 00000000000..09367b30fca --- /dev/null +++ b/tests/baselines/reference/modifierParenCast.types @@ -0,0 +1,41 @@ +=== tests/cases/compiler/modifierParenCast.ts === +let readonly: any = undefined; +>readonly : any +>undefined : undefined + +let override: any = undefined; +>override : any +>undefined : undefined + +let out: any = undefined; +>out : any +>undefined : undefined + +let declare: any = undefined; +>declare : any +>undefined : undefined + +export const a = (readonly as number); +>a : number +>(readonly as number) : number +>readonly as number : number +>readonly : any + +export const b = (override as number); +>b : number +>(override as number) : number +>override as number : number +>override : any + +export const c = (out as number); +>c : number +>(out as number) : number +>out as number : number +>out : any + +export const d = (declare as number); +>d : number +>(declare as number) : number +>declare as number : number +>declare : any + diff --git a/tests/baselines/reference/overrideParenVariable.js b/tests/baselines/reference/overrideParenVariable.js deleted file mode 100644 index 22eb85b7c31..00000000000 --- a/tests/baselines/reference/overrideParenVariable.js +++ /dev/null @@ -1,8 +0,0 @@ -//// [overrideParenVariable.ts] - -let override: any; -export const a = (override as number); - -//// [overrideParenVariable.js] - -export const a = override; diff --git a/tests/baselines/reference/overrideParenVariable.symbols b/tests/baselines/reference/overrideParenVariable.symbols deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/baselines/reference/overrideParenVariable.types b/tests/baselines/reference/overrideParenVariable.types deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/cases/compiler/modifierParenCast.ts b/tests/cases/compiler/modifierParenCast.ts new file mode 100644 index 00000000000..c2b09f54b68 --- /dev/null +++ b/tests/cases/compiler/modifierParenCast.ts @@ -0,0 +1,11 @@ +//@target: ES5 + +let readonly: any = undefined; +let override: any = undefined; +let out: any = undefined; +let declare: any = undefined; + +export const a = (readonly as number); +export const b = (override as number); +export const c = (out as number); +export const d = (declare as number); \ No newline at end of file diff --git a/tests/cases/compiler/readonlyParenCast.ts b/tests/cases/compiler/readonlyParenCast.ts deleted file mode 100644 index b89372d3924..00000000000 --- a/tests/cases/compiler/readonlyParenCast.ts +++ /dev/null @@ -1,5 +0,0 @@ -//@target: ES5 - -let readonly: any; - -export const a = (readonly as number); \ No newline at end of file From e9d39bd95f3587bb2af058f50ce954d1c99ca416 Mon Sep 17 00:00:00 2001 From: David Souther Date: Mon, 9 May 2022 10:53:58 -0700 Subject: [PATCH 17/64] Remove spurious lookAhead, as this fn is already in a lookAhead --- src/compiler/parser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 35536bb2246..755c583b718 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4538,7 +4538,7 @@ namespace ts { // isn't actually allowed, but we want to treat it as a lambda so we can provide // a good error message. if (isModifierKind(second) && second !== SyntaxKind.AsyncKeyword && lookAhead(nextTokenIsIdentifier)) { - if (lookAhead(() => nextToken() === SyntaxKind.AsKeyword)) { + if (nextToken() === SyntaxKind.AsKeyword) { // https://github.com/microsoft/TypeScript/issues/44466 return Tristate.False; } From f84ec3e8b4c877eac27b216fa1192e38f3054022 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 9 May 2022 12:22:00 -0700 Subject: [PATCH 18/64] Fix type parameter comparability to consistently allow comparisons on unconstrained type parameters (#48861) * Fix type parameter comparability to consistently allow comparisons on unconstrained type parameters * Less elaboration, non-strict-mode fix --- src/compiler/checker.ts | 22 +- ...WithNoRelationshipTypeParameter.errors.txt | 338 +----------------- ...straintComparableWithCurlyCurly.errors.txt | 37 ++ ...ithNoConstraintComparableWithCurlyCurly.js | 57 +++ ...ConstraintComparableWithCurlyCurly.symbols | 72 ++++ ...NoConstraintComparableWithCurlyCurly.types | 74 ++++ .../reference/intersectionNarrowing.types | 4 +- .../reference/unknownType1.errors.txt | 6 - .../reference/variadicTuples2.errors.txt | 2 - ...ithNoConstraintComparableWithCurlyCurly.ts | 30 ++ 10 files changed, 291 insertions(+), 351 deletions(-) create mode 100644 tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.errors.txt create mode 100644 tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.js create mode 100644 tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.symbols create mode 100644 tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.types create mode 100644 tests/cases/compiler/genericWithNoConstraintComparableWithCurlyCurly.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6370dddf49f..931ca42486f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -19347,6 +19347,20 @@ namespace ts { } } } + if (relation === comparableRelation && sourceFlags & TypeFlags.TypeParameter) { + // This is a carve-out in comparability to essentially forbid comparing a type parameter + // with another type parameter unless one extends the other. (Remember: comparability is mostly bidirectional!) + let constraint = getConstraintOfTypeParameter(source); + if (constraint && hasNonCircularBaseConstraint(source)) { + while (constraint && constraint.flags & TypeFlags.TypeParameter) { + if (result = isRelatedTo(constraint, target, RecursionFlags.Source, /*reportErrors*/ false)) { + return result; + } + constraint = getConstraintOfTypeParameter(constraint); + } + } + return Ternary.False; + } } else if (targetFlags & TypeFlags.Index) { const targetType = (target as IndexType).type; @@ -19558,8 +19572,8 @@ namespace ts { if (sourceFlags & TypeFlags.TypeVariable) { // IndexedAccess comparisons are handled above in the `targetFlags & TypeFlage.IndexedAccess` branch if (!(sourceFlags & TypeFlags.IndexedAccess && targetFlags & TypeFlags.IndexedAccess)) { - const constraint = getConstraintOfType(source as TypeVariable); - if (!constraint || (sourceFlags & TypeFlags.TypeParameter && constraint.flags & TypeFlags.Any)) { + const constraint = getConstraintOfType(source as TypeVariable) || unknownType; + if (!getConstraintOfType(source as TypeVariable) || (sourceFlags & TypeFlags.TypeParameter && constraint.flags & TypeFlags.Any)) { // A type variable with no constraint is not related to the non-primitive object type. if (result = isRelatedTo(emptyObjectType, extractTypesOfKind(target, ~TypeFlags.NonPrimitive), RecursionFlags.Both)) { resetErrorInfo(saveErrorInfo); @@ -19567,12 +19581,12 @@ namespace ts { } } // hi-speed no-this-instantiation check (less accurate, but avoids costly `this`-instantiation when the constraint will suffice), see #28231 for report on why this is needed - else if (result = isRelatedTo(constraint, target, RecursionFlags.Source, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) { + if (result = isRelatedTo(constraint, target, RecursionFlags.Source, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) { resetErrorInfo(saveErrorInfo); return result; } // slower, fuller, this-instantiated check (necessary when comparing raw `this` types from base classes), see `subclassWithPolymorphicThisIsAssignable.ts` test for example - else if (result = isRelatedTo(getTypeWithThisArgument(constraint, source), target, RecursionFlags.Source, reportErrors && !(targetFlags & sourceFlags & TypeFlags.TypeParameter), /*headMessage*/ undefined, intersectionState)) { + else if (result = isRelatedTo(getTypeWithThisArgument(constraint, source), target, RecursionFlags.Source, reportErrors && constraint !== unknownType && !(targetFlags & sourceFlags & TypeFlags.TypeParameter), /*headMessage*/ undefined, intersectionState)) { resetErrorInfo(saveErrorInfo); return result; } diff --git a/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.errors.txt b/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.errors.txt index da497e03a22..0dea37109fa 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.errors.txt +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.errors.txt @@ -6,121 +6,9 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(17,14): error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap. tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(18,14): error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap. tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(19,14): error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(22,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(23,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(24,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(25,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(26,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(27,16): error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(28,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(30,16): error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(31,16): error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(32,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(33,16): error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(34,16): error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(35,16): error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(36,16): error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(39,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(40,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(41,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(42,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(43,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(44,16): error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(45,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(47,16): error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(48,16): error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(49,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(50,16): error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(51,16): error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(52,16): error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(53,16): error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(56,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(57,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(58,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(59,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(60,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(61,16): error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(62,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(64,16): error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(65,16): error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(66,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(67,16): error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(68,16): error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(69,16): error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(70,16): error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(73,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(74,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(75,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(76,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(77,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(78,16): error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(79,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(81,16): error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(82,16): error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(83,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(84,16): error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(85,16): error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(86,16): error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(87,16): error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(90,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(91,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(92,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(93,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(94,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(95,16): error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(96,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(98,16): error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(99,16): error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(100,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(101,16): error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(102,16): error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(103,16): error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(104,16): error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(107,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(108,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(109,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(110,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(111,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(112,16): error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(113,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(115,16): error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(116,16): error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(117,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(118,16): error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(119,16): error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(120,16): error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(121,16): error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(124,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(125,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(126,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(127,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(128,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(129,16): error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(130,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(132,16): error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(133,16): error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(134,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(135,16): error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(136,16): error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(137,16): error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(138,16): error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(141,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(142,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(143,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(144,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(145,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(146,16): error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(147,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(149,16): error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(150,16): error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(151,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(152,16): error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(153,16): error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(154,16): error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. -tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(155,16): error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. -==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts (120 errors) ==== +==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts (8 errors) ==== enum E { a, b, c } var a: boolean; @@ -159,361 +47,137 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso // operator < var r1a1 = t < a; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. var r1a2 = t < b; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. var r1a3 = t < c; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. var r1a4 = t < d; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. var r1a5 = t < e; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. var r1a6 = t < f; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. var r1a7 = t < g; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. var r1b1 = a < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. var r1b2 = b < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. var r1b3 = c < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. var r1b4 = d < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. var r1b5 = e < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. var r1b6 = f < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. var r1b7 = g < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. // operator > var r2a1 = t < a; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. var r2a2 = t < b; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. var r2a3 = t < c; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. var r2a4 = t < d; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. var r2a5 = t < e; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. var r2a6 = t < f; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. var r2a7 = t < g; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. var r2b1 = a < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. var r2b2 = b < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. var r2b3 = c < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. var r2b4 = d < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. var r2b5 = e < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. var r2b6 = f < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. var r2b7 = g < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. // operator <= var r3a1 = t < a; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. var r3a2 = t < b; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. var r3a3 = t < c; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. var r3a4 = t < d; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. var r3a5 = t < e; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. var r3a6 = t < f; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. var r3a7 = t < g; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. var r3b1 = a < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. var r3b2 = b < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. var r3b3 = c < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. var r3b4 = d < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. var r3b5 = e < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. var r3b6 = f < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. var r3b7 = g < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. // operator >= var r4a1 = t < a; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. var r4a2 = t < b; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. var r4a3 = t < c; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. var r4a4 = t < d; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. var r4a5 = t < e; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. var r4a6 = t < f; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. var r4a7 = t < g; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. var r4b1 = a < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. var r4b2 = b < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. var r4b3 = c < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. var r4b4 = d < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. var r4b5 = e < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. var r4b6 = f < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. var r4b7 = g < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. // operator == var r5a1 = t < a; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. var r5a2 = t < b; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. var r5a3 = t < c; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. var r5a4 = t < d; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. var r5a5 = t < e; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. var r5a6 = t < f; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. var r5a7 = t < g; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. var r5b1 = a < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. var r5b2 = b < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. var r5b3 = c < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. var r5b4 = d < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. var r5b5 = e < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. var r5b6 = f < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. var r5b7 = g < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. // operator != var r6a1 = t < a; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. var r6a2 = t < b; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. var r6a3 = t < c; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. var r6a4 = t < d; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. var r6a5 = t < e; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. var r6a6 = t < f; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. var r6a7 = t < g; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. var r6b1 = a < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. var r6b2 = b < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. var r6b3 = c < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. var r6b4 = d < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. var r6b5 = e < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. var r6b6 = f < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. var r6b7 = g < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. // operator === var r7a1 = t < a; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. var r7a2 = t < b; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. var r7a3 = t < c; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. var r7a4 = t < d; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. var r7a5 = t < e; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. var r7a6 = t < f; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. var r7a7 = t < g; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. var r7b1 = a < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. var r7b2 = b < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. var r7b3 = c < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. var r7b4 = d < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. var r7b5 = e < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. var r7b6 = f < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. var r7b7 = g < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. // operator !== var r8a1 = t < a; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. var r8a2 = t < b; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. var r8a3 = t < c; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. var r8a4 = t < d; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. var r8a5 = t < e; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. var r8a6 = t < f; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. var r8a7 = t < g; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. var r8b1 = a < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. var r8b2 = b < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. var r8b3 = c < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. var r8b4 = d < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. var r8b5 = e < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. var r8b6 = f < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. var r8b7 = g < t; - ~~~~~ -!!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.errors.txt b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.errors.txt new file mode 100644 index 00000000000..32ea0497ee9 --- /dev/null +++ b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.errors.txt @@ -0,0 +1,37 @@ +tests/cases/compiler/genericWithNoConstraintComparableWithCurlyCurly.ts(23,5): error TS2352: Conversion of type '{}' to type 'T' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. + 'T' could be instantiated with an arbitrary type which could be unrelated to '{}'. + + +==== tests/cases/compiler/genericWithNoConstraintComparableWithCurlyCurly.ts (1 errors) ==== + function foo() { + let x = {}; + x as T; + } + + function bar() { + let x = {}; + x as T; + } + + function baz() { + let x = {}; + x as T; + } + + function bat() { + let x = {}; + x as T; + } + + function no() { + let x = {}; + x as T; // should error + ~~~~~~ +!!! error TS2352: Conversion of type '{}' to type 'T' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +!!! error TS2352: 'T' could be instantiated with an arbitrary type which could be unrelated to '{}'. + } + + function yes() { + let x = {}; + x as T; + } \ No newline at end of file diff --git a/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.js b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.js new file mode 100644 index 00000000000..aec914a724c --- /dev/null +++ b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.js @@ -0,0 +1,57 @@ +//// [genericWithNoConstraintComparableWithCurlyCurly.ts] +function foo() { + let x = {}; + x as T; +} + +function bar() { + let x = {}; + x as T; +} + +function baz() { + let x = {}; + x as T; +} + +function bat() { + let x = {}; + x as T; +} + +function no() { + let x = {}; + x as T; // should error +} + +function yes() { + let x = {}; + x as T; +} + +//// [genericWithNoConstraintComparableWithCurlyCurly.js] +"use strict"; +function foo() { + var x = {}; + x; +} +function bar() { + var x = {}; + x; +} +function baz() { + var x = {}; + x; +} +function bat() { + var x = {}; + x; +} +function no() { + var x = {}; + x; // should error +} +function yes() { + var x = {}; + x; +} diff --git a/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.symbols b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.symbols new file mode 100644 index 00000000000..a0de33ed6ac --- /dev/null +++ b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.symbols @@ -0,0 +1,72 @@ +=== tests/cases/compiler/genericWithNoConstraintComparableWithCurlyCurly.ts === +function foo() { +>foo : Symbol(foo, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 0, 0)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 0, 13)) + + let x = {}; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 1, 7)) + + x as T; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 1, 7)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 0, 13)) +} + +function bar() { +>bar : Symbol(bar, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 3, 1)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 5, 13)) + + let x = {}; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 6, 7)) + + x as T; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 6, 7)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 5, 13)) +} + +function baz() { +>baz : Symbol(baz, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 8, 1)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 10, 13)) + + let x = {}; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 11, 7)) + + x as T; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 11, 7)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 10, 13)) +} + +function bat() { +>bat : Symbol(bat, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 13, 1)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 15, 13)) + + let x = {}; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 16, 7)) + + x as T; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 16, 7)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 15, 13)) +} + +function no() { +>no : Symbol(no, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 18, 1)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 20, 12)) + + let x = {}; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 21, 7)) + + x as T; // should error +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 21, 7)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 20, 12)) +} + +function yes() { +>yes : Symbol(yes, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 23, 1)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 25, 13)) + + let x = {}; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 26, 7)) + + x as T; +>x : Symbol(x, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 26, 7)) +>T : Symbol(T, Decl(genericWithNoConstraintComparableWithCurlyCurly.ts, 25, 13)) +} diff --git a/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.types b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.types new file mode 100644 index 00000000000..c996bbb9298 --- /dev/null +++ b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.types @@ -0,0 +1,74 @@ +=== tests/cases/compiler/genericWithNoConstraintComparableWithCurlyCurly.ts === +function foo() { +>foo : () => void + + let x = {}; +>x : {} +>{} : {} + + x as T; +>x as T : T +>x : {} +} + +function bar() { +>bar : () => void + + let x = {}; +>x : {} +>{} : {} + + x as T; +>x as T : T +>x : {} +} + +function baz() { +>baz : () => void + + let x = {}; +>x : {} +>{} : {} + + x as T; +>x as T : T +>x : {} +} + +function bat() { +>bat : () => void + + let x = {}; +>x : {} +>{} : {} + + x as T; +>x as T : T +>x : {} +} + +function no() { +>no : () => void +>null : null + + let x = {}; +>x : {} +>{} : {} + + x as T; // should error +>x as T : T +>x : {} +} + +function yes() { +>yes : () => void +>null : null + + let x = {}; +>x : {} +>{} : {} + + x as T; +>x as T : T +>x : {} +} diff --git a/tests/baselines/reference/intersectionNarrowing.types b/tests/baselines/reference/intersectionNarrowing.types index 049e6c976eb..7cf2c0dfda0 100644 --- a/tests/baselines/reference/intersectionNarrowing.types +++ b/tests/baselines/reference/intersectionNarrowing.types @@ -59,11 +59,11 @@ function f4(x: T & 1 | T & 2) { case 1: x; break; // T & 1 >1 : 1 ->x : T & 1 +>x : (T & 1) | (T & 2) case 2: x; break; // T & 2 >2 : 2 ->x : T & 2 +>x : (T & 1) | (T & 2) default: x; // Should narrow to never >x : never diff --git a/tests/baselines/reference/unknownType1.errors.txt b/tests/baselines/reference/unknownType1.errors.txt index 138fff847cc..342d0fbb706 100644 --- a/tests/baselines/reference/unknownType1.errors.txt +++ b/tests/baselines/reference/unknownType1.errors.txt @@ -16,7 +16,6 @@ tests/cases/conformance/types/unknown/unknownType1.ts(112,9): error TS2322: Type tests/cases/conformance/types/unknown/unknownType1.ts(113,9): error TS2322: Type 'unknown' is not assignable to type '{}'. tests/cases/conformance/types/unknown/unknownType1.ts(114,9): error TS2322: Type 'unknown' is not assignable to type '{} | null | undefined'. tests/cases/conformance/types/unknown/unknownType1.ts(120,9): error TS2322: Type 'T' is not assignable to type 'object'. - Type 'unknown' is not assignable to type 'object'. tests/cases/conformance/types/unknown/unknownType1.ts(128,5): error TS2322: Type 'number[]' is not assignable to type '{ [x: string]: unknown; }'. Index signature for type 'string' is missing in type 'number[]'. tests/cases/conformance/types/unknown/unknownType1.ts(129,5): error TS2322: Type 'number' is not assignable to type '{ [x: string]: unknown; }'. @@ -26,9 +25,7 @@ tests/cases/conformance/types/unknown/unknownType1.ts(150,17): error TS2355: A f tests/cases/conformance/types/unknown/unknownType1.ts(156,14): error TS2700: Rest types may only be created from object types. tests/cases/conformance/types/unknown/unknownType1.ts(162,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor. tests/cases/conformance/types/unknown/unknownType1.ts(171,9): error TS2322: Type 'U' is not assignable to type '{}'. - Type 'unknown' is not assignable to type '{}'. tests/cases/conformance/types/unknown/unknownType1.ts(181,5): error TS2322: Type 'T' is not assignable to type '{}'. - Type 'unknown' is not assignable to type '{}'. ==== tests/cases/conformance/types/unknown/unknownType1.ts (27 errors) ==== @@ -188,7 +185,6 @@ tests/cases/conformance/types/unknown/unknownType1.ts(181,5): error TS2322: Type let y: object = x; // Error ~ !!! error TS2322: Type 'T' is not assignable to type 'object'. -!!! error TS2322: Type 'unknown' is not assignable to type 'object'. } // Anything fresh but primitive assignable to { [x: string]: unknown } @@ -257,7 +253,6 @@ tests/cases/conformance/types/unknown/unknownType1.ts(181,5): error TS2322: Type let y: {} = u; ~ !!! error TS2322: Type 'U' is not assignable to type '{}'. -!!! error TS2322: Type 'unknown' is not assignable to type '{}'. } // Repro from #26796 @@ -270,6 +265,5 @@ tests/cases/conformance/types/unknown/unknownType1.ts(181,5): error TS2322: Type return arg; // Error ~~~~~~~~~~~ !!! error TS2322: Type 'T' is not assignable to type '{}'. -!!! error TS2322: Type 'unknown' is not assignable to type '{}'. } \ No newline at end of file diff --git a/tests/baselines/reference/variadicTuples2.errors.txt b/tests/baselines/reference/variadicTuples2.errors.txt index 2947b3e1d57..dc7bcb061ee 100644 --- a/tests/baselines/reference/variadicTuples2.errors.txt +++ b/tests/baselines/reference/variadicTuples2.errors.txt @@ -44,7 +44,6 @@ tests/cases/conformance/types/tuple/variadicTuples2.ts(73,5): error TS2322: Type tests/cases/conformance/types/tuple/variadicTuples2.ts(74,5): error TS2322: Type '[number, ...T]' is not assignable to type '[number, ...number[]]'. Type at position 1 in source is not compatible with type at position 1 in target. Type 'T[number]' is not assignable to type 'number'. - Type 'unknown' is not assignable to type 'number'. tests/cases/conformance/types/tuple/variadicTuples2.ts(107,16): error TS2345: Argument of type '[1, 2, 3, 4]' is not assignable to parameter of type '[...number[], (...values: number[]) => void]'. Type at position 3 in source is not compatible with type at position 1 in target. Type 'number' is not assignable to type '(...values: number[]) => void'. @@ -206,7 +205,6 @@ tests/cases/conformance/types/tuple/variadicTuples2.ts(130,25): error TS2345: Ar !!! error TS2322: Type '[number, ...T]' is not assignable to type '[number, ...number[]]'. !!! error TS2322: Type at position 1 in source is not compatible with type at position 1 in target. !!! error TS2322: Type 'T[number]' is not assignable to type 'number'. -!!! error TS2322: Type 'unknown' is not assignable to type 'number'. } // Inference diff --git a/tests/cases/compiler/genericWithNoConstraintComparableWithCurlyCurly.ts b/tests/cases/compiler/genericWithNoConstraintComparableWithCurlyCurly.ts new file mode 100644 index 00000000000..45976d074c1 --- /dev/null +++ b/tests/cases/compiler/genericWithNoConstraintComparableWithCurlyCurly.ts @@ -0,0 +1,30 @@ +// @strict: true +function foo() { + let x = {}; + x as T; +} + +function bar() { + let x = {}; + x as T; +} + +function baz() { + let x = {}; + x as T; +} + +function bat() { + let x = {}; + x as T; +} + +function no() { + let x = {}; + x as T; // should error +} + +function yes() { + let x = {}; + x as T; +} \ No newline at end of file From f3f0a3f394c7ce702ee23d4396e23b03b68e3fe3 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Mon, 9 May 2022 12:48:24 -0700 Subject: [PATCH 19/64] Fix module specifier generation crash from typesVersions (#49035) --- src/compiler/moduleSpecifiers.ts | 1 + .../importNameCodeFix_typesVersions.ts | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 tests/cases/fourslash/importNameCodeFix_typesVersions.ts diff --git a/src/compiler/moduleSpecifiers.ts b/src/compiler/moduleSpecifiers.ts index ed8d9f90b0a..44d20c9ff59 100644 --- a/src/compiler/moduleSpecifiers.ts +++ b/src/compiler/moduleSpecifiers.ts @@ -810,6 +810,7 @@ namespace ts.moduleSpecifiers { function removeExtensionAndIndexPostFix(fileName: string, ending: Ending, options: CompilerOptions, host?: ModuleSpecifierResolutionHost): string { if (fileExtensionIsOneOf(fileName, [Extension.Json, Extension.Mjs, Extension.Cjs])) return fileName; const noExtension = removeFileExtension(fileName); + if (fileName === noExtension) return fileName; if (fileExtensionIsOneOf(fileName, [Extension.Dmts, Extension.Mts, Extension.Dcts, Extension.Cts])) return noExtension + getJSExtensionForFile(fileName, options); switch (ending) { case Ending.Minimal: diff --git a/tests/cases/fourslash/importNameCodeFix_typesVersions.ts b/tests/cases/fourslash/importNameCodeFix_typesVersions.ts new file mode 100644 index 00000000000..9f69e3eb44f --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_typesVersions.ts @@ -0,0 +1,34 @@ +/// + +// @module: commonjs +// @checkJs: true + +// @Filename: /node_modules/unified/package.json +//// { +//// "name": "unified", +//// "types": "types/ts3.4/index.d.ts", +//// "typesVersions": { +//// ">=4.0": { +//// "types/ts3.4/*": [ +//// "types/ts4.0/*" +//// ] +//// } +//// } +//// } + +// @Filename: /node_modules/unified/types/ts3.4/index.d.ts +//// export declare const x: number; + +// @Filename: /node_modules/unified/types/ts4.0/index.d.ts +//// export declare const x: number; + +// @Filename: /foo.js +//// import {} from "unified"; + +// @Filename: /index.js +//// x/**/ + +verify.importFixModuleSpecifiers("", [ + "unified", + "unified/types/ts3.4/", // TODO: this is wrong #49034 +], { importModuleSpecifierEnding: "js" }); From e2bd89b3099088be3a4a4c483195809f04853b62 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Mon, 9 May 2022 13:58:36 -0700 Subject: [PATCH 20/64] Report error for invalid 'this' type during 'await' (#48946) --- src/compiler/checker.ts | 37 ++++++++++-- .../await_incorrectThisType.errors.txt | 57 +++++++++++++++++++ .../async/es2017/await_incorrectThisType.ts | 48 ++++++++++++++++ 3 files changed, 138 insertions(+), 4 deletions(-) create mode 100644 tests/baselines/reference/await_incorrectThisType.errors.txt create mode 100644 tests/cases/conformance/async/es2017/await_incorrectThisType.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 931ca42486f..f49cfb36189 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -36270,7 +36270,7 @@ namespace ts { * @param type The type of the promise. * @remarks The "promised type" of a type is the type of the "value" parameter of the "onfulfilled" callback. */ - function getPromisedTypeOfPromise(type: Type, errorNode?: Node): Type | undefined { + function getPromisedTypeOfPromise(type: Type, errorNode?: Node, thisTypeForErrorOut?: { value?: Type }): Type | undefined { // // { // type // then( // thenFunction @@ -36312,7 +36312,30 @@ namespace ts { return undefined; } - const onfulfilledParameterType = getTypeWithFacts(getUnionType(map(thenSignatures, getTypeOfFirstParameterOfSignature)), TypeFacts.NEUndefinedOrNull); + let thisTypeForError: Type | undefined; + let candidates: Signature[] | undefined; + for (const thenSignature of thenSignatures) { + const thisType = getThisTypeOfSignature(thenSignature); + if (thisType && thisType !== voidType && !isTypeRelatedTo(type, thisType, subtypeRelation)) { + thisTypeForError = thisType; + } + else { + candidates = append(candidates, thenSignature); + } + } + + if (!candidates) { + Debug.assertIsDefined(thisTypeForError); + if (thisTypeForErrorOut) { + thisTypeForErrorOut.value = thisTypeForError; + } + if (errorNode) { + error(errorNode, Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, typeToString(type), typeToString(thisTypeForError)); + } + return undefined; + } + + const onfulfilledParameterType = getTypeWithFacts(getUnionType(map(candidates, getTypeOfFirstParameterOfSignature)), TypeFacts.NEUndefinedOrNull); if (isTypeAny(onfulfilledParameterType)) { return undefined; } @@ -36459,7 +36482,8 @@ namespace ts { return typeAsAwaitable.awaitedTypeOfType = mapType(type, mapper); } - const promisedType = getPromisedTypeOfPromise(type); + const thisTypeForErrorOut: { value: Type | undefined } = { value: undefined }; + const promisedType = getPromisedTypeOfPromise(type, /*errorNode*/ undefined, thisTypeForErrorOut); if (promisedType) { if (type.id === promisedType.id || awaitedTypeStack.lastIndexOf(promisedType.id) >= 0) { // Verify that we don't have a bad actor in the form of a promise whose @@ -36532,7 +36556,12 @@ namespace ts { if (isThenableType(type)) { if (errorNode) { Debug.assertIsDefined(diagnosticMessage); - error(errorNode, diagnosticMessage, arg0); + let chain: DiagnosticMessageChain | undefined; + if (thisTypeForErrorOut.value) { + chain = chainDiagnosticMessages(chain, Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, typeToString(type), typeToString(thisTypeForErrorOut.value)); + } + chain = chainDiagnosticMessages(chain, diagnosticMessage, arg0); + diagnostics.add(createDiagnosticForNodeFromMessageChain(errorNode, chain)); } return undefined; } diff --git a/tests/baselines/reference/await_incorrectThisType.errors.txt b/tests/baselines/reference/await_incorrectThisType.errors.txt new file mode 100644 index 00000000000..eea59d55e6a --- /dev/null +++ b/tests/baselines/reference/await_incorrectThisType.errors.txt @@ -0,0 +1,57 @@ +tests/cases/conformance/async/es2017/await_incorrectThisType.ts(40,1): error TS2684: The 'this' context of type 'EPromise' is not assignable to method's 'this' of type 'EPromise'. + Type 'number' is not assignable to type 'never'. +tests/cases/conformance/async/es2017/await_incorrectThisType.ts(43,5): error TS1320: Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member. + The 'this' context of type 'EPromise' is not assignable to method's 'this' of type 'EPromise'. + + +==== tests/cases/conformance/async/es2017/await_incorrectThisType.ts (2 errors) ==== + // https://github.com/microsoft/TypeScript/issues/47711 + type Either = Left | Right; + type Left = { tag: 'Left', e: E }; + type Right = { tag: 'Right', a: A }; + + const mkLeft = (e: E): Either => ({ tag: 'Left', e }); + const mkRight = (a: A): Either => ({ tag: 'Right', a }); + + class EPromise implements PromiseLike { + static succeed(a: A): EPromise { + return new EPromise(Promise.resolve(mkRight(a))); + } + + static fail(e: E): EPromise { + return new EPromise(Promise.resolve(mkLeft(e))); + } + + constructor(readonly p: PromiseLike>) { } + + then( + // EPromise can act as a Thenable only when `E` is `never`. + this: EPromise, + onfulfilled?: ((value: A) => B | PromiseLike) | null | undefined, + onrejected?: ((reason: any) => B1 | PromiseLike) | null | undefined + ): PromiseLike { + return this.p.then( + // Casting to `Right` is safe here because we've eliminated the possibility of `Left`. + either => onfulfilled?.((either as Right).a) ?? (either as Right).a as unknown as B, + onrejected + ) + } + } + + const withTypedFailure: EPromise = EPromise.fail(1); + + // Errors as expected: + // + // "The 'this' context of type 'EPromise' is not assignable to method's + // 'this' of type 'EPromise" + withTypedFailure.then(s => s.toUpperCase()).then(console.log); + ~~~~~~~~~~~~~~~~ +!!! error TS2684: The 'this' context of type 'EPromise' is not assignable to method's 'this' of type 'EPromise'. +!!! error TS2684: Type 'number' is not assignable to type 'never'. + + async function test() { + await withTypedFailure; + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1320: Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member. +!!! error TS1320: The 'this' context of type 'EPromise' is not assignable to method's 'this' of type 'EPromise'. + } \ No newline at end of file diff --git a/tests/cases/conformance/async/es2017/await_incorrectThisType.ts b/tests/cases/conformance/async/es2017/await_incorrectThisType.ts new file mode 100644 index 00000000000..7672591dd92 --- /dev/null +++ b/tests/cases/conformance/async/es2017/await_incorrectThisType.ts @@ -0,0 +1,48 @@ +// @target: esnext +// @noEmit: true +// @noTypesAndSymbols: true + +// https://github.com/microsoft/TypeScript/issues/47711 +type Either = Left | Right; +type Left = { tag: 'Left', e: E }; +type Right = { tag: 'Right', a: A }; + +const mkLeft = (e: E): Either => ({ tag: 'Left', e }); +const mkRight = (a: A): Either => ({ tag: 'Right', a }); + +class EPromise implements PromiseLike { + static succeed(a: A): EPromise { + return new EPromise(Promise.resolve(mkRight(a))); + } + + static fail(e: E): EPromise { + return new EPromise(Promise.resolve(mkLeft(e))); + } + + constructor(readonly p: PromiseLike>) { } + + then( + // EPromise can act as a Thenable only when `E` is `never`. + this: EPromise, + onfulfilled?: ((value: A) => B | PromiseLike) | null | undefined, + onrejected?: ((reason: any) => B1 | PromiseLike) | null | undefined + ): PromiseLike { + return this.p.then( + // Casting to `Right` is safe here because we've eliminated the possibility of `Left`. + either => onfulfilled?.((either as Right).a) ?? (either as Right).a as unknown as B, + onrejected + ) + } +} + +const withTypedFailure: EPromise = EPromise.fail(1); + +// Errors as expected: +// +// "The 'this' context of type 'EPromise' is not assignable to method's +// 'this' of type 'EPromise" +withTypedFailure.then(s => s.toUpperCase()).then(console.log); + +async function test() { + await withTypedFailure; +} \ No newline at end of file From d6e483b8dabd8fd37c00954c3f2184bb7f1eb90c Mon Sep 17 00:00:00 2001 From: James <5511220+Zamiell@users.noreply.github.com> Date: Mon, 9 May 2022 17:25:05 -0400 Subject: [PATCH 21/64] fix(48887) exposing rest helper functions externally (#48888) * fix(48887) exposing rest helper functions externally * fixing baseline + adding hint about how to fix baseline * Update src/harness/harnessIO.ts Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> --- src/compiler/utilities.ts | 10 ---------- src/compiler/utilitiesPublic.ts | 11 +++++++++++ src/harness/harnessIO.ts | 9 +++++++-- tests/baselines/reference/api/tsserverlibrary.d.ts | 2 ++ tests/baselines/reference/api/typescript.d.ts | 2 ++ 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 6036f516bb0..a554f1f54d0 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -2866,16 +2866,6 @@ namespace ts { return typeParameters && find(typeParameters, p => p.name.escapedText === name); } - export function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean { - const last = lastOrUndefined(s.parameters); - return !!last && isRestParameter(last); - } - - export function isRestParameter(node: ParameterDeclaration | JSDocParameterTag): boolean { - const type = isJSDocParameterTag(node) ? (node.typeExpression && node.typeExpression.type) : node.type; - return (node as ParameterDeclaration).dotDotDotToken !== undefined || !!type && type.kind === SyntaxKind.JSDocVariadicType; - } - export function hasTypeArguments(node: Node): node is HasTypeArguments { return !!(node as HasTypeArguments).typeArguments; } diff --git a/src/compiler/utilitiesPublic.ts b/src/compiler/utilitiesPublic.ts index ecfb4e52daf..2f4ed3b14cc 100644 --- a/src/compiler/utilitiesPublic.ts +++ b/src/compiler/utilitiesPublic.ts @@ -2015,5 +2015,16 @@ namespace ts { export function isJSDocLinkLike(node: Node): node is JSDocLink | JSDocLinkCode | JSDocLinkPlain { return node.kind === SyntaxKind.JSDocLink || node.kind === SyntaxKind.JSDocLinkCode || node.kind === SyntaxKind.JSDocLinkPlain; } + + export function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean { + const last = lastOrUndefined(s.parameters); + return !!last && isRestParameter(last); + } + + export function isRestParameter(node: ParameterDeclaration | JSDocParameterTag): boolean { + const type = isJSDocParameterTag(node) ? (node.typeExpression && node.typeExpression.type) : node.type; + return (node as ParameterDeclaration).dotDotDotToken !== undefined || !!type && type.kind === SyntaxKind.JSDocVariadicType; + } + // #endregion } diff --git a/src/harness/harnessIO.ts b/src/harness/harnessIO.ts index 558aca6bfd3..2786498d41e 100644 --- a/src/harness/harnessIO.ts +++ b/src/harness/harnessIO.ts @@ -1389,22 +1389,27 @@ namespace Harness { else { IO.writeFile(actualFileName, encodedActual); } + const errorMessage = getBaselineFileChangedErrorMessage(relativeFileName); if (!!require && opts && opts.PrintDiff) { const Diff = require("diff"); const patch = Diff.createTwoFilesPatch("Expected", "Actual", expected, actual, "The current baseline", "The new version"); - throw new Error(`The baseline file ${relativeFileName} has changed.${ts.ForegroundColorEscapeSequences.Grey}\n\n${patch}`); + throw new Error(`${errorMessage}${ts.ForegroundColorEscapeSequences.Grey}\n\n${patch}`); } else { if (!IO.fileExists(expected)) { throw new Error(`New baseline created at ${IO.joinPath("tests", "baselines","local", relativeFileName)}`); } else { - throw new Error(`The baseline file ${relativeFileName} has changed.`); + throw new Error(errorMessage); } } } } + function getBaselineFileChangedErrorMessage(relativeFileName: string): string { + return `The baseline file ${relativeFileName} has changed. (Run "gulp baseline-accept" if the new baseline is correct.)`; + } + export function runBaseline(relativeFileName: string, actual: string | null, opts?: BaselineOptions): void { const actualFileName = localPath(relativeFileName, opts && opts.Baselinefolder, opts && opts.Subfolder); if (actual === undefined) { diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index 9f6634bcfa3..260e74c4f32 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -4510,6 +4510,8 @@ declare namespace ts { function isObjectLiteralElement(node: Node): node is ObjectLiteralElement; function isStringLiteralLike(node: Node): node is StringLiteralLike; function isJSDocLinkLike(node: Node): node is JSDocLink | JSDocLinkCode | JSDocLinkPlain; + function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean; + function isRestParameter(node: ParameterDeclaration | JSDocParameterTag): boolean; } declare namespace ts { const factory: NodeFactory; diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index 2219a924d47..a1bde2444e7 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -4510,6 +4510,8 @@ declare namespace ts { function isObjectLiteralElement(node: Node): node is ObjectLiteralElement; function isStringLiteralLike(node: Node): node is StringLiteralLike; function isJSDocLinkLike(node: Node): node is JSDocLink | JSDocLinkCode | JSDocLinkPlain; + function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean; + function isRestParameter(node: ParameterDeclaration | JSDocParameterTag): boolean; } declare namespace ts { const factory: NodeFactory; From aa48a37e0924e2aa970f62321705e5fe80fb6e46 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Tue, 10 May 2022 00:56:56 +0300 Subject: [PATCH 22/64] fix(48673): allow Find All References on access modifier for constructor (#48813) --- src/services/utilities.ts | 2 + ...nstructorFindAllReferences1.baseline.jsonc | 63 ++++++++++++++++++ ...nstructorFindAllReferences2.baseline.jsonc | 63 ++++++++++++++++++ ...nstructorFindAllReferences3.baseline.jsonc | 65 +++++++++++++++++++ ...nstructorFindAllReferences4.baseline.jsonc | 63 ++++++++++++++++++ .../constructorFindAllReferences1.ts | 10 +++ .../constructorFindAllReferences2.ts | 10 +++ .../constructorFindAllReferences3.ts | 10 +++ .../constructorFindAllReferences4.ts | 10 +++ 9 files changed, 296 insertions(+) create mode 100644 tests/baselines/reference/constructorFindAllReferences1.baseline.jsonc create mode 100644 tests/baselines/reference/constructorFindAllReferences2.baseline.jsonc create mode 100644 tests/baselines/reference/constructorFindAllReferences3.baseline.jsonc create mode 100644 tests/baselines/reference/constructorFindAllReferences4.baseline.jsonc create mode 100644 tests/cases/fourslash/constructorFindAllReferences1.ts create mode 100644 tests/cases/fourslash/constructorFindAllReferences2.ts create mode 100644 tests/cases/fourslash/constructorFindAllReferences3.ts create mode 100644 tests/cases/fourslash/constructorFindAllReferences4.ts diff --git a/src/services/utilities.ts b/src/services/utilities.ts index 18f85ceb264..60aa2c7d194 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -806,6 +806,8 @@ namespace ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.FunctionExpression: return getAdjustedLocationForFunction(node as FunctionDeclaration | FunctionExpression); + case SyntaxKind.Constructor: + return node; } } if (isNamedDeclaration(node)) { diff --git a/tests/baselines/reference/constructorFindAllReferences1.baseline.jsonc b/tests/baselines/reference/constructorFindAllReferences1.baseline.jsonc new file mode 100644 index 00000000000..e7bebca38f5 --- /dev/null +++ b/tests/baselines/reference/constructorFindAllReferences1.baseline.jsonc @@ -0,0 +1,63 @@ +// === /tests/cases/fourslash/constructorFindAllReferences1.ts === +// export class C { +// /*FIND ALL REFS*/public [|constructor|]() { } +// public foo() { } +// } +// +// new [|C|]().foo(); + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/tests/cases/fourslash/constructorFindAllReferences1.ts", + "kind": "class", + "name": "class C", + "textSpan": { + "start": 13, + "length": 1 + }, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } + ], + "contextSpan": { + "start": 0, + "length": 68 + } + }, + "references": [ + { + "textSpan": { + "start": 28, + "length": 11 + }, + "fileName": "/tests/cases/fourslash/constructorFindAllReferences1.ts", + "contextSpan": { + "start": 21, + "length": 24 + }, + "isWriteAccess": false + }, + { + "textSpan": { + "start": 74, + "length": 1 + }, + "fileName": "/tests/cases/fourslash/constructorFindAllReferences1.ts", + "isWriteAccess": false + } + ] + } +] \ No newline at end of file diff --git a/tests/baselines/reference/constructorFindAllReferences2.baseline.jsonc b/tests/baselines/reference/constructorFindAllReferences2.baseline.jsonc new file mode 100644 index 00000000000..3555381950d --- /dev/null +++ b/tests/baselines/reference/constructorFindAllReferences2.baseline.jsonc @@ -0,0 +1,63 @@ +// === /tests/cases/fourslash/constructorFindAllReferences2.ts === +// export class C { +// /*FIND ALL REFS*/private [|constructor|]() { } +// public foo() { } +// } +// +// new [|C|]().foo(); + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/tests/cases/fourslash/constructorFindAllReferences2.ts", + "kind": "class", + "name": "class C", + "textSpan": { + "start": 13, + "length": 1 + }, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } + ], + "contextSpan": { + "start": 0, + "length": 69 + } + }, + "references": [ + { + "textSpan": { + "start": 29, + "length": 11 + }, + "fileName": "/tests/cases/fourslash/constructorFindAllReferences2.ts", + "contextSpan": { + "start": 21, + "length": 25 + }, + "isWriteAccess": false + }, + { + "textSpan": { + "start": 75, + "length": 1 + }, + "fileName": "/tests/cases/fourslash/constructorFindAllReferences2.ts", + "isWriteAccess": false + } + ] + } +] \ No newline at end of file diff --git a/tests/baselines/reference/constructorFindAllReferences3.baseline.jsonc b/tests/baselines/reference/constructorFindAllReferences3.baseline.jsonc new file mode 100644 index 00000000000..79a200e253d --- /dev/null +++ b/tests/baselines/reference/constructorFindAllReferences3.baseline.jsonc @@ -0,0 +1,65 @@ +// === /tests/cases/fourslash/constructorFindAllReferences3.ts === +// export class C { +// /*FIND ALL REFS*/[|constructor|]() { } +// public foo() { } +// } +// +// new [|C|]().foo(); + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/tests/cases/fourslash/constructorFindAllReferences3.ts", + "kind": "class", + "name": "class C", + "textSpan": { + "start": 13, + "length": 1 + }, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } + ], + "contextSpan": { + "start": 0, + "length": 61 + } + }, + "references": [ + { + "textSpan": { + "start": 21, + "length": 11 + }, + "fileName": "/tests/cases/fourslash/constructorFindAllReferences3.ts", + "contextSpan": { + "start": 21, + "length": 17 + }, + "isWriteAccess": false, + "isDefinition": true + }, + { + "textSpan": { + "start": 67, + "length": 1 + }, + "fileName": "/tests/cases/fourslash/constructorFindAllReferences3.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] \ No newline at end of file diff --git a/tests/baselines/reference/constructorFindAllReferences4.baseline.jsonc b/tests/baselines/reference/constructorFindAllReferences4.baseline.jsonc new file mode 100644 index 00000000000..1d899ba5e84 --- /dev/null +++ b/tests/baselines/reference/constructorFindAllReferences4.baseline.jsonc @@ -0,0 +1,63 @@ +// === /tests/cases/fourslash/constructorFindAllReferences4.ts === +// export class C { +// /*FIND ALL REFS*/protected [|constructor|]() { } +// public foo() { } +// } +// +// new [|C|]().foo(); + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/tests/cases/fourslash/constructorFindAllReferences4.ts", + "kind": "class", + "name": "class C", + "textSpan": { + "start": 13, + "length": 1 + }, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } + ], + "contextSpan": { + "start": 0, + "length": 71 + } + }, + "references": [ + { + "textSpan": { + "start": 31, + "length": 11 + }, + "fileName": "/tests/cases/fourslash/constructorFindAllReferences4.ts", + "contextSpan": { + "start": 21, + "length": 27 + }, + "isWriteAccess": false + }, + { + "textSpan": { + "start": 77, + "length": 1 + }, + "fileName": "/tests/cases/fourslash/constructorFindAllReferences4.ts", + "isWriteAccess": false + } + ] + } +] \ No newline at end of file diff --git a/tests/cases/fourslash/constructorFindAllReferences1.ts b/tests/cases/fourslash/constructorFindAllReferences1.ts new file mode 100644 index 00000000000..23ede06bdce --- /dev/null +++ b/tests/cases/fourslash/constructorFindAllReferences1.ts @@ -0,0 +1,10 @@ +/// + +////export class C { +//// /**/public constructor() { } +//// public foo() { } +////} +//// +////new C().foo(); + +verify.baselineFindAllReferences(""); diff --git a/tests/cases/fourslash/constructorFindAllReferences2.ts b/tests/cases/fourslash/constructorFindAllReferences2.ts new file mode 100644 index 00000000000..26b61da9096 --- /dev/null +++ b/tests/cases/fourslash/constructorFindAllReferences2.ts @@ -0,0 +1,10 @@ +/// + +////export class C { +//// /**/private constructor() { } +//// public foo() { } +////} +//// +////new C().foo(); + +verify.baselineFindAllReferences(""); diff --git a/tests/cases/fourslash/constructorFindAllReferences3.ts b/tests/cases/fourslash/constructorFindAllReferences3.ts new file mode 100644 index 00000000000..1888a3c85b9 --- /dev/null +++ b/tests/cases/fourslash/constructorFindAllReferences3.ts @@ -0,0 +1,10 @@ +/// + +////export class C { +//// /**/constructor() { } +//// public foo() { } +////} +//// +////new C().foo(); + +verify.baselineFindAllReferences(""); diff --git a/tests/cases/fourslash/constructorFindAllReferences4.ts b/tests/cases/fourslash/constructorFindAllReferences4.ts new file mode 100644 index 00000000000..8170f330e53 --- /dev/null +++ b/tests/cases/fourslash/constructorFindAllReferences4.ts @@ -0,0 +1,10 @@ +/// + +////export class C { +//// /**/protected constructor() { } +//// public foo() { } +////} +//// +////new C().foo(); + +verify.baselineFindAllReferences(""); From c1c3ebcadf46e48fa7110539ea1ce47da5c8e6db Mon Sep 17 00:00:00 2001 From: "ryohei.udagawa" <63101140+Uda-Titor@users.noreply.github.com> Date: Tue, 10 May 2022 07:24:24 +0900 Subject: [PATCH 23/64] fix: fractionalSecondDigits configure (#49014) --- src/lib/es2021.intl.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/es2021.intl.d.ts b/src/lib/es2021.intl.d.ts index e303d8dd34f..a13626aad04 100644 --- a/src/lib/es2021.intl.d.ts +++ b/src/lib/es2021.intl.d.ts @@ -19,7 +19,7 @@ declare namespace Intl { timeStyle?: "full" | "long" | "medium" | "short"; hourCycle?: "h11" | "h12" | "h23" | "h24"; dayPeriod?: "narrow" | "short" | "long"; - fractionalSecondDigits?: 0 | 1 | 2 | 3; + fractionalSecondDigits?: 1 | 2 | 3; } /** From 69214c0e56f36d05d64808ab7acb41f7b65cd802 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Tue, 10 May 2022 01:52:15 +0300 Subject: [PATCH 24/64] fix(49001): handle missing imports in addMissingMember QF (#49009) --- src/services/codefixes/fixAddMissingMember.ts | 15 ++++++---- .../codeFixAddMissingProperties21.ts | 29 +++++++++++++++++++ 2 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 tests/cases/fourslash/codeFixAddMissingProperties21.ts diff --git a/src/services/codefixes/fixAddMissingMember.ts b/src/services/codefixes/fixAddMissingMember.ts index d7606830ea1..61db4d43014 100644 --- a/src/services/codefixes/fixAddMissingMember.ts +++ b/src/services/codefixes/fixAddMissingMember.ts @@ -459,6 +459,7 @@ namespace ts.codefix { const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host); const functionDeclaration = createSignatureDeclarationFromCallExpression(SyntaxKind.FunctionDeclaration, context, importAdder, info.call, idText(info.token), info.modifierFlags, info.parentDeclaration) as FunctionDeclaration; changes.insertNodeAtEndOfScope(info.sourceFile, info.parentDeclaration, functionDeclaration); + importAdder.writeFixes(changes); } function addJsxAttributes(changes: textChanges.ChangeTracker, context: CodeFixContextBase, info: JsxAttributesInfo) { @@ -468,7 +469,7 @@ namespace ts.codefix { const jsxAttributesNode = info.parentDeclaration.attributes; const hasSpreadAttribute = some(jsxAttributesNode.properties, isJsxSpreadAttribute); const attrs = map(info.attributes, attr => { - const value = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(attr)); + const value = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(attr), info.parentDeclaration); const name = factory.createIdentifier(attr.name); const jsxAttribute = factory.createJsxAttribute(name, factory.createJsxExpression(/*dotDotDotToken*/ undefined, value)); // formattingScanner requires the Identifier to have a context for scanning attributes with "-" (data-foo). @@ -478,6 +479,7 @@ namespace ts.codefix { const jsxAttributes = factory.createJsxAttributes(hasSpreadAttribute ? [...attrs, ...jsxAttributesNode.properties] : [...jsxAttributesNode.properties, ...attrs]); const options = { prefix: jsxAttributesNode.pos === jsxAttributesNode.end ? " " : undefined }; changes.replaceNode(context.sourceFile, jsxAttributesNode, jsxAttributes, options); + importAdder.writeFixes(changes); } function addObjectLiteralProperties(changes: textChanges.ChangeTracker, context: CodeFixContextBase, info: ObjectLiteralInfo) { @@ -486,7 +488,7 @@ namespace ts.codefix { const target = getEmitScriptTarget(context.program.getCompilerOptions()); const checker = context.program.getTypeChecker(); const props = map(info.properties, prop => { - const initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop)); + const initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop), info.parentDeclaration); return factory.createPropertyAssignment(createPropertyNameNodeForIdentifierOrLiteral(prop.name, target, quotePreference === QuotePreference.Single), initializer); }); const options = { @@ -495,9 +497,10 @@ namespace ts.codefix { indentation: info.indentation }; changes.replaceNode(context.sourceFile, info.parentDeclaration, factory.createObjectLiteralExpression([...info.parentDeclaration.properties, ...props], /*multiLine*/ true), options); + importAdder.writeFixes(changes); } - function tryGetValueFromType(context: CodeFixContextBase, checker: TypeChecker, importAdder: ImportAdder, quotePreference: QuotePreference, type: Type): Expression { + function tryGetValueFromType(context: CodeFixContextBase, checker: TypeChecker, importAdder: ImportAdder, quotePreference: QuotePreference, type: Type, enclosingDeclaration: Node | undefined): Expression { if (type.flags & TypeFlags.AnyOrUnknown) { return createUndefined(); } @@ -534,7 +537,7 @@ namespace ts.codefix { return factory.createNull(); } if (type.flags & TypeFlags.Union) { - const expression = firstDefined((type as UnionType).types, t => tryGetValueFromType(context, checker, importAdder, quotePreference, t)); + const expression = firstDefined((type as UnionType).types, t => tryGetValueFromType(context, checker, importAdder, quotePreference, t, enclosingDeclaration)); return expression ?? createUndefined(); } if (checker.isArrayLikeType(type)) { @@ -542,7 +545,7 @@ namespace ts.codefix { } if (isObjectLiteralType(type)) { const props = map(checker.getPropertiesOfType(type), prop => { - const initializer = prop.valueDeclaration ? tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeAtLocation(prop.valueDeclaration)) : createUndefined(); + const initializer = prop.valueDeclaration ? tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeAtLocation(prop.valueDeclaration), enclosingDeclaration) : createUndefined(); return factory.createPropertyAssignment(prop.name, initializer); }); return factory.createObjectLiteralExpression(props, /*multiLine*/ true); @@ -555,7 +558,7 @@ namespace ts.codefix { if (signature === undefined) return createUndefined(); const func = createSignatureDeclarationFromSignature(SyntaxKind.FunctionExpression, context, quotePreference, signature[0], - createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference), /*name*/ undefined, /*modifiers*/ undefined, /*optional*/ undefined, /*enclosingDeclaration*/ undefined, importAdder) as FunctionExpression | undefined; + createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference), /*name*/ undefined, /*modifiers*/ undefined, /*optional*/ undefined, /*enclosingDeclaration*/ enclosingDeclaration, importAdder) as FunctionExpression | undefined; return func ?? createUndefined(); } if (getObjectFlags(type) & ObjectFlags.Class) { diff --git a/tests/cases/fourslash/codeFixAddMissingProperties21.ts b/tests/cases/fourslash/codeFixAddMissingProperties21.ts new file mode 100644 index 00000000000..d4a904208e7 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingProperties21.ts @@ -0,0 +1,29 @@ +/// + +// @filename: /a.ts +////export type A = { x: string }; + +// @filename: /b.ts +////import { A } from "./a"; +////export type Foo = { x: string }; +////export interface B { +//// b(a: A): Foo; +////} + +// @filename: /c.ts +////import { B } from "./b"; +////const b: B = {}; + +goTo.file("/c.ts"); +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_properties.message, + newFileContent: +`import { A } from "./a"; +import { B, Foo } from "./b"; +const b: B = { + b: function(a: A): Foo { + throw new Error("Function not implemented."); + } +};`, +}); From 604e5fca55333857d08eba105cfca97f98b53b6b Mon Sep 17 00:00:00 2001 From: Zzzen Date: Tue, 10 May 2022 06:57:27 +0800 Subject: [PATCH 25/64] Add JSDoc's @inheritDoc Support for Static Class Members for TypeScript (#46719) * Add JSDoc's @inheritDoc Support for Static Class Members for TypeScript * use public api * fix * add tests * simplify implementation * extract comments from inherticDoc --- src/services/jsDoc.ts | 8 +- src/services/services.ts | 10 +- .../reference/quickInfoInheritDoc.baseline | 418 ++++++++++++++++++ .../reference/quickInfoInheritDoc2.baseline | 96 ++++ .../reference/quickInfoInheritDoc3.baseline | 84 ++++ tests/cases/fourslash/jsDocInheritDoc.ts | 2 +- tests/cases/fourslash/quickInfoInheritDoc.ts | 65 +++ tests/cases/fourslash/quickInfoInheritDoc2.ts | 22 + tests/cases/fourslash/quickInfoInheritDoc3.ts | 23 + 9 files changed, 721 insertions(+), 7 deletions(-) create mode 100644 tests/baselines/reference/quickInfoInheritDoc.baseline create mode 100644 tests/baselines/reference/quickInfoInheritDoc2.baseline create mode 100644 tests/baselines/reference/quickInfoInheritDoc3.baseline create mode 100644 tests/cases/fourslash/quickInfoInheritDoc.ts create mode 100644 tests/cases/fourslash/quickInfoInheritDoc2.ts create mode 100644 tests/cases/fourslash/quickInfoInheritDoc3.ts diff --git a/src/services/jsDoc.ts b/src/services/jsDoc.ts index ca6b9cc047d..e85246e9eb5 100644 --- a/src/services/jsDoc.ts +++ b/src/services/jsDoc.ts @@ -93,11 +93,12 @@ namespace ts.JsDoc { const parts: SymbolDisplayPart[][] = []; forEachUnique(declarations, declaration => { for (const jsdoc of getCommentHavingNodes(declaration)) { + const inheritDoc = isJSDoc(jsdoc) && jsdoc.tags && find(jsdoc.tags, t => t.kind === SyntaxKind.JSDocTag && (t.tagName.escapedText === "inheritDoc" || t.tagName.escapedText === "inheritdoc")); // skip comments containing @typedefs since they're not associated with particular declarations // Exceptions: // - @typedefs are themselves declarations with associated comments // - @param or @return indicate that the author thinks of it as a 'local' @typedef that's part of the function documentation - if (jsdoc.comment === undefined + if (jsdoc.comment === undefined && !inheritDoc || isJSDoc(jsdoc) && declaration.kind !== SyntaxKind.JSDocTypedefTag && declaration.kind !== SyntaxKind.JSDocCallbackTag && jsdoc.tags @@ -105,7 +106,10 @@ namespace ts.JsDoc { && !jsdoc.tags.some(t => t.kind === SyntaxKind.JSDocParameterTag || t.kind === SyntaxKind.JSDocReturnTag)) { continue; } - const newparts = getDisplayPartsFromComment(jsdoc.comment, checker); + let newparts = jsdoc.comment ? getDisplayPartsFromComment(jsdoc.comment, checker) : []; + if (inheritDoc && inheritDoc.comment) { + newparts = newparts.concat(getDisplayPartsFromComment(inheritDoc.comment, checker)); + } if (!contains(parts, newparts, isIdenticalListOfDisplayParts)) { parts.push(newparts); } diff --git a/src/services/services.ts b/src/services/services.ts index ac731115beb..afb6a108691 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -592,7 +592,7 @@ namespace ts { * @returns `true` if `node` has a JSDoc "inheritDoc" tag on it, otherwise `false`. */ function hasJSDocInheritDocTag(node: Node) { - return getJSDocTags(node).some(tag => tag.tagName.text === "inheritDoc"); + return getJSDocTags(node).some(tag => tag.tagName.text === "inheritDoc" || tag.tagName.text === "inheritdoc"); } function getJsDocTagsOfDeclarations(declarations: Declaration[] | undefined, checker: TypeChecker | undefined): JSDocTagInfo[] { @@ -643,13 +643,15 @@ namespace ts { } function findBaseOfDeclaration(checker: TypeChecker, declaration: Declaration, cb: (symbol: Symbol) => T[] | undefined): T[] | undefined { - if (hasStaticModifier(declaration)) return; - const classOrInterfaceDeclaration = declaration.parent?.kind === SyntaxKind.Constructor ? declaration.parent.parent : declaration.parent; if (!classOrInterfaceDeclaration) return; + const isStaticMember = hasStaticModifier(declaration); return firstDefined(getAllSuperTypeNodes(classOrInterfaceDeclaration), superTypeNode => { - const symbol = checker.getPropertyOfType(checker.getTypeAtLocation(superTypeNode), declaration.symbol.name); + const baseType = checker.getTypeAtLocation(superTypeNode); + const symbol = isStaticMember + ? find(checker.getExportsOfModule(baseType.symbol), s => s.escapedName === declaration.symbol.name) + : checker.getPropertyOfType(baseType, declaration.symbol.name); return symbol ? cb(symbol) : undefined; }); } diff --git a/tests/baselines/reference/quickInfoInheritDoc.baseline b/tests/baselines/reference/quickInfoInheritDoc.baseline new file mode 100644 index 00000000000..29cc8e3544d --- /dev/null +++ b/tests/baselines/reference/quickInfoInheritDoc.baseline @@ -0,0 +1,418 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoInheritDoc.ts", + "position": 817, + "name": "1" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "public,static", + "textSpan": { + "start": 817, + "length": 17 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doSomethingUseful", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "mySpecificStuff", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "tiger", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "lion", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Useful description always applicable", + "kind": "text" + } + ], + "tags": [ + { + "name": "returns", + "text": [ + { + "text": "Useful description of return value always applicable.", + "kind": "text" + } + ] + }, + { + "name": "inheritDoc" + }, + { + "name": "param", + "text": [ + { + "text": "mySpecificStuff", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Description of my specific parameter.", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoInheritDoc.ts", + "position": 1143, + "name": "2" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "public,static", + "textSpan": { + "start": 1143, + "length": 5 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "func1", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "stuff1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "BaseClass.func1", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "stuff1", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "BaseClass.func1.stuff1", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "BaseClass.func1.returns", + "kind": "text" + } + ] + }, + { + "name": "inheritDoc" + }, + { + "name": "param", + "text": [ + { + "text": "stuff1", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubClass.func1.stuff1", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "SubClass.func1.returns", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoInheritDoc.ts", + "position": 1282, + "name": "3" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "public,static", + "textSpan": { + "start": 1282, + "length": 12 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "someProperty", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Applicable description always.", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "text over tag", + "kind": "text" + }, + { + "text": "text after tag", + "kind": "text" + } + ], + "tags": [ + { + "name": "inheritDoc", + "text": [ + { + "text": "text after tag", + "kind": "text" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoInheritDoc2.baseline b/tests/baselines/reference/quickInfoInheritDoc2.baseline new file mode 100644 index 00000000000..40dc3368efd --- /dev/null +++ b/tests/baselines/reference/quickInfoInheritDoc2.baseline @@ -0,0 +1,96 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoInheritDoc2.ts", + "position": 173, + "name": "1" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 173, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubClass", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + } + ], + "documentation": [ + { + "text": "Base.prop", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "SubClass.prop", + "kind": "text" + } + ], + "tags": [ + { + "name": "inheritdoc", + "text": [ + { + "text": "SubClass.prop", + "kind": "text" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoInheritDoc3.baseline b/tests/baselines/reference/quickInfoInheritDoc3.baseline new file mode 100644 index 00000000000..5729c6c1ccf --- /dev/null +++ b/tests/baselines/reference/quickInfoInheritDoc3.baseline @@ -0,0 +1,84 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoInheritDoc3.ts", + "position": 237, + "name": "1" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 237, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Base.prop", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "SubClass.prop", + "kind": "text" + } + ], + "tags": [ + { + "name": "inheritdoc", + "text": [ + { + "text": "SubClass.prop", + "kind": "text" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/cases/fourslash/jsDocInheritDoc.ts b/tests/cases/fourslash/jsDocInheritDoc.ts index 7ef822ce653..08da10537c8 100644 --- a/tests/cases/fourslash/jsDocInheritDoc.ts +++ b/tests/cases/fourslash/jsDocInheritDoc.ts @@ -58,7 +58,7 @@ verify.quickInfoAt("1", "constructor Bar(value: number): Bar", undefined); // constructors aren't actually inherited verify.quickInfoAt("2", "(method) Bar.method2(): void", "Foo#method2 documentation"); // use inherited docs only -verify.quickInfoAt("3", "(method) Bar.method1(): void", undefined); // statics aren't actually inherited +verify.quickInfoAt("3", "(method) Bar.method1(): void", 'Foo#method1 documentation'); // use inherited docs too verify.quickInfoAt("4", "(property) Bar.property1: string", "Foo#property1 documentation"); // use inherited docs only verify.quickInfoAt("5", "(property) Bar.property2: object", "Baz#property2 documentation\nBar#property2"); // include local and inherited docs verify.quickInfoAt("6", "(property) Bar.property3: string", undefined); diff --git a/tests/cases/fourslash/quickInfoInheritDoc.ts b/tests/cases/fourslash/quickInfoInheritDoc.ts new file mode 100644 index 00000000000..a08f60e98ab --- /dev/null +++ b/tests/cases/fourslash/quickInfoInheritDoc.ts @@ -0,0 +1,65 @@ +/// + +// @noEmit: true +// @allowJs: true + +// @Filename: quickInfoInheritDoc.ts +////abstract class BaseClass { +//// /** +//// * Useful description always applicable +//// * +//// * @returns {string} Useful description of return value always applicable. +//// */ +//// public static doSomethingUseful(stuff?: any): string { +//// throw new Error('Must be implemented by subclass'); +//// } +//// +//// /** +//// * BaseClass.func1 +//// * @param {any} stuff1 BaseClass.func1.stuff1 +//// * @returns {void} BaseClass.func1.returns +//// */ +//// public static func1(stuff1: any): void { +//// } +//// +//// /** +//// * Applicable description always. +//// */ +//// public static readonly someProperty: string = 'general value'; +////} +//// +//// +//// +//// +////class SubClass extends BaseClass { +//// +//// /** +//// * @inheritDoc +//// * +//// * @param {{ tiger: string; lion: string; }} [mySpecificStuff] Description of my specific parameter. +//// */ +//// public static /*1*/doSomethingUseful(mySpecificStuff?: { tiger: string; lion: string; }): string { +//// let useful = ''; +//// +//// // do something useful to useful +//// +//// return useful; +//// } +//// +//// /** +//// * @inheritDoc +//// * @param {any} stuff1 SubClass.func1.stuff1 +//// * @returns {void} SubClass.func1.returns +//// */ +//// public static /*2*/func1(stuff1: any): void { +//// } +//// +//// /** +//// * text over tag +//// * @inheritDoc +//// * text after tag +//// */ +//// public static readonly /*3*/someProperty: string = 'specific to this class value' +////} + +verify.baselineQuickInfo(); \ No newline at end of file diff --git a/tests/cases/fourslash/quickInfoInheritDoc2.ts b/tests/cases/fourslash/quickInfoInheritDoc2.ts new file mode 100644 index 00000000000..8410c4dddf4 --- /dev/null +++ b/tests/cases/fourslash/quickInfoInheritDoc2.ts @@ -0,0 +1,22 @@ +/// + +// @noEmit: true +// @allowJs: true + +// @Filename: quickInfoInheritDoc2.ts +////class Base { +//// /** +//// * Base.prop +//// */ +//// prop: T | undefined; +////} +//// +////class SubClass extends Base { +//// /** +//// * @inheritdoc +//// * SubClass.prop +//// */ +//// /*1*/prop: T | undefined; +////} + +verify.baselineQuickInfo(); \ No newline at end of file diff --git a/tests/cases/fourslash/quickInfoInheritDoc3.ts b/tests/cases/fourslash/quickInfoInheritDoc3.ts new file mode 100644 index 00000000000..82ebe5399db --- /dev/null +++ b/tests/cases/fourslash/quickInfoInheritDoc3.ts @@ -0,0 +1,23 @@ +/// + +// @noEmit: true +// @allowJs: true + +// @Filename: quickInfoInheritDoc3.ts +////function getBaseClass() { +//// return class Base { +//// /** +//// * Base.prop +//// */ +//// prop: string | undefined; +//// } +////} +////class SubClass extends getBaseClass() { +//// /** +//// * @inheritdoc +//// * SubClass.prop +//// */ +//// /*1*/prop: string | undefined; +////} + +verify.baselineQuickInfo(); \ No newline at end of file From 17431eab46d5df168fe541a290842e2cd26bd534 Mon Sep 17 00:00:00 2001 From: Devon Govett Date: Mon, 9 May 2022 18:57:42 -0400 Subject: [PATCH 26/64] Add missing source property to Intl formatRangeToParts methods (#48754) --- src/lib/es2021.intl.d.ts | 6 +++++- src/lib/esnext.intl.d.ts | 6 +++++- .../reference/DateTimeFormatAndNumberFormatES2021.types | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/lib/es2021.intl.d.ts b/src/lib/es2021.intl.d.ts index a13626aad04..5da7dbddc0e 100644 --- a/src/lib/es2021.intl.d.ts +++ b/src/lib/es2021.intl.d.ts @@ -8,9 +8,13 @@ declare namespace Intl { fractionalSecondDigits?: 0 | 1 | 2 | 3 | undefined; } + interface DateTimeRangeFormatPart extends DateTimeFormatPart { + source: "startRange" | "endRange" | "shared" + } + interface DateTimeFormat { formatRange(startDate: Date | number | bigint, endDate: Date | number | bigint): string; - formatRangeToParts(startDate: Date | number | bigint, endDate: Date | number | bigint): DateTimeFormatPart[]; + formatRangeToParts(startDate: Date | number | bigint, endDate: Date | number | bigint): DateTimeRangeFormatPart[]; } interface ResolvedDateTimeFormatOptions { diff --git a/src/lib/esnext.intl.d.ts b/src/lib/esnext.intl.d.ts index a8baa0e4cc6..3c5a0bd4df9 100644 --- a/src/lib/esnext.intl.d.ts +++ b/src/lib/esnext.intl.d.ts @@ -1,6 +1,10 @@ declare namespace Intl { + interface NumberRangeFormatPart extends NumberFormatPart { + source: "startRange" | "endRange" | "shared" + } + interface NumberFormat { formatRange(start: number | bigint, end: number | bigint): string; - formatRangeToParts(start: number | bigint, end: number | bigint): NumberFormatPart[]; + formatRangeToParts(start: number | bigint, end: number | bigint): NumberRangeFormatPart[]; } } diff --git a/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.types b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.types index 98f06e294c4..4c3c8e654ec 100644 --- a/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.types +++ b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.types @@ -42,10 +42,10 @@ new Intl.DateTimeFormat().formatRange >formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string new Intl.DateTimeFormat().formatRangeToParts ->new Intl.DateTimeFormat().formatRangeToParts : (startDate: number | bigint | Date, endDate: number | bigint | Date) => Intl.DateTimeFormatPart[] +>new Intl.DateTimeFormat().formatRangeToParts : (startDate: number | bigint | Date, endDate: number | bigint | Date) => Intl.DateTimeRangeFormatPart[] >new Intl.DateTimeFormat() : Intl.DateTimeFormat >Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } >Intl : typeof Intl >DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } ->formatRangeToParts : (startDate: number | bigint | Date, endDate: number | bigint | Date) => Intl.DateTimeFormatPart[] +>formatRangeToParts : (startDate: number | bigint | Date, endDate: number | bigint | Date) => Intl.DateTimeRangeFormatPart[] From 9236e39374c0ec9a1e3f9894af4fb9eb34ba0021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 10 May 2022 01:03:48 +0200 Subject: [PATCH 27/64] Fixed an issue with contextual type for intersection properties (#48668) * Add a failing test case for contextual type not provided for functions comming from a property with intersection type * Fixed an issue with contextual type for intersection properties * Fixed how type of a property of a contextual type is being computed when intersections with indexers are used --- src/compiler/checker.ts | 34 +++++++- ...lTypeFunctionObjectPropertyIntersection.js | 42 ++++++++++ ...FunctionObjectPropertyIntersection.symbols | 82 +++++++++++++++++++ ...peFunctionObjectPropertyIntersection.types | 73 +++++++++++++++++ ...lTypeFunctionObjectPropertyIntersection.ts | 29 +++++++ 5 files changed, 256 insertions(+), 4 deletions(-) create mode 100644 tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.js create mode 100644 tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.symbols create mode 100644 tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.types create mode 100644 tests/cases/compiler/contextualTypeFunctionObjectPropertyIntersection.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f49cfb36189..025eeecc306 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -26819,7 +26819,27 @@ namespace ts { } function getTypeOfPropertyOfContextualType(type: Type, name: __String, nameType?: Type) { - return mapType(type, t => { + return mapType(type, (t): Type | undefined => { + if (t.flags & TypeFlags.Intersection) { + const intersection = t as IntersectionType; + let newTypes = mapDefined(intersection.types, getTypeOfConcretePropertyOfContextualType); + if (newTypes.length > 0) { + return getIntersectionType(newTypes); + } + newTypes = mapDefined(intersection.types, getTypeOfApplicableIndexInfoOfContextualType); + if (newTypes.length > 0) { + return getIntersectionType(newTypes); + } + return undefined; + } + const concretePropertyType = getTypeOfConcretePropertyOfContextualType(t); + if (concretePropertyType) { + return concretePropertyType; + } + return getTypeOfApplicableIndexInfoOfContextualType(t); + }, /*noReductions*/ true); + + function getTypeOfConcretePropertyOfContextualType(t: Type) { if (isGenericMappedType(t) && !t.declaration.nameType) { const constraint = getConstraintTypeFromMappedType(t); const constraintOfConstraint = getBaseConstraintOfType(constraint) || constraint; @@ -26827,8 +26847,9 @@ namespace ts { if (isTypeAssignableTo(propertyNameType, constraintOfConstraint)) { return substituteIndexedMappedType(t, propertyNameType); } + return undefined; } - else if (t.flags & TypeFlags.StructuredType) { + if (t.flags & TypeFlags.StructuredType) { const prop = getPropertyOfType(t, name); if (prop) { return isCircularMappedProperty(prop) ? undefined : getTypeOfSymbol(prop); @@ -26839,10 +26860,15 @@ namespace ts { return restType; } } - return findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType || getStringLiteralType(unescapeLeadingUnderscores(name)))?.type; } return undefined; - }, /*noReductions*/ true); + } + function getTypeOfApplicableIndexInfoOfContextualType(t: Type) { + if (!(t.flags & TypeFlags.StructuredType)) { + return undefined; + } + return findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType || getStringLiteralType(unescapeLeadingUnderscores(name)))?.type; + } } // In an object literal contextually typed by a type T, the contextual type of a property assignment is the type of diff --git a/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.js b/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.js new file mode 100644 index 00000000000..65213deade4 --- /dev/null +++ b/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.js @@ -0,0 +1,42 @@ +//// [contextualTypeFunctionObjectPropertyIntersection.ts] +type Action = (ev: TEvent) => void; + +interface MachineConfig { + schema: { + events: TEvent; + }; + on?: { + [K in TEvent["type"]]?: Action; + } & { + "*"?: Action; + }; +} + +declare function createMachine( + config: MachineConfig +): void; + +createMachine({ + schema: { + events: {} as { type: "FOO" } | { type: "BAR" }, + }, + on: { + FOO: (ev) => { + ev.type; // should be 'FOO' + }, + }, +}); + + +//// [contextualTypeFunctionObjectPropertyIntersection.js] +"use strict"; +createMachine({ + schema: { + events: {} + }, + on: { + FOO: function (ev) { + ev.type; // should be 'FOO' + } + } +}); diff --git a/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.symbols b/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.symbols new file mode 100644 index 00000000000..4690985350a --- /dev/null +++ b/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.symbols @@ -0,0 +1,82 @@ +=== tests/cases/compiler/contextualTypeFunctionObjectPropertyIntersection.ts === +type Action = (ev: TEvent) => void; +>Action : Symbol(Action, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 0)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 12)) +>type : Symbol(type, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 28)) +>ev : Symbol(ev, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 48)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 12)) + +interface MachineConfig { +>MachineConfig : Symbol(MachineConfig, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 68)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 2, 24)) +>type : Symbol(type, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 2, 40)) + + schema: { +>schema : Symbol(MachineConfig.schema, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 2, 58)) + + events: TEvent; +>events : Symbol(events, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 3, 11)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 2, 24)) + + }; + on?: { +>on : Symbol(MachineConfig.on, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 5, 4)) + + [K in TEvent["type"]]?: Action; +>K : Symbol(K, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 7, 5)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 2, 24)) +>Action : Symbol(Action, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 0)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 2, 24)) +>type : Symbol(type, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 7, 51)) +>K : Symbol(K, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 7, 5)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 2, 24)) + + } & { + "*"?: Action; +>"*" : Symbol("*", Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 8, 7)) +>Action : Symbol(Action, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 0)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 2, 24)) + + }; +} + +declare function createMachine( +>createMachine : Symbol(createMachine, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 11, 1)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 13, 31)) +>type : Symbol(type, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 13, 47)) + + config: MachineConfig +>config : Symbol(config, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 13, 64)) +>MachineConfig : Symbol(MachineConfig, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 0, 68)) +>TEvent : Symbol(TEvent, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 13, 31)) + +): void; + +createMachine({ +>createMachine : Symbol(createMachine, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 11, 1)) + + schema: { +>schema : Symbol(schema, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 17, 15)) + + events: {} as { type: "FOO" } | { type: "BAR" }, +>events : Symbol(events, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 18, 11)) +>type : Symbol(type, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 19, 19)) +>type : Symbol(type, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 19, 37)) + + }, + on: { +>on : Symbol(on, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 20, 4)) + + FOO: (ev) => { +>FOO : Symbol(FOO, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 21, 7)) +>ev : Symbol(ev, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 22, 10)) + + ev.type; // should be 'FOO' +>ev.type : Symbol(type, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 19, 19)) +>ev : Symbol(ev, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 22, 10)) +>type : Symbol(type, Decl(contextualTypeFunctionObjectPropertyIntersection.ts, 19, 19)) + + }, + }, +}); + diff --git a/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.types b/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.types new file mode 100644 index 00000000000..30ba52626fa --- /dev/null +++ b/tests/baselines/reference/contextualTypeFunctionObjectPropertyIntersection.types @@ -0,0 +1,73 @@ +=== tests/cases/compiler/contextualTypeFunctionObjectPropertyIntersection.ts === +type Action = (ev: TEvent) => void; +>Action : Action +>type : string +>ev : TEvent + +interface MachineConfig { +>type : string + + schema: { +>schema : { events: TEvent; } + + events: TEvent; +>events : TEvent + + }; + on?: { +>on : ({ [K in TEvent["type"]]?: Action | undefined; } & { "*"?: Action | undefined; }) | undefined + + [K in TEvent["type"]]?: Action; +>type : K + + } & { + "*"?: Action; +>"*" : Action | undefined + + }; +} + +declare function createMachine( +>createMachine : (config: MachineConfig) => void +>type : string + + config: MachineConfig +>config : MachineConfig + +): void; + +createMachine({ +>createMachine({ schema: { events: {} as { type: "FOO" } | { type: "BAR" }, }, on: { FOO: (ev) => { ev.type; // should be 'FOO' }, },}) : void +>createMachine : (config: MachineConfig) => void +>{ schema: { events: {} as { type: "FOO" } | { type: "BAR" }, }, on: { FOO: (ev) => { ev.type; // should be 'FOO' }, },} : { schema: { events: { type: "FOO"; } | { type: "BAR"; }; }; on: { FOO: (ev: { type: "FOO"; }) => void; }; } + + schema: { +>schema : { events: { type: "FOO"; } | { type: "BAR"; }; } +>{ events: {} as { type: "FOO" } | { type: "BAR" }, } : { events: { type: "FOO"; } | { type: "BAR"; }; } + + events: {} as { type: "FOO" } | { type: "BAR" }, +>events : { type: "FOO"; } | { type: "BAR"; } +>{} as { type: "FOO" } | { type: "BAR" } : { type: "FOO"; } | { type: "BAR"; } +>{} : {} +>type : "FOO" +>type : "BAR" + + }, + on: { +>on : { FOO: (ev: { type: "FOO"; }) => void; } +>{ FOO: (ev) => { ev.type; // should be 'FOO' }, } : { FOO: (ev: { type: "FOO"; }) => void; } + + FOO: (ev) => { +>FOO : (ev: { type: "FOO"; }) => void +>(ev) => { ev.type; // should be 'FOO' } : (ev: { type: "FOO"; }) => void +>ev : { type: "FOO"; } + + ev.type; // should be 'FOO' +>ev.type : "FOO" +>ev : { type: "FOO"; } +>type : "FOO" + + }, + }, +}); + diff --git a/tests/cases/compiler/contextualTypeFunctionObjectPropertyIntersection.ts b/tests/cases/compiler/contextualTypeFunctionObjectPropertyIntersection.ts new file mode 100644 index 00000000000..2d7e00f32f6 --- /dev/null +++ b/tests/cases/compiler/contextualTypeFunctionObjectPropertyIntersection.ts @@ -0,0 +1,29 @@ +// @strict: true + +type Action = (ev: TEvent) => void; + +interface MachineConfig { + schema: { + events: TEvent; + }; + on?: { + [K in TEvent["type"]]?: Action; + } & { + "*"?: Action; + }; +} + +declare function createMachine( + config: MachineConfig +): void; + +createMachine({ + schema: { + events: {} as { type: "FOO" } | { type: "BAR" }, + }, + on: { + FOO: (ev) => { + ev.type; // should be 'FOO' + }, + }, +}); From 0cd551d56a0cc7ce12a5f6a463e2577708cffd53 Mon Sep 17 00:00:00 2001 From: csigs Date: Tue, 10 May 2022 03:58:37 -0700 Subject: [PATCH 28/64] LEGO: Merge pull request 49044 LEGO: Merge pull request 49044 --- .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ 9 files changed, 81 insertions(+) diff --git a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl index 5013f028ff7..50cd9671cba 100644 --- a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11124,6 +11124,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl index f2b25f7483c..88b3dc55306 100644 --- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11109,6 +11109,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 3973855a8b6..e7aea94a458 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11127,6 +11127,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl index 5ae6ecab644..71ae5fca880 100644 --- a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11115,6 +11115,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl index b701d37e533..fec7669b1c9 100644 --- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11115,6 +11115,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl index e79a598527d..f9dd5a79e33 100644 --- a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11115,6 +11115,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl index b73b15ba1df..1d46dd5e3e2 100644 --- a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11102,6 +11102,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl index 0f1fbede4a8..509bab6694e 100644 --- a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11105,6 +11105,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl index 03aaabf8e3d..f57dcf78f02 100644 --- a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11114,6 +11114,15 @@ + + + + + + + + + From fcd80db0c61719559e212c95bbe5163f9dceb506 Mon Sep 17 00:00:00 2001 From: mstssk Date: Wed, 11 May 2022 01:22:50 +0900 Subject: [PATCH 29/64] fix(48912): fractionalSecondDigits is 1, 2 or 3. (#49042) --- src/lib/es2021.intl.d.ts | 2 +- tests/lib/lib.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/es2021.intl.d.ts b/src/lib/es2021.intl.d.ts index 5da7dbddc0e..2424dc404a1 100644 --- a/src/lib/es2021.intl.d.ts +++ b/src/lib/es2021.intl.d.ts @@ -5,7 +5,7 @@ declare namespace Intl { dateStyle?: "full" | "long" | "medium" | "short" | undefined; timeStyle?: "full" | "long" | "medium" | "short" | undefined; dayPeriod?: "narrow" | "short" | "long" | undefined; - fractionalSecondDigits?: 0 | 1 | 2 | 3 | undefined; + fractionalSecondDigits?: 1 | 2 | 3 | undefined; } interface DateTimeRangeFormatPart extends DateTimeFormatPart { diff --git a/tests/lib/lib.d.ts b/tests/lib/lib.d.ts index 7f5cbf72e72..f1a04e4f8f2 100644 --- a/tests/lib/lib.d.ts +++ b/tests/lib/lib.d.ts @@ -3956,7 +3956,7 @@ declare module Intl { hour?: "numeric" | "2-digit"; minute?: "numeric" | "2-digit"; second?: "numeric" | "2-digit"; - fractionalSecondDigits?: 0 | 1 | 2 | 3; + fractionalSecondDigits?: 1 | 2 | 3; timeZoneName?: "long" | "short"; } From 6ee549075bdd4a9af31c93768387638e53d01d53 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 10 May 2022 10:34:03 -0700 Subject: [PATCH 30/64] Identify when file name is matched by default include spec (#49040) Fixes #43679 --- src/compiler/commandLineParser.ts | 10 +++++++-- src/compiler/diagnosticMessages.json | 4 ++++ src/compiler/program.ts | 2 +- src/compiler/types.ts | 1 + src/compiler/watch.ts | 12 +++++++--- ...olutionWithExtensions_withPaths.errors.txt | 8 +++---- .../tsbuild/outfile-concat/explainFiles.js | 4 ++-- ...iles-belong-to-rootDir-and-is-composite.js | 6 ++--- ...ied-but-not-all-files-belong-to-rootDir.js | 6 ++--- .../reference/tsbuild/sample1/explainFiles.js | 22 +++++++++---------- ...rough-indirect-symlink-moduleCaseChange.js | 4 ++-- ...ibling-package-through-indirect-symlink.js | 4 ++-- ...ther-symlinked-package-moduleCaseChange.js | 4 ++-- ...age-with-indirect-link-moduleCaseChange.js | 2 +- ...er-symlinked-package-with-indirect-link.js | 2 +- ...gh-source-and-another-symlinked-package.js | 4 ++-- ...n-Windows-style-drive-root-is-lowercase.js | 8 +++---- ...n-Windows-style-drive-root-is-uppercase.js | 8 +++---- ...ry-symlink-target-and-import-match-disk.js | 8 +++---- ...le-symlink-target-and-import-match-disk.js | 12 +++++----- ...nging-module-name-with-different-casing.js | 2 +- ...target-matches-disk-but-import-does-not.js | 8 +++---- ...target-matches-disk-but-import-does-not.js | 12 +++++----- ...link-target,-and-disk-are-all-different.js | 8 +++---- ...link-target,-and-disk-are-all-different.js | 12 +++++----- ...link-target-agree-but-do-not-match-disk.js | 12 +++++----- ...link-target-agree-but-do-not-match-disk.js | 16 +++++++------- ...k-but-directory-symlink-target-does-not.js | 12 +++++----- ...s-disk-but-file-symlink-target-does-not.js | 16 +++++++------- ...ative-information-file-location-changes.js | 20 ++++++++--------- ...hen-renaming-file-with-different-casing.js | 2 +- ...ImportSource-option-changed-incremental.js | 4 ++-- .../jsxImportSource-option-changed-watch.js | 4 ++-- .../handle-recreated-files-correctly.js | 14 ++++++------ ...orceConsistentCasingInFileNames-changes.js | 2 +- ...hronous-watch-directory-renaming-a-file.js | 2 +- ...nging-module-name-with-different-casing.js | 6 ++--- ...hen-renaming-file-with-different-casing.js | 4 ++-- ...ate-symbols-when-searching-all-projects.js | 4 ++-- .../navTo/should-de-duplicate-symbols.js | 4 ++-- ...-generated-when-the-config-file-changes.js | 2 +- ...when-the-config-file-doesnt-have-errors.js | 2 +- ...nerated-when-the-config-file-has-errors.js | 2 +- ...rs-but-suppressDiagnosticEvents-is-true.js | 2 +- ...project-structure-and-reports-no-errors.js | 8 +++---- ...-when-timeout-occurs-after-installation.js | 4 ++-- ...n-timeout-occurs-inbetween-installation.js | 4 ++-- ...-global-error-gerErr-with-sync-commands.js | 2 +- ...or-returns-includes-global-error-getErr.js | 2 +- ...-includes-global-error-geterrForProject.js | 2 +- ...large-file-size-is-determined-correctly.js | 2 +- ...t-is-not-open-gerErr-with-sync-commands.js | 2 +- ...n-dependency-project-is-not-open-getErr.js | 2 +- ...cy-project-is-not-open-geterrForProject.js | 2 +- ...-file-is-open-gerErr-with-sync-commands.js | 4 ++-- ...-when-the-depedency-file-is-open-getErr.js | 4 ++-- ...depedency-file-is-open-geterrForProject.js | 4 ++-- ...t-is-not-open-gerErr-with-sync-commands.js | 2 +- ...n-dependency-project-is-not-open-getErr.js | 2 +- ...cy-project-is-not-open-geterrForProject.js | 2 +- ...-file-is-open-gerErr-with-sync-commands.js | 4 ++-- ...-when-the-depedency-file-is-open-getErr.js | 4 ++-- ...depedency-file-is-open-geterrForProject.js | 4 ++-- ...disableSourceOfProjectReferenceRedirect.js | 4 ++-- ...port-with-referenced-project-when-built.js | 4 ++-- .../auto-import-with-referenced-project.js | 4 ++-- ...-are-disabled-and-a-decl-map-is-missing.js | 6 ++--- ...-are-disabled-and-a-decl-map-is-present.js | 6 ++--- ...s-are-enabled-and-a-decl-map-is-missing.js | 6 ++--- ...s-are-enabled-and-a-decl-map-is-present.js | 6 ++--- ...-are-disabled-and-a-decl-map-is-missing.js | 6 ++--- ...-are-disabled-and-a-decl-map-is-present.js | 6 ++--- ...s-are-enabled-and-a-decl-map-is-missing.js | 6 ++--- ...s-are-enabled-and-a-decl-map-is-present.js | 6 ++--- ...-are-disabled-and-a-decl-map-is-missing.js | 2 +- ...-are-disabled-and-a-decl-map-is-present.js | 2 +- ...s-are-enabled-and-a-decl-map-is-missing.js | 2 +- ...s-are-enabled-and-a-decl-map-is-present.js | 2 +- ...-are-disabled-and-a-decl-map-is-missing.js | 2 +- ...-are-disabled-and-a-decl-map-is-present.js | 6 ++--- ...s-are-enabled-and-a-decl-map-is-missing.js | 6 ++--- ...s-are-enabled-and-a-decl-map-is-present.js | 6 ++--- ...disableSourceOfProjectReferenceRedirect.js | 8 +++---- ...ect-when-referenced-project-is-not-open.js | 4 ++-- ...disableSourceOfProjectReferenceRedirect.js | 14 ++++++------ ...project-when-referenced-project-is-open.js | 10 ++++----- ...ject-is-directly-referenced-by-solution.js | 2 +- ...ct-is-indirectly-referenced-by-solution.js | 2 +- ...ces-open-file-through-project-reference.js | 2 +- ...ct-is-indirectly-referenced-by-solution.js | 2 +- ...cts-are-open-and-one-project-references.js | 16 +++++++------- ...getting-project-from-orphan-script-info.js | 2 +- ...directory-watch-invoke-on-file-creation.js | 16 +++++++------- ...tore-the-states-for-configured-projects.js | 12 +++++----- ...name-in-common-file-renames-all-project.js | 8 +++---- 95 files changed, 283 insertions(+), 266 deletions(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index b257d7aed4c..ba368e3c566 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -2326,7 +2326,7 @@ namespace ts { function filterSameAsDefaultInclude(specs: readonly string[] | undefined) { if (!length(specs)) return undefined; if (length(specs) !== 1) return specs; - if (specs![0] === "**/*") return undefined; + if (specs![0] === defaultIncludeSpec) return undefined; return specs; } @@ -2627,6 +2627,9 @@ namespace ts { return getDirectoryPath(getNormalizedAbsolutePath(fileName, basePath)); } + /*@internal*/ + export const defaultIncludeSpec = "**/*"; + /** * Parse the contents of a config file from json or json source file (tsconfig.json). * @param json The contents of the config file to parse @@ -2705,6 +2708,7 @@ namespace ts { let includeSpecs = toPropValue(getSpecsFromRaw("include")); const excludeOfRaw = getSpecsFromRaw("exclude"); + let isDefaultIncludeSpec = false; let excludeSpecs = toPropValue(excludeOfRaw); if (excludeOfRaw === "no-prop" && raw.compilerOptions) { const outDir = raw.compilerOptions.outDir; @@ -2716,7 +2720,8 @@ namespace ts { } if (filesSpecs === undefined && includeSpecs === undefined) { - includeSpecs = ["**/*"]; + includeSpecs = [defaultIncludeSpec]; + isDefaultIncludeSpec = true; } let validatedIncludeSpecs: readonly string[] | undefined, validatedExcludeSpecs: readonly string[] | undefined; @@ -2740,6 +2745,7 @@ namespace ts { validatedIncludeSpecs, validatedExcludeSpecs, pathPatterns: undefined, // Initialized on first use + isDefaultIncludeSpec, }; } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index bae97eb5375..fa6b9fd3efc 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1444,6 +1444,10 @@ "category": "Error", "code": 1456 }, + "Matched by default include pattern '**/*'": { + "category": "Message", + "code": 1457 + }, "The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.": { "category": "Error", diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 7044953fee6..8ab1cd7d1ca 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -3764,7 +3764,7 @@ namespace ts { } const matchedByInclude = getMatchedIncludeSpec(program, fileName); // Could be additional files specified as roots - if (!matchedByInclude) return undefined; + if (!matchedByInclude || !isString(matchedByInclude)) return undefined; configFileNode = getTsConfigPropArrayElementValue(options.configFile, "include", matchedByInclude); message = Diagnostics.File_is_matched_by_include_pattern_specified_here; break; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 6becb6813ea..717f8029178 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -6385,6 +6385,7 @@ namespace ts { validatedIncludeSpecs: readonly string[] | undefined; validatedExcludeSpecs: readonly string[] | undefined; pathPatterns: readonly (string | Pattern)[] | undefined; + isDefaultIncludeSpec: boolean; } /* @internal */ diff --git a/src/compiler/watch.ts b/src/compiler/watch.ts index 6c422d31f0c..c925046d67a 100644 --- a/src/compiler/watch.ts +++ b/src/compiler/watch.ts @@ -261,6 +261,9 @@ namespace ts { const configFile = program.getCompilerOptions().configFile; if (!configFile?.configFileSpecs?.validatedIncludeSpecs) return undefined; + // Return true if its default include spec + if (configFile.configFileSpecs.isDefaultIncludeSpec) return true; + const isJsonFile = fileExtensionIs(fileName, Extension.Json); const basePath = getDirectoryPath(getNormalizedAbsolutePath(configFile.fileName, program.getCurrentDirectory())); const useCaseSensitiveFileNames = program.useCaseSensitiveFileNames(); @@ -327,15 +330,18 @@ namespace ts { const matchedByFiles = getMatchedFileSpec(program, fileName); if (matchedByFiles) return chainDiagnosticMessages(/*details*/ undefined, Diagnostics.Part_of_files_list_in_tsconfig_json); const matchedByInclude = getMatchedIncludeSpec(program, fileName); - return matchedByInclude ? + return isString(matchedByInclude) ? chainDiagnosticMessages( /*details*/ undefined, Diagnostics.Matched_by_include_pattern_0_in_1, matchedByInclude, toFileName(options.configFile, fileNameConvertor) ) : - // Could be additional files specified as roots - chainDiagnosticMessages(/*details*/ undefined, Diagnostics.Root_file_specified_for_compilation); + // Could be additional files specified as roots or matched by default include + chainDiagnosticMessages(/*details*/ undefined, matchedByInclude ? + Diagnostics.Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk : + Diagnostics.Root_file_specified_for_compilation + ); case FileIncludeKind.SourceFromProjectReference: case FileIncludeKind.OutputFromProjectReference: const isOutput = reason.kind === FileIncludeKind.OutputFromProjectReference; diff --git a/tests/baselines/reference/moduleResolutionWithExtensions_withPaths.errors.txt b/tests/baselines/reference/moduleResolutionWithExtensions_withPaths.errors.txt index 32fdbe484ff..ec9224bb751 100644 --- a/tests/baselines/reference/moduleResolutionWithExtensions_withPaths.errors.txt +++ b/tests/baselines/reference/moduleResolutionWithExtensions_withPaths.errors.txt @@ -1,17 +1,17 @@ error TS6504: File '/node_modules/foo/lib/test.js' is a JavaScript file. Did you mean to enable the 'allowJs' option? The file is in the program because: - Root file specified for compilation + Matched by default include pattern '**/*' error TS6504: File '/relative.js' is a JavaScript file. Did you mean to enable the 'allowJs' option? The file is in the program because: - Matched by include pattern '**/*' in '/tsconfig.json' + Matched by default include pattern '**/*' !!! error TS6504: File '/node_modules/foo/lib/test.js' is a JavaScript file. Did you mean to enable the 'allowJs' option? !!! error TS6504: The file is in the program because: -!!! error TS6504: Root file specified for compilation +!!! error TS6504: Matched by default include pattern '**/*' !!! error TS6504: File '/relative.js' is a JavaScript file. Did you mean to enable the 'allowJs' option? !!! error TS6504: The file is in the program because: -!!! error TS6504: Matched by include pattern '**/*' in '/tsconfig.json' +!!! error TS6504: Matched by default include pattern '**/*' ==== /tsconfig.json (0 errors) ==== { "compilerOptions": { diff --git a/tests/baselines/reference/tsbuild/outfile-concat/explainFiles.js b/tests/baselines/reference/tsbuild/outfile-concat/explainFiles.js index 1bcf4ccb3f0..90bb6ed9d38 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/explainFiles.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/explainFiles.js @@ -155,9 +155,9 @@ src/first/first_part3.ts lib/lib.d.ts Default library for target 'es5' src/second/second_part1.ts - Matched by include pattern '**/*' in 'src/second/tsconfig.json' + Matched by default include pattern '**/*' src/second/second_part2.ts - Matched by include pattern '**/*' in 'src/second/tsconfig.json' + Matched by default include pattern '**/*' [12:00:27 AM] Project 'src/third/tsconfig.json' is out of date because output file 'src/third/thirdjs/output/third-output.js' does not exist [12:00:28 AM] Building project '/src/third/tsconfig.json'... diff --git a/tests/baselines/reference/tsbuild/outputPaths/when-rootDir-is-specified-but-not-all-files-belong-to-rootDir-and-is-composite.js b/tests/baselines/reference/tsbuild/outputPaths/when-rootDir-is-specified-but-not-all-files-belong-to-rootDir-and-is-composite.js index b5088545626..b3c19e67041 100644 --- a/tests/baselines/reference/tsbuild/outputPaths/when-rootDir-is-specified-but-not-all-files-belong-to-rootDir-and-is-composite.js +++ b/tests/baselines/reference/tsbuild/outputPaths/when-rootDir-is-specified-but-not-all-files-belong-to-rootDir-and-is-composite.js @@ -36,7 +36,7 @@ Output:: error TS6059: File '/src/types/type.ts' is not under 'rootDir' '/src/src'. 'rootDir' is expected to contain all source files. The file is in the program because: - Matched by include pattern '**/*' in '/src/tsconfig.json' + Matched by default include pattern '**/*' Found 1 error. @@ -61,7 +61,7 @@ Output:: error TS6059: File '/src/types/type.ts' is not under 'rootDir' '/src/src'. 'rootDir' is expected to contain all source files. The file is in the program because: - Matched by include pattern '**/*' in '/src/tsconfig.json' + Matched by default include pattern '**/*' Found 1 error. @@ -79,7 +79,7 @@ Output:: /lib/tsc -p /src/tsconfig.json error TS6059: File '/src/types/type.ts' is not under 'rootDir' '/src/src'. 'rootDir' is expected to contain all source files. The file is in the program because: - Matched by include pattern '**/*' in '/src/tsconfig.json' + Matched by default include pattern '**/*' Found 1 error. diff --git a/tests/baselines/reference/tsbuild/outputPaths/when-rootDir-is-specified-but-not-all-files-belong-to-rootDir.js b/tests/baselines/reference/tsbuild/outputPaths/when-rootDir-is-specified-but-not-all-files-belong-to-rootDir.js index bf218767e26..dab84c8a315 100644 --- a/tests/baselines/reference/tsbuild/outputPaths/when-rootDir-is-specified-but-not-all-files-belong-to-rootDir.js +++ b/tests/baselines/reference/tsbuild/outputPaths/when-rootDir-is-specified-but-not-all-files-belong-to-rootDir.js @@ -36,7 +36,7 @@ Output:: error TS6059: File '/src/types/type.ts' is not under 'rootDir' '/src/src'. 'rootDir' is expected to contain all source files. The file is in the program because: - Matched by include pattern '**/*' in '/src/tsconfig.json' + Matched by default include pattern '**/*' Found 1 error. @@ -61,7 +61,7 @@ Output:: error TS6059: File '/src/types/type.ts' is not under 'rootDir' '/src/src'. 'rootDir' is expected to contain all source files. The file is in the program because: - Matched by include pattern '**/*' in '/src/tsconfig.json' + Matched by default include pattern '**/*' Found 1 error. @@ -79,7 +79,7 @@ Output:: /lib/tsc -p /src/tsconfig.json error TS6059: File '/src/types/type.ts' is not under 'rootDir' '/src/src'. 'rootDir' is expected to contain all source files. The file is in the program because: - Matched by include pattern '**/*' in '/src/tsconfig.json' + Matched by default include pattern '**/*' Found 1 error. diff --git a/tests/baselines/reference/tsbuild/sample1/explainFiles.js b/tests/baselines/reference/tsbuild/sample1/explainFiles.js index d075688f2dd..052cfa32a02 100644 --- a/tests/baselines/reference/tsbuild/sample1/explainFiles.js +++ b/tests/baselines/reference/tsbuild/sample1/explainFiles.js @@ -123,11 +123,11 @@ Output:: lib/lib.d.ts Default library for target 'es3' src/core/anotherModule.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' src/core/index.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' src/core/some_decl.d.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' [12:00:17 AM] Project 'src/logic/tsconfig.json' is out of date because output file 'src/logic/index.js' does not exist [12:00:18 AM] Building project '/src/logic/tsconfig.json'... @@ -141,7 +141,7 @@ src/core/anotherModule.d.ts Imported via '../core/anotherModule' from file 'src/logic/index.ts' File is output of project reference source 'src/core/anotherModule.ts' src/logic/index.ts - Matched by include pattern '**/*' in 'src/logic/tsconfig.json' + Matched by default include pattern '**/*' [12:00:24 AM] Project 'src/tests/tsconfig.json' is out of date because output file 'src/tests/index.js' does not exist [12:00:25 AM] Building project '/src/tests/tsconfig.json'... @@ -465,11 +465,11 @@ Output:: lib/lib.d.ts Default library for target 'es3' src/core/anotherModule.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' src/core/index.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' src/core/some_decl.d.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' [12:00:44 AM] Project 'src/logic/tsconfig.json' is out of date because oldest output 'src/logic/index.js.map' is older than newest input 'src/core' [12:00:45 AM] Building project '/src/logic/tsconfig.json'... @@ -483,7 +483,7 @@ src/core/anotherModule.d.ts Imported via '../core/anotherModule' from file 'src/logic/index.ts' File is output of project reference source 'src/core/anotherModule.ts' src/logic/index.ts - Matched by include pattern '**/*' in 'src/logic/tsconfig.json' + Matched by default include pattern '**/*' [12:00:51 AM] Project 'src/tests/tsconfig.json' is out of date because oldest output 'src/tests/index.js' is older than newest input 'src/core' [12:00:52 AM] Building project '/src/tests/tsconfig.json'... @@ -769,11 +769,11 @@ Output:: lib/lib.d.ts Default library for target 'es3' src/core/anotherModule.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' src/core/index.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' src/core/some_decl.d.ts - Matched by include pattern '**/*' in 'src/core/tsconfig.json' + Matched by default include pattern '**/*' [12:01:11 AM] Project 'src/logic/tsconfig.json' is up to date with .d.ts files from its dependencies [12:01:13 AM] Updating output timestamps of project '/src/logic/tsconfig.json'... diff --git a/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink-moduleCaseChange.js b/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink-moduleCaseChange.js index 7aa8c10c67d..2c639de2a7f 100644 --- a/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink-moduleCaseChange.js +++ b/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink-moduleCaseChange.js @@ -74,9 +74,9 @@ pkg2/dist/index.d.ts Imported via "@raymondfeng/pkg2" from file 'pkg3/src/keys.ts' with packageId '@raymondfeng/pkg2/dist/index.d.ts@1.0.0' pkg3/src/keys.ts Imported via './keys' from file 'pkg3/src/index.ts' - Matched by include pattern '**/*' in 'pkg3/tsconfig.json' + Matched by default include pattern '**/*' pkg3/src/index.ts - Matched by include pattern '**/*' in 'pkg3/tsconfig.json' + Matched by default include pattern '**/*' Found 1 error in pkg3/src/keys.ts:2 diff --git a/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink.js b/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink.js index 043b54bdbb0..63625a4da40 100644 --- a/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink.js +++ b/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink.js @@ -74,9 +74,9 @@ pkg2/dist/index.d.ts Imported via "@raymondfeng/pkg2" from file 'pkg3/src/keys.ts' with packageId '@raymondfeng/pkg2/dist/index.d.ts@1.0.0' pkg3/src/keys.ts Imported via './keys' from file 'pkg3/src/index.ts' - Matched by include pattern '**/*' in 'pkg3/tsconfig.json' + Matched by default include pattern '**/*' pkg3/src/index.ts - Matched by include pattern '**/*' in 'pkg3/tsconfig.json' + Matched by default include pattern '**/*' Found 1 error in pkg3/src/keys.ts:2 diff --git a/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-moduleCaseChange.js b/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-moduleCaseChange.js index db8d9a3c52b..94600f4e705 100644 --- a/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-moduleCaseChange.js +++ b/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-moduleCaseChange.js @@ -136,14 +136,14 @@ Resolving real path for '/user/username/projects/myProject/plugin-two/node_modul plugin-one/node_modules/typescript-fsa/index.d.ts Imported via "typescript-fsa" from file 'plugin-one/action.ts' with packageId 'typescript-fsa/index.d.ts@3.0.0-beta-2' plugin-one/action.ts - Matched by include pattern '**/*' in 'plugin-one/tsconfig.json' + Matched by default include pattern '**/*' plugin-two/node_modules/typescript-fsa/index.d.ts Imported via "typescript-fsa" from file 'plugin-two/index.d.ts' with packageId 'typescript-fsa/index.d.ts@3.0.0-beta-2' File redirects to file 'plugin-one/node_modules/typescript-fsa/index.d.ts' plugin-two/index.d.ts Imported via "plugin-two" from file 'plugin-one/index.ts' plugin-one/index.ts - Matched by include pattern '**/*' in 'plugin-one/tsconfig.json' + Matched by default include pattern '**/*' Program root files: ["/user/username/projects/myproject/plugin-one/action.ts","/user/username/projects/myproject/plugin-one/index.ts"] diff --git a/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-with-indirect-link-moduleCaseChange.js b/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-with-indirect-link-moduleCaseChange.js index f35f09682d0..3a5649fe040 100644 --- a/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-with-indirect-link-moduleCaseChange.js +++ b/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-with-indirect-link-moduleCaseChange.js @@ -155,7 +155,7 @@ plugin-one/node_modules/typescript-fsa/index.d.ts Imported via "typescript-fsa" from file 'plugin-one/index.ts' with packageId 'typescript-fsa/index.d.ts@3.0.0-beta-2' File redirects to file 'plugin-two/node_modules/typescript-fsa/index.d.ts' plugin-one/index.ts - Matched by include pattern '**/*' in 'plugin-one/tsconfig.json' + Matched by default include pattern '**/*' Program root files: ["/user/username/projects/myproject/plugin-one/index.ts"] diff --git a/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-with-indirect-link.js b/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-with-indirect-link.js index 8dff9f49f6c..69bdc8dc47c 100644 --- a/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-with-indirect-link.js +++ b/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package-with-indirect-link.js @@ -155,7 +155,7 @@ plugin-one/node_modules/typescript-fsa/index.d.ts Imported via "typescript-fsa" from file 'plugin-one/index.ts' with packageId 'typescript-fsa/index.d.ts@3.0.0-beta-2' File redirects to file 'plugin-two/node_modules/typescript-fsa/index.d.ts' plugin-one/index.ts - Matched by include pattern '**/*' in 'plugin-one/tsconfig.json' + Matched by default include pattern '**/*' Program root files: ["/user/username/projects/myproject/plugin-one/index.ts"] diff --git a/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package.js b/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package.js index 431f2bd31e8..a9e5925152f 100644 --- a/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package.js +++ b/tests/baselines/reference/tsc/declarationEmit/when-same-version-is-referenced-through-source-and-another-symlinked-package.js @@ -136,14 +136,14 @@ Resolving real path for '/user/username/projects/myproject/plugin-two/node_modul plugin-one/node_modules/typescript-fsa/index.d.ts Imported via "typescript-fsa" from file 'plugin-one/action.ts' with packageId 'typescript-fsa/index.d.ts@3.0.0-beta-2' plugin-one/action.ts - Matched by include pattern '**/*' in 'plugin-one/tsconfig.json' + Matched by default include pattern '**/*' plugin-two/node_modules/typescript-fsa/index.d.ts Imported via "typescript-fsa" from file 'plugin-two/index.d.ts' with packageId 'typescript-fsa/index.d.ts@3.0.0-beta-2' File redirects to file 'plugin-one/node_modules/typescript-fsa/index.d.ts' plugin-two/index.d.ts Imported via "plugin-two" from file 'plugin-one/index.ts' plugin-one/index.ts - Matched by include pattern '**/*' in 'plugin-one/tsconfig.json' + Matched by default include pattern '**/*' Program root files: ["/user/username/projects/myproject/plugin-one/action.ts","/user/username/projects/myproject/plugin-one/index.ts"] diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-Windows-style-drive-root-is-lowercase.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-Windows-style-drive-root-is-lowercase.js index 33e472c8378..40746863561 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-Windows-style-drive-root-is-lowercase.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-Windows-style-drive-root-is-lowercase.js @@ -38,11 +38,11 @@ Output:: a/lib/lib.d.ts Default library for target 'es3' project/a.ts - Matched by include pattern '**/*' in 'project/tsconfig.json' + Matched by default include pattern '**/*' Imported via "C://project/a" from file 'project/b.ts' Imported via "c://project/a" from file 'project/b.ts' project/b.ts - Matched by include pattern '**/*' in 'project/tsconfig.json' + Matched by default include pattern '**/*' [12:00:22 AM] Found 0 errors. Watching for file changes. @@ -121,11 +121,11 @@ Output:: a/lib/lib.d.ts Default library for target 'es3' project/a.ts - Matched by include pattern '**/*' in 'project/tsconfig.json' + Matched by default include pattern '**/*' Imported via "C://project/a" from file 'project/b.ts' Imported via "c://project/a" from file 'project/b.ts' project/b.ts - Matched by include pattern '**/*' in 'project/tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-Windows-style-drive-root-is-uppercase.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-Windows-style-drive-root-is-uppercase.js index e8961da542b..13879376eb1 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-Windows-style-drive-root-is-uppercase.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-Windows-style-drive-root-is-uppercase.js @@ -38,11 +38,11 @@ Output:: a/lib/lib.d.ts Default library for target 'es3' project/a.ts - Matched by include pattern '**/*' in 'project/tsconfig.json' + Matched by default include pattern '**/*' Imported via "C://project/a" from file 'project/b.ts' Imported via "c://project/a" from file 'project/b.ts' project/b.ts - Matched by include pattern '**/*' in 'project/tsconfig.json' + Matched by default include pattern '**/*' [12:00:22 AM] Found 0 errors. Watching for file changes. @@ -121,11 +121,11 @@ Output:: a/lib/lib.d.ts Default library for target 'es3' project/a.ts - Matched by include pattern '**/*' in 'project/tsconfig.json' + Matched by default include pattern '**/*' Imported via "C://project/a" from file 'project/b.ts' Imported via "c://project/a" from file 'project/b.ts' project/b.ts - Matched by include pattern '**/*' in 'project/tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-both-directory-symlink-target-and-import-match-disk.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-both-directory-symlink-target-and-import-match-disk.js index 634c9ca43fa..bd029463f84 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-both-directory-symlink-target-and-import-match-disk.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-both-directory-symlink-target-and-import-match-disk.js @@ -40,11 +40,11 @@ Output:: Default library for target 'es3' XY/a.ts Imported via "./XY/a" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:30 AM] Found 0 errors. Watching for file changes. @@ -150,11 +150,11 @@ Output:: Default library for target 'es3' XY/a.ts Imported via "./XY/a" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:37 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-both-file-symlink-target-and-import-match-disk.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-both-file-symlink-target-and-import-match-disk.js index 53467069a46..e17bb9540e2 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-both-file-symlink-target-and-import-match-disk.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-both-file-symlink-target-and-import-match-disk.js @@ -39,13 +39,13 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./XY" from file 'b.ts' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 0 errors. Watching for file changes. @@ -137,13 +137,13 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./XY" from file 'b.ts' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:42 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-changing-module-name-with-different-casing.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-changing-module-name-with-different-casing.js index 6f765544f57..b2c1b228bcd 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-changing-module-name-with-different-casing.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-changing-module-name-with-different-casing.js @@ -103,7 +103,7 @@ Output:: user/username/projects/myproject/another.ts:1:24 - error TS1261: Already included file name '/user/username/projects/myproject/Logger.ts' differs from file name '/user/username/projects/myproject/logger.ts' only in casing. The file is in the program because: Imported via "./Logger" from file '/user/username/projects/myproject/another.ts' - Matched by include pattern '**/*' in '/user/username/projects/myproject/tsconfig.json' + Matched by default include pattern '**/*' 1 import { logger } from "./Logger"; new logger();    ~~~~~~~~~~ diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-directory-symlink-target-matches-disk-but-import-does-not.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-directory-symlink-target-matches-disk-but-import-does-not.js index b847f8fdb41..0a446016e44 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-directory-symlink-target-matches-disk-but-import-does-not.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-directory-symlink-target-matches-disk-but-import-does-not.js @@ -40,11 +40,11 @@ Output:: Default library for target 'es3' XY/a.ts Imported via "./XY/a" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:30 AM] Found 0 errors. Watching for file changes. @@ -150,11 +150,11 @@ Output:: Default library for target 'es3' XY/a.ts Imported via "./XY/a" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:37 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-file-symlink-target-matches-disk-but-import-does-not.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-file-symlink-target-matches-disk-but-import-does-not.js index 094ce2ca942..0c1bcfb03de 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-file-symlink-target-matches-disk-but-import-does-not.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-file-symlink-target-matches-disk-but-import-does-not.js @@ -39,13 +39,13 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./XY" from file 'b.ts' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 0 errors. Watching for file changes. @@ -137,13 +137,13 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./XY" from file 'b.ts' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:42 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import,-directory-symlink-target,-and-disk-are-all-different.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import,-directory-symlink-target,-and-disk-are-all-different.js index c9f4403e401..76dc9d31028 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import,-directory-symlink-target,-and-disk-are-all-different.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import,-directory-symlink-target,-and-disk-are-all-different.js @@ -46,9 +46,9 @@ Output:: link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' XY/a.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:30 AM] Found 1 error. Watching for file changes. @@ -162,9 +162,9 @@ Output:: link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' XY/a.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import,-file-symlink-target,-and-disk-are-all-different.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import,-file-symlink-target,-and-disk-are-all-different.js index 39c9167334e..3966892e4c9 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import,-file-symlink-target,-and-disk-are-all-different.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import,-file-symlink-target,-and-disk-are-all-different.js @@ -44,12 +44,12 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 1 error. Watching for file changes. @@ -150,12 +150,12 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:39 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-and-directory-symlink-target-agree-but-do-not-match-disk.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-and-directory-symlink-target-agree-but-do-not-match-disk.js index a3571bb3936..da211556831 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-and-directory-symlink-target-agree-but-do-not-match-disk.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-and-directory-symlink-target-agree-but-do-not-match-disk.js @@ -39,7 +39,7 @@ Output:: b.ts:2:19 - error TS1261: Already included file name '/user/username/projects/myproject/Xy/a.ts' differs from file name '/user/username/projects/myproject/XY/a.ts' only in casing. The file is in the program because: Imported via "./Xy/a" from file '/user/username/projects/myproject/b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' 2 import { a } from "./Xy/a";    ~~~~~~~~ @@ -48,11 +48,11 @@ Output:: Default library for target 'es3' Xy/a.ts Imported via "./Xy/a" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:30 AM] Found 1 error. Watching for file changes. @@ -157,7 +157,7 @@ Output:: b.ts:2:19 - error TS1261: Already included file name '/user/username/projects/myproject/Xy/a.ts' differs from file name '/user/username/projects/myproject/XY/a.ts' only in casing. The file is in the program because: Imported via "./Xy/a" from file '/user/username/projects/myproject/b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' 2 import { a } from "./Xy/a";    ~~~~~~~~ @@ -166,11 +166,11 @@ Output:: Default library for target 'es3' Xy/a.ts Imported via "./Xy/a" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-and-file-symlink-target-agree-but-do-not-match-disk.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-and-file-symlink-target-agree-but-do-not-match-disk.js index f0059e68a8b..8c64599461b 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-and-file-symlink-target-agree-but-do-not-match-disk.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-and-file-symlink-target-agree-but-do-not-match-disk.js @@ -38,7 +38,7 @@ Output:: b.ts:2:19 - error TS1149: File name '/user/username/projects/myproject/Xy.ts' differs from already included file name '/user/username/projects/myproject/XY.ts' only in casing. The file is in the program because: - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Xy" from file '/user/username/projects/myproject/b.ts' 2 import { a } from "./Xy"; @@ -47,13 +47,13 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Xy" from file 'b.ts' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 1 error. Watching for file changes. @@ -144,7 +144,7 @@ Output:: b.ts:2:19 - error TS1149: File name '/user/username/projects/myproject/Xy.ts' differs from already included file name '/user/username/projects/myproject/XY.ts' only in casing. The file is in the program because: - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Xy" from file '/user/username/projects/myproject/b.ts' 2 import { a } from "./Xy"; @@ -153,13 +153,13 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Xy" from file 'b.ts' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:42 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-matches-disk-but-directory-symlink-target-does-not.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-matches-disk-but-directory-symlink-target-does-not.js index effb28f9739..cbb14e2e89e 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-matches-disk-but-directory-symlink-target-does-not.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-matches-disk-but-directory-symlink-target-does-not.js @@ -39,7 +39,7 @@ Output:: b.ts:2:19 - error TS1261: Already included file name '/user/username/projects/myproject/Xy/a.ts' differs from file name '/user/username/projects/myproject/XY/a.ts' only in casing. The file is in the program because: Imported via "./Xy/a" from file '/user/username/projects/myproject/b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' 2 import { a } from "./Xy/a";    ~~~~~~~~ @@ -48,11 +48,11 @@ Output:: Default library for target 'es3' Xy/a.ts Imported via "./Xy/a" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:30 AM] Found 1 error. Watching for file changes. @@ -157,7 +157,7 @@ Output:: b.ts:2:19 - error TS1261: Already included file name '/user/username/projects/myproject/Xy/a.ts' differs from file name '/user/username/projects/myproject/XY/a.ts' only in casing. The file is in the program because: Imported via "./Xy/a" from file '/user/username/projects/myproject/b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' 2 import { a } from "./Xy/a";    ~~~~~~~~ @@ -166,11 +166,11 @@ Output:: Default library for target 'es3' Xy/a.ts Imported via "./Xy/a" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' link/a.ts Imported via "./link/a" from file 'b.ts' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-matches-disk-but-file-symlink-target-does-not.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-matches-disk-but-file-symlink-target-does-not.js index 23c67c71ac0..924d306c523 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-matches-disk-but-file-symlink-target-does-not.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-import-matches-disk-but-file-symlink-target-does-not.js @@ -38,7 +38,7 @@ Output:: b.ts:2:19 - error TS1149: File name '/user/username/projects/myproject/Xy.ts' differs from already included file name '/user/username/projects/myproject/XY.ts' only in casing. The file is in the program because: - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Xy" from file '/user/username/projects/myproject/b.ts' 2 import { a } from "./Xy"; @@ -47,13 +47,13 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Xy" from file 'b.ts' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 1 error. Watching for file changes. @@ -144,7 +144,7 @@ Output:: b.ts:2:19 - error TS1149: File name '/user/username/projects/myproject/Xy.ts' differs from already included file name '/user/username/projects/myproject/XY.ts' only in casing. The file is in the program because: - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Xy" from file '/user/username/projects/myproject/b.ts' 2 import { a } from "./Xy"; @@ -153,13 +153,13 @@ Output:: ../../../../a/lib/lib.d.ts Default library for target 'es3' XY.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Xy" from file 'b.ts' link.ts Imported via "./link" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:42 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-relative-information-file-location-changes.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-relative-information-file-location-changes.js index 481cc141c2a..ee3472dfd04 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-relative-information-file-location-changes.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-relative-information-file-location-changes.js @@ -34,7 +34,7 @@ Output:: The file is in the program because: Imported via "./ModuleC" from file '/user/username/projects/myproject/moduleA.ts' Imported via "./moduleC" from file '/user/username/projects/myproject/moduleB.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' 1 import a = require("./ModuleC")    ~~~~~~~~~~~ @@ -48,7 +48,7 @@ Output:: The file is in the program because: Imported via "./ModuleC" from file '/user/username/projects/myproject/moduleA.ts' Imported via "./moduleC" from file '/user/username/projects/myproject/moduleB.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' 1 import a = require("./moduleC")    ~~~~~~~~~~~ @@ -63,11 +63,11 @@ Output:: ModuleC.ts Imported via "./ModuleC" from file 'moduleA.ts' Imported via "./moduleC" from file 'moduleB.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' moduleA.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' moduleB.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 2 errors. Watching for file changes. @@ -149,7 +149,7 @@ Output:: The file is in the program because: Imported via "./ModuleC" from file '/user/username/projects/myproject/moduleA.ts' Imported via "./moduleC" from file '/user/username/projects/myproject/moduleB.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' 2 import a = require("./ModuleC")    ~~~~~~~~~~~ @@ -163,7 +163,7 @@ Output:: The file is in the program because: Imported via "./ModuleC" from file '/user/username/projects/myproject/moduleA.ts' Imported via "./moduleC" from file '/user/username/projects/myproject/moduleB.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' 1 import a = require("./moduleC")    ~~~~~~~~~~~ @@ -178,11 +178,11 @@ Output:: ModuleC.ts Imported via "./ModuleC" from file 'moduleA.ts' Imported via "./moduleC" from file 'moduleB.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' moduleA.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' moduleB.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:39 AM] Found 2 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-renaming-file-with-different-casing.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-renaming-file-with-different-casing.js index de81b0d9b7e..07d17cf5ab7 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-renaming-file-with-different-casing.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-renaming-file-with-different-casing.js @@ -100,7 +100,7 @@ Output:: user/username/projects/myproject/another.ts:1:24 - error TS1149: File name '/user/username/projects/myproject/logger.ts' differs from already included file name '/user/username/projects/myproject/Logger.ts' only in casing. The file is in the program because: - Matched by include pattern '**/*' in '/user/username/projects/myproject/tsconfig.json' + Matched by default include pattern '**/*' Imported via "./logger" from file '/user/username/projects/myproject/another.ts' 1 import { logger } from "./logger"; new logger(); diff --git a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-incremental.js b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-incremental.js index 7b5c667c63a..52a44364633 100644 --- a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-incremental.js @@ -62,7 +62,7 @@ Output:: node_modules/react/jsx-runtime/index.d.ts Imported via "react/jsx-runtime" from file 'index.tsx' with packageId 'react/jsx-runtime/index.d.ts@0.0.1' to import 'jsx' and 'jsxs' factory functions index.tsx - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Program root files: ["/users/username/projects/project/index.tsx"] @@ -176,7 +176,7 @@ Output:: node_modules/preact/jsx-runtime/index.d.ts Imported via "preact/jsx-runtime" from file 'index.tsx' with packageId 'preact/jsx-runtime/index.d.ts@0.0.1' to import 'jsx' and 'jsxs' factory functions index.tsx - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Found 1 error in index.tsx:1 diff --git a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-watch.js b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-watch.js index 7725b4acdac..31a33b2f8df 100644 --- a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-watch.js +++ b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-watch.js @@ -65,7 +65,7 @@ Output:: node_modules/react/jsx-runtime/index.d.ts Imported via "react/jsx-runtime" from file 'index.tsx' with packageId 'react/jsx-runtime/index.d.ts@0.0.1' to import 'jsx' and 'jsxs' factory functions index.tsx - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:44 AM] Found 0 errors. Watching for file changes. @@ -202,7 +202,7 @@ Output:: node_modules/preact/jsx-runtime/index.d.ts Imported via "preact/jsx-runtime" from file 'index.tsx' with packageId 'preact/jsx-runtime/index.d.ts@0.0.1' to import 'jsx' and 'jsxs' factory functions index.tsx - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' [12:00:57 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/programUpdates/handle-recreated-files-correctly.js b/tests/baselines/reference/tscWatch/programUpdates/handle-recreated-files-correctly.js index a1adb29d110..0daf94bb3dc 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/handle-recreated-files-correctly.js +++ b/tests/baselines/reference/tscWatch/programUpdates/handle-recreated-files-correctly.js @@ -30,9 +30,9 @@ Output:: a/lib/lib.d.ts Default library for target 'es3' a/b/commonFile1.ts - Matched by include pattern '**/*' in 'a/b/tsconfig.json' + Matched by default include pattern '**/*' a/b/commonFile2.ts - Matched by include pattern '**/*' in 'a/b/tsconfig.json' + Matched by default include pattern '**/*' [12:00:22 AM] Found 0 errors. Watching for file changes. @@ -98,9 +98,9 @@ Output:: a/lib/lib.d.ts Default library for target 'es3' a/b/commonFile1.ts - Matched by include pattern '**/*' in 'a/b/tsconfig.json' + Matched by default include pattern '**/*' a/b/commonFile2.ts - Matched by include pattern '**/*' in 'a/b/tsconfig.json' + Matched by default include pattern '**/*' [12:00:32 AM] Found 0 errors. Watching for file changes. @@ -161,7 +161,7 @@ Output:: a/lib/lib.d.ts Default library for target 'es3' a/b/commonFile1.ts - Matched by include pattern '**/*' in 'a/b/tsconfig.json' + Matched by default include pattern '**/*' [12:00:38 AM] Found 0 errors. Watching for file changes. @@ -213,9 +213,9 @@ Output:: a/lib/lib.d.ts Default library for target 'es3' a/b/commonFile1.ts - Matched by include pattern '**/*' in 'a/b/tsconfig.json' + Matched by default include pattern '**/*' a/b/commonFile2.ts - Matched by include pattern '**/*' in 'a/b/tsconfig.json' + Matched by default include pattern '**/*' [12:00:48 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/programUpdates/updates-errors-when-forceConsistentCasingInFileNames-changes.js b/tests/baselines/reference/tscWatch/programUpdates/updates-errors-when-forceConsistentCasingInFileNames-changes.js index 8515ccfb52b..4ce7e13cd84 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/updates-errors-when-forceConsistentCasingInFileNames-changes.js +++ b/tests/baselines/reference/tscWatch/programUpdates/updates-errors-when-forceConsistentCasingInFileNames-changes.js @@ -98,7 +98,7 @@ Output:: b.ts:1:43 - error TS1149: File name '/A.ts' differs from already included file name '/a.ts' only in casing. The file is in the program because: - Matched by include pattern '**/*' in '/tsconfig.json' + Matched by default include pattern '**/*' Imported via './a' from file '/b.ts' Imported via './A' from file '/b.ts' diff --git a/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory-renaming-a-file.js b/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory-renaming-a-file.js index e48000c8b37..df6d2343150 100644 --- a/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory-renaming-a-file.js +++ b/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory-renaming-a-file.js @@ -131,7 +131,7 @@ Output:: error TS6053: File '/user/username/projects/myproject/src/file2.ts' not found. The file is in the program because: - Matched by include pattern '**/*' in '/user/username/projects/myproject/tsconfig.json' + Matched by default include pattern '**/*' [12:00:41 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/when-changing-module-name-with-different-casing.js b/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/when-changing-module-name-with-different-casing.js index 4b5747816f6..6dca8da543b 100644 --- a/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/when-changing-module-name-with-different-casing.js +++ b/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/when-changing-module-name-with-different-casing.js @@ -35,10 +35,10 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' Logger.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Logger" from file 'another.ts' another.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -75,7 +75,7 @@ Different program with same set of files event: {"seq":0,"type":"event","event":"syntaxDiag","body":{"file":"/user/username/projects/myproject/another.ts","diagnostics":[]}} event: - {"seq":0,"type":"event","event":"semanticDiag","body":{"file":"/user/username/projects/myproject/another.ts","diagnostics":[{"start":{"line":1,"offset":24},"end":{"line":1,"offset":34},"text":"File name '/user/username/projects/myproject/logger.ts' differs from already included file name '/user/username/projects/myproject/Logger.ts' only in casing.\n The file is in the program because:\n Matched by include pattern '**/*' in '/user/username/projects/myproject/tsconfig.json'\n Imported via \"./logger\" from file '/user/username/projects/myproject/another.ts'","code":1149,"category":"error"}]}} + {"seq":0,"type":"event","event":"semanticDiag","body":{"file":"/user/username/projects/myproject/another.ts","diagnostics":[{"start":{"line":1,"offset":24},"end":{"line":1,"offset":34},"text":"File name '/user/username/projects/myproject/logger.ts' differs from already included file name '/user/username/projects/myproject/Logger.ts' only in casing.\n The file is in the program because:\n Matched by default include pattern '**/*'\n Imported via \"./logger\" from file '/user/username/projects/myproject/another.ts'","code":1149,"category":"error"}]}} event: {"seq":0,"type":"event","event":"suggestionDiag","body":{"file":"/user/username/projects/myproject/another.ts","diagnostics":[]}} event: diff --git a/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/works-when-renaming-file-with-different-casing.js b/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/works-when-renaming-file-with-different-casing.js index 1af314f8ae8..370b7d9eeca 100644 --- a/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/works-when-renaming-file-with-different-casing.js +++ b/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/works-when-renaming-file-with-different-casing.js @@ -35,10 +35,10 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' Logger.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' Imported via "./Logger" from file 'another.ts' another.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/navTo/should-de-duplicate-symbols-when-searching-all-projects.js b/tests/baselines/reference/tsserver/navTo/should-de-duplicate-symbols-when-searching-all-projects.js index 1afcc60f829..30a53a54c33 100644 --- a/tests/baselines/reference/tsserver/navTo/should-de-duplicate-symbols-when-searching-all-projects.js +++ b/tests/baselines/reference/tsserver/navTo/should-de-duplicate-symbols-when-searching-all-projects.js @@ -27,7 +27,7 @@ Project '/a/tsconfig.json' (Configured) index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /a @@ -105,7 +105,7 @@ Project '/b/tsconfig.json' (Configured) ../a/index.ts Imported via "../a" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- response:{"response":[{"name":"abcdef","kind":"const","kindModifiers":"export","isCaseSensitive":true,"matchKind":"exact","file":"/a/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":24}}],"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/navTo/should-de-duplicate-symbols.js b/tests/baselines/reference/tsserver/navTo/should-de-duplicate-symbols.js index 5cd8cb893a8..6ba2ebed1d9 100644 --- a/tests/baselines/reference/tsserver/navTo/should-de-duplicate-symbols.js +++ b/tests/baselines/reference/tsserver/navTo/should-de-duplicate-symbols.js @@ -27,7 +27,7 @@ Project '/a/tsconfig.json' (Configured) index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /a @@ -77,7 +77,7 @@ Project '/b/tsconfig.json' (Configured) ../a/index.ts Imported via "../a" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /b diff --git a/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-changes.js b/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-changes.js index c290bb78497..27b0dcfb387 100644 --- a/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-changes.js +++ b/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-changes.js @@ -31,7 +31,7 @@ Project '/a/b/tsconfig.json' (Configured) ../lib/lib.d.ts Default library for target 'es3' app.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-doesnt-have-errors.js b/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-doesnt-have-errors.js index 99c6e880c5c..9f12746363e 100644 --- a/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-doesnt-have-errors.js +++ b/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-doesnt-have-errors.js @@ -31,7 +31,7 @@ Project '/a/b/tsconfig.json' (Configured) ../lib/lib.d.ts Default library for target 'es3' app.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-has-errors.js b/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-has-errors.js index 127e18a1207..164680af35c 100644 --- a/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-has-errors.js +++ b/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-generated-when-the-config-file-has-errors.js @@ -31,7 +31,7 @@ Project '/a/b/tsconfig.json' (Configured) ../lib/lib.d.ts Default library for target 'es3' app.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-not-generated-when-the-config-file-has-errors-but-suppressDiagnosticEvents-is-true.js b/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-not-generated-when-the-config-file-has-errors-but-suppressDiagnosticEvents-is-true.js index 41cfb0ff066..67d3989d779 100644 --- a/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-not-generated-when-the-config-file-has-errors-but-suppressDiagnosticEvents-is-true.js +++ b/tests/baselines/reference/tsserver/projectErrors/configFileDiagnostic-events-are-not-generated-when-the-config-file-has-errors-but-suppressDiagnosticEvents-is-true.js @@ -31,7 +31,7 @@ Project '/a/b/tsconfig.json' (Configured) ../lib/lib.d.ts Default library for target 'es3' app.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectErrors/folder-rename-updates-project-structure-and-reports-no-errors.js b/tests/baselines/reference/tsserver/projectErrors/folder-rename-updates-project-structure-and-reports-no-errors.js index 9d4011c2649..46fa2c405a2 100644 --- a/tests/baselines/reference/tsserver/projectErrors/folder-rename-updates-project-structure-and-reports-no-errors.js +++ b/tests/baselines/reference/tsserver/projectErrors/folder-rename-updates-project-structure-and-reports-no-errors.js @@ -32,9 +32,9 @@ Project '/a/b/projects/myproject/tsconfig.json' (Configured) bar/app.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' foo/foo.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -93,9 +93,9 @@ Project '/a/b/projects/myproject/tsconfig.json' (Configured) bar/app.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' foo2/foo.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* diff --git a/tests/baselines/reference/tsserver/projectErrors/npm-install-when-timeout-occurs-after-installation.js b/tests/baselines/reference/tsserver/projectErrors/npm-install-when-timeout-occurs-after-installation.js index 584478548a4..6026e090cd7 100644 --- a/tests/baselines/reference/tsserver/projectErrors/npm-install-when-timeout-occurs-after-installation.js +++ b/tests/baselines/reference/tsserver/projectErrors/npm-install-when-timeout-occurs-after-installation.js @@ -35,7 +35,7 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' src/main.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -237,7 +237,7 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) node_modules/@angular/core/index.d.ts Imported via '@angular/core' from file 'src/main.ts' src/main.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* diff --git a/tests/baselines/reference/tsserver/projectErrors/npm-install-when-timeout-occurs-inbetween-installation.js b/tests/baselines/reference/tsserver/projectErrors/npm-install-when-timeout-occurs-inbetween-installation.js index 9fb71d12544..cb081c277d9 100644 --- a/tests/baselines/reference/tsserver/projectErrors/npm-install-when-timeout-occurs-inbetween-installation.js +++ b/tests/baselines/reference/tsserver/projectErrors/npm-install-when-timeout-occurs-inbetween-installation.js @@ -35,7 +35,7 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' src/main.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -260,7 +260,7 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) node_modules/@angular/core/index.d.ts Imported via '@angular/core' from file 'src/main.ts' src/main.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* diff --git a/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-gerErr-with-sync-commands.js b/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-gerErr-with-sync-commands.js index ac2b48eaed2..68998048cd7 100644 --- a/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-gerErr-with-sync-commands.js +++ b/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-gerErr-with-sync-commands.js @@ -29,7 +29,7 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' ui.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Project '/user/username/projects/myproject/tsconfig.json' (Configured) diff --git a/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-getErr.js b/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-getErr.js index e7f57c4b839..c58c641760a 100644 --- a/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-getErr.js +++ b/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-getErr.js @@ -31,7 +31,7 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' ui.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-geterrForProject.js b/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-geterrForProject.js index ca2aec83065..f387f2fe303 100644 --- a/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-geterrForProject.js +++ b/tests/baselines/reference/tsserver/projectErrors/when-semantic-error-returns-includes-global-error-geterrForProject.js @@ -31,7 +31,7 @@ Project '/user/username/projects/myproject/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' ui.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectLanguageServiceStateEvent/large-file-size-is-determined-correctly.js b/tests/baselines/reference/tsserver/projectLanguageServiceStateEvent/large-file-size-is-determined-correctly.js index 98221e5c651..50ba703368f 100644 --- a/tests/baselines/reference/tsserver/projectLanguageServiceStateEvent/large-file-size-is-determined-correctly.js +++ b/tests/baselines/reference/tsserver/projectLanguageServiceStateEvent/large-file-size-is-determined-correctly.js @@ -35,7 +35,7 @@ Project '/a/jsconfig.json' (Configured) lib/lib.d.ts Default library for target 'es3' app.js - Matched by include pattern '**/*' in 'jsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Project '/a/jsconfig.json' (Configured) diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-gerErr-with-sync-commands.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-gerErr-with-sync-commands.js index c4626262b1f..614454c9e70 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-gerErr-with-sync-commands.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-gerErr-with-sync-commands.js @@ -57,7 +57,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Imported via '../decls/fns' from file 'usage.ts' usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/usage diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-getErr.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-getErr.js index 5ec2fe654cf..4f1c8cc2e71 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-getErr.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-getErr.js @@ -59,7 +59,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Imported via '../decls/fns' from file 'usage.ts' usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-geterrForProject.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-geterrForProject.js index 9aac5c55269..ca8ec478b78 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-geterrForProject.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-dependency-project-is-not-open-geterrForProject.js @@ -59,7 +59,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Imported via '../decls/fns' from file 'usage.ts' usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-gerErr-with-sync-commands.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-gerErr-with-sync-commands.js index 615d0115011..e0a33ee41ad 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-gerErr-with-sync-commands.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-gerErr-with-sync-commands.js @@ -57,7 +57,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Imported via '../decls/fns' from file 'usage.ts' usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/usage @@ -91,7 +91,7 @@ Project '/user/username/projects/myproject/dependency/tsconfig.json' (Configured ../../../../../a/lib/lib.d.ts Default library for target 'es3' fns.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/dependency diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-getErr.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-getErr.js index 1c9a4d17819..3e0d3e8b6a5 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-getErr.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-getErr.js @@ -59,7 +59,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Imported via '../decls/fns' from file 'usage.ts' usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -101,7 +101,7 @@ Project '/user/username/projects/myproject/dependency/tsconfig.json' (Configured ../../../../../a/lib/lib.d.ts Default library for target 'es3' fns.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-geterrForProject.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-geterrForProject.js index 18e76ddb5e0..80d446e4ccf 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-geterrForProject.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-geterrForProject.js @@ -59,7 +59,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Imported via '../decls/fns' from file 'usage.ts' usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -101,7 +101,7 @@ Project '/user/username/projects/myproject/dependency/tsconfig.json' (Configured ../../../../../a/lib/lib.d.ts Default library for target 'es3' fns.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-gerErr-with-sync-commands.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-gerErr-with-sync-commands.js index d54d8a8ed4c..b6557c188b2 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-gerErr-with-sync-commands.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-gerErr-with-sync-commands.js @@ -56,7 +56,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Source from referenced project '../dependency/tsconfig.json' included because '--outFile' specified usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/usage diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-getErr.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-getErr.js index cd4980e3517..71b2ef4080c 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-getErr.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-getErr.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Source from referenced project '../dependency/tsconfig.json' included because '--outFile' specified usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-geterrForProject.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-geterrForProject.js index 0441470c965..efe0d23a2fb 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-geterrForProject.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-dependency-project-is-not-open-geterrForProject.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Source from referenced project '../dependency/tsconfig.json' included because '--outFile' specified usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-gerErr-with-sync-commands.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-gerErr-with-sync-commands.js index 07b7d01685e..9d8ec6cbb7c 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-gerErr-with-sync-commands.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-gerErr-with-sync-commands.js @@ -56,7 +56,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Source from referenced project '../dependency/tsconfig.json' included because '--outFile' specified usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/usage @@ -90,7 +90,7 @@ Project '/user/username/projects/myproject/dependency/tsconfig.json' (Configured ../../../../../a/lib/lib.d.ts Default library for target 'es3' fns.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/dependency diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-getErr.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-getErr.js index bfd0a68ad05..f7e7deeee04 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-getErr.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-getErr.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Source from referenced project '../dependency/tsconfig.json' included because '--outFile' specified usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -100,7 +100,7 @@ Project '/user/username/projects/myproject/dependency/tsconfig.json' (Configured ../../../../../a/lib/lib.d.ts Default library for target 'es3' fns.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-geterrForProject.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-geterrForProject.js index d9f23968cc7..578c620db94 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-geterrForProject.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-geterrForProject.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/usage/tsconfig.json' (Configured) ../dependency/fns.ts Source from referenced project '../dependency/tsconfig.json' included because '--outFile' specified usage.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -100,7 +100,7 @@ Project '/user/username/projects/myproject/dependency/tsconfig.json' (Configured ../../../../../a/lib/lib.d.ts Default library for target 'es3' fns.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built-with-disableSourceOfProjectReferenceRedirect.js b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built-with-disableSourceOfProjectReferenceRedirect.js index 241b70977b5..058e633093a 100644 --- a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built-with-disableSourceOfProjectReferenceRedirect.js +++ b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built-with-disableSourceOfProjectReferenceRedirect.js @@ -72,9 +72,9 @@ Project '/user/username/projects/myproject/app/src/program/tsconfig.json' (Confi ../../../shared/bld/library/index.d.ts Imported via "shared" from file 'bar.ts' with packageId 'shared/bld/library/index.d.ts@1.0.0' bar.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/app/src/program diff --git a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built.js b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built.js index 76af89b5a9b..47d336a43c8 100644 --- a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built.js +++ b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built.js @@ -71,9 +71,9 @@ Project '/user/username/projects/myproject/app/src/program/tsconfig.json' (Confi ../../../shared/src/library/index.ts Imported via "shared" from file 'bar.ts' with packageId 'shared/bld/library/index.d.ts@1.0.0' bar.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/app/src/program diff --git a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project.js b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project.js index 76af89b5a9b..47d336a43c8 100644 --- a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project.js +++ b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project.js @@ -71,9 +71,9 @@ Project '/user/username/projects/myproject/app/src/program/tsconfig.json' (Confi ../../../shared/src/library/index.ts Imported via "shared" from file 'bar.ts' with packageId 'shared/bld/library/index.d.ts@1.0.0' bar.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/app/src/program diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js index 85319dd3571..f0a2a720de7 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/lib/index.d.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -94,9 +94,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 59a61bd25be..2425cab99f1 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/lib/index.d.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -94,9 +94,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index 61d2444b9de..a62b1ae34c9 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/index.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -93,9 +93,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index 61d2444b9de..a62b1ae34c9 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/index.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -93,9 +93,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js index 3a8687c455e..748c84dfbf8 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/lib/index.d.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -94,9 +94,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index f93ce3f7d93..a2d046ad30b 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/lib/index.d.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -94,9 +94,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index 44dc2ca096e..d6532782ff1 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/index.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -93,9 +93,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index 44dc2ca096e..d6532782ff1 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/index.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -93,9 +93,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js index 3e221cf09cd..b65bf5e7d50 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/lib/index.d.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 8b358d0ce6d..56293379920 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/lib/index.d.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index 55559b9acd2..43eae09fdf7 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/index.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index 55559b9acd2..43eae09fdf7 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/index.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js index de6604b6549..057b8afb96d 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/lib/index.d.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 3dd0ca101ba..00254fbec0e 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/lib/index.d.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -97,9 +97,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index 491aacf1f4f..b24d524cc4d 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/index.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -95,9 +95,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index 491aacf1f4f..b24d524cc4d 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/a/tsconfig.json' (Configured) ../b/index.ts Imported via "../b/lib" from file 'index.ts' index.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/a @@ -95,9 +95,9 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) index.ts Imported via "." from file 'helper.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' helper.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-not-open-with-disableSourceOfProjectReferenceRedirect.js b/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-not-open-with-disableSourceOfProjectReferenceRedirect.js index 33ff2899bb1..1eea85290b7 100644 --- a/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-not-open-with-disableSourceOfProjectReferenceRedirect.js +++ b/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-not-open-with-disableSourceOfProjectReferenceRedirect.js @@ -59,7 +59,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class1.d.ts Output from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/projects/project2 @@ -125,7 +125,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class3.d.ts Output from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* @@ -175,7 +175,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class1.d.ts Output from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* @@ -222,7 +222,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class3.d.ts Output from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* diff --git a/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-not-open.js b/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-not-open.js index b7dd8d659e8..b3bc3321005 100644 --- a/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-not-open.js +++ b/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-not-open.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class1.ts Source from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/projects/project2 @@ -94,7 +94,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class3.ts Source from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* diff --git a/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-open-with-disableSourceOfProjectReferenceRedirect.js b/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-open-with-disableSourceOfProjectReferenceRedirect.js index 7f2d161a7d7..35c21897bc2 100644 --- a/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-open-with-disableSourceOfProjectReferenceRedirect.js +++ b/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-open-with-disableSourceOfProjectReferenceRedirect.js @@ -59,7 +59,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class1.d.ts Output from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/projects/project2 @@ -94,7 +94,7 @@ Project '/user/username/projects/myproject/projects/project1/tsconfig.json' (Con ../../../../../../a/lib/lib.d.ts Default library for target 'es3' class1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/projects/project1 @@ -138,9 +138,9 @@ Project '/user/username/projects/myproject/projects/project1/tsconfig.json' (Con ../../../../../../a/lib/lib.d.ts Default library for target 'es3' class1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' class3.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* @@ -199,7 +199,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class3.d.ts Output from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* @@ -261,7 +261,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class1.d.ts Output from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* @@ -320,7 +320,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class3.d.ts Output from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* diff --git a/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-open.js b/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-open.js index e599b581ce2..cd7fff83f72 100644 --- a/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-open.js +++ b/tests/baselines/reference/tsserver/projectReferences/new-file-is-added-to-the-referenced-project-when-referenced-project-is-open.js @@ -58,7 +58,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class1.ts Source from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/projects/project2 @@ -94,7 +94,7 @@ Project '/user/username/projects/myproject/projects/project1/tsconfig.json' (Con ../../../../../../a/lib/lib.d.ts Default library for target 'es3' class1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/projects/project1 @@ -138,7 +138,7 @@ Project '/user/username/projects/myproject/projects/project2/tsconfig.json' (Con ../project1/class3.ts Source from referenced project '../project1/tsconfig.json' included because '--module' is specified as 'none' class2.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: /user/username/projects/myproject/projects/project1/tsconfig.json @@ -154,9 +154,9 @@ Project '/user/username/projects/myproject/projects/project1/tsconfig.json' (Con ../../../../../../a/lib/lib.d.ts Default library for target 'es3' class1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' class3.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* diff --git a/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js index c4e3dc48914..cba2ddff410 100644 --- a/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js @@ -544,7 +544,7 @@ Project '/user/username/projects/myproject/indirect3/tsconfig.json' (Configured) ../target/src/main.d.ts Imported via 'main' from file 'main.ts' main.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js index adae146583b..f3a766b7f63 100644 --- a/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js @@ -752,7 +752,7 @@ Project '/user/username/projects/myproject/indirect3/tsconfig.json' (Configured) ../target/src/main.d.ts Imported via 'main' from file 'main.ts' main.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js index 76d8a82c686..0db18dfe0b6 100644 --- a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js +++ b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js @@ -621,7 +621,7 @@ Project '/user/username/projects/myproject/indirect3/tsconfig.json' (Configured) ../target/src/main.d.ts Imported via 'main' from file 'main.ts' main.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js index 110de4c02a4..e361cbb2204 100644 --- a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js @@ -853,7 +853,7 @@ Project '/user/username/projects/myproject/indirect3/tsconfig.json' (Configured) ../target/src/main.d.ts Imported via 'main' from file 'main.ts' main.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/projectReferences/when-files-from-two-projects-are-open-and-one-project-references.js b/tests/baselines/reference/tsserver/projectReferences/when-files-from-two-projects-are-open-and-one-project-references.js index 6697be444c3..3a9caf6e373 100644 --- a/tests/baselines/reference/tsserver/projectReferences/when-files-from-two-projects-are-open-and-one-project-references.js +++ b/tests/baselines/reference/tsserver/projectReferences/when-files-from-two-projects-are-open-and-one-project-references.js @@ -244,7 +244,7 @@ Project '/user/username/projects/myproject/main/tsconfig.json' (Configured) ../../../../../a/lib/lib.d.ts Default library for target 'es3' src/file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/main @@ -277,7 +277,7 @@ Project '/user/username/projects/myproject/core/tsconfig.json' (Configured) ../../../../../a/lib/lib.d.ts Default library for target 'es3' src/file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Search path: /user/username/projects/myproject/core @@ -316,7 +316,7 @@ Project '/user/username/projects/myproject/indirect/tsconfig.json' (Configured) ../../../../../a/lib/lib.d.ts Default library for target 'es3' src/file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Creating configuration project /user/username/projects/myproject/coreRef1/tsconfig.json @@ -337,7 +337,7 @@ Project '/user/username/projects/myproject/coreRef1/tsconfig.json' (Configured) ../../../../../a/lib/lib.d.ts Default library for target 'es3' src/file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Creating configuration project /user/username/projects/myproject/indirectDisabledChildLoad1/tsconfig.json @@ -358,7 +358,7 @@ Project '/user/username/projects/myproject/indirectDisabledChildLoad1/tsconfig.j ../../../../../a/lib/lib.d.ts Default library for target 'es3' src/file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Creating configuration project /user/username/projects/myproject/indirectDisabledChildLoad2/tsconfig.json @@ -379,7 +379,7 @@ Project '/user/username/projects/myproject/indirectDisabledChildLoad2/tsconfig.j ../../../../../a/lib/lib.d.ts Default library for target 'es3' src/file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Creating configuration project /user/username/projects/myproject/refToCoreRef3/tsconfig.json @@ -400,7 +400,7 @@ Project '/user/username/projects/myproject/refToCoreRef3/tsconfig.json' (Configu ../../../../../a/lib/lib.d.ts Default library for target 'es3' src/file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Creating configuration project /user/username/projects/myproject/coreRef3/tsconfig.json @@ -421,7 +421,7 @@ Project '/user/username/projects/myproject/coreRef3/tsconfig.json' (Configured) ../../../../../a/lib/lib.d.ts Default library for target 'es3' src/file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/core/src/file1.d.ts 2000 undefined Project: /user/username/projects/myproject/core/tsconfig.json WatchType: Missing generated file diff --git a/tests/baselines/reference/tsserver/projects/getting-errors-from-closed-script-info-does-not-throw-exception-because-of-getting-project-from-orphan-script-info.js b/tests/baselines/reference/tsserver/projects/getting-errors-from-closed-script-info-does-not-throw-exception-because-of-getting-project-from-orphan-script-info.js index d80fa072de0..559a2e338cb 100644 --- a/tests/baselines/reference/tsserver/projects/getting-errors-from-closed-script-info-does-not-throw-exception-because-of-getting-project-from-orphan-script-info.js +++ b/tests/baselines/reference/tsserver/projects/getting-errors-from-closed-script-info-does-not-throw-exception-because-of-getting-project-from-orphan-script-info.js @@ -29,7 +29,7 @@ Project '/a/b/tsconfig.json' (Configured) ../lib/lib.d.ts Default library for target 'es3' app.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Project '/a/b/tsconfig.json' (Configured) diff --git a/tests/baselines/reference/tsserver/projects/handles-delayed-directory-watch-invoke-on-file-creation.js b/tests/baselines/reference/tsserver/projects/handles-delayed-directory-watch-invoke-on-file-creation.js index fddcb0fa0e0..fba89e3066e 100644 --- a/tests/baselines/reference/tsserver/projects/handles-delayed-directory-watch-invoke-on-file-creation.js +++ b/tests/baselines/reference/tsserver/projects/handles-delayed-directory-watch-invoke-on-file-creation.js @@ -34,9 +34,9 @@ Project '/users/username/projects/project/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' sub/a.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: @@ -103,9 +103,9 @@ Project '/users/username/projects/project/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' a.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Project '/users/username/projects/project/tsconfig.json' (Configured) @@ -169,11 +169,11 @@ Project '/users/username/projects/project/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: - {"seq":0,"type":"event","event":"configFileDiag","body":{"triggerFile":"/users/username/projects/project/sub/a.ts","configFile":"/users/username/projects/project/tsconfig.json","diagnostics":[{"text":"File '/users/username/projects/project/a.ts' not found.\n The file is in the program because:\n Matched by include pattern '**/*' in '/users/username/projects/project/tsconfig.json'","code":6053,"category":"error"}]}} + {"seq":0,"type":"event","event":"configFileDiag","body":{"triggerFile":"/users/username/projects/project/sub/a.ts","configFile":"/users/username/projects/project/tsconfig.json","diagnostics":[{"text":"File '/users/username/projects/project/a.ts' not found.\n The file is in the program because:\n Matched by default include pattern '**/*'","code":6053,"category":"error"}]}} Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /users/username/projects/project/sub/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root FileWatcher:: Added:: WatchInfo: /users/username/projects/project/sub/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root @@ -275,9 +275,9 @@ Project '/users/username/projects/project/tsconfig.json' (Configured) ../../../../a/lib/lib.d.ts Default library for target 'es3' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' sub/a.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- event: diff --git a/tests/baselines/reference/tsserver/resolutionCache/renaming-module-should-restore-the-states-for-configured-projects.js b/tests/baselines/reference/tsserver/resolutionCache/renaming-module-should-restore-the-states-for-configured-projects.js index ba3251738cc..19d2f003e8a 100644 --- a/tests/baselines/reference/tsserver/resolutionCache/renaming-module-should-restore-the-states-for-configured-projects.js +++ b/tests/baselines/reference/tsserver/resolutionCache/renaming-module-should-restore-the-states-for-configured-projects.js @@ -30,9 +30,9 @@ Project '/a/b/tsconfig.json' (Configured) moduleFile.ts Imported via './moduleFile' from file 'file1.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Project '/a/b/tsconfig.json' (Configured) @@ -73,9 +73,9 @@ Project '/a/b/tsconfig.json' (Configured) file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' moduleFile1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Running: *ensureProjectForOpenFiles* @@ -135,9 +135,9 @@ Project '/a/b/tsconfig.json' (Configured) moduleFile.ts Imported via './moduleFile' from file 'file1.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' file1.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- response:{"response":[],"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/symLinks/rename-in-common-file-renames-all-project.js b/tests/baselines/reference/tsserver/symLinks/rename-in-common-file-renames-all-project.js index 8c65341cf39..fc37325f98e 100644 --- a/tests/baselines/reference/tsserver/symLinks/rename-in-common-file-renames-all-project.js +++ b/tests/baselines/reference/tsserver/symLinks/rename-in-common-file-renames-all-project.js @@ -34,9 +34,9 @@ Project '/users/username/projects/a/tsconfig.json' (Configured) Default library for target 'es3' c/fc.ts Imported via "./c/fc" from file 'a.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' a.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Project '/users/username/projects/a/tsconfig.json' (Configured) @@ -81,9 +81,9 @@ Project '/users/username/projects/b/tsconfig.json' (Configured) Default library for target 'es3' c/fc.ts Imported via "./c/fc" from file 'b.ts' - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' b.ts - Matched by include pattern '**/*' in 'tsconfig.json' + Matched by default include pattern '**/*' ----------------------------------------------- Project '/users/username/projects/a/tsconfig.json' (Configured) From 8bf45a4f93f2249f4ae72bba1ca16343b391b80a Mon Sep 17 00:00:00 2001 From: Justin Grant Date: Tue, 10 May 2022 16:06:08 -0700 Subject: [PATCH 31/64] fix: update types for RTF.p.formatToParts() result (#46508) This commit updates the type of `RelativeTimeFormatPart` to clarify that the `unit` prop is always singular, unlike the plural or singular values that are accepted as inputs. This also changes `RelativeTimeFormatPart` to be a discriminated union type because the `unit` prop is only present if the `type` prop's value is not "literal". Fixes #46245 --- src/lib/es2020.intl.d.ts | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/lib/es2020.intl.d.ts b/src/lib/es2020.intl.d.ts index 9a548e9ec4f..c74f0566ca0 100644 --- a/src/lib/es2020.intl.d.ts +++ b/src/lib/es2020.intl.d.ts @@ -30,6 +30,25 @@ declare namespace Intl { | "second" | "seconds"; + /** + * Value of the `unit` property in objects returned by + * `Intl.RelativeTimeFormat.prototype.formatToParts()`. `formatToParts` and + * `format` methods accept either singular or plural unit names as input, + * but `formatToParts` only outputs singular (e.g. "day") not plural (e.g. + * "days"). + * + * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts). + */ + type RelativeTimeFormatUnitSingular = + | "year" + | "quarter" + | "month" + | "week" + | "day" + | "hour" + | "minute" + | "second"; + /** * The locale matching algorithm to use. * @@ -100,11 +119,16 @@ declare namespace Intl { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts). */ - interface RelativeTimeFormatPart { - type: string; - value: string; - unit?: RelativeTimeFormatUnit; - } + type RelativeTimeFormatPart = + | { + type: "literal"; + value: string; + } + | { + type: Exclude; + value: string; + unit: RelativeTimeFormatUnitSingular; + }; interface RelativeTimeFormat { /** From 08b1cce5957bb12ae7324ebe570cc8b4ddf75e13 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Tue, 10 May 2022 16:27:46 -0700 Subject: [PATCH 32/64] Add regression test for #46192 (#49057) --- src/harness/fourslashInterfaceImpl.ts | 4 +- .../autoImportPathsAliasesAndBarrels.ts | 59 +++++++++++++++++++ tests/cases/fourslash/fourslash.ts | 2 +- 3 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 tests/cases/fourslash/autoImportPathsAliasesAndBarrels.ts diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index 6eb4414df25..a4412ca8826 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -404,8 +404,8 @@ namespace FourSlashInterface { this.state.baselineSignatureHelp(); } - public baselineCompletions() { - this.state.baselineCompletions(); + public baselineCompletions(preferences?: ts.UserPreferences) { + this.state.baselineCompletions(preferences); } public baselineSmartSelection() { diff --git a/tests/cases/fourslash/autoImportPathsAliasesAndBarrels.ts b/tests/cases/fourslash/autoImportPathsAliasesAndBarrels.ts new file mode 100644 index 00000000000..3225645cbfb --- /dev/null +++ b/tests/cases/fourslash/autoImportPathsAliasesAndBarrels.ts @@ -0,0 +1,59 @@ +/// + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "commonjs", +//// "paths": { +//// "~/*": ["src/*"] +//// } +//// } +////} + +// @Filename: /src/dirA/index.ts +//// export * from "./thing1A"; +//// export * from "./thing2A"; + +// @Filename: /src/dirA/thing1A.ts +//// export class Thing1A {} +//// Thing/**/ + +// @Filename: /src/dirA/thing2A.ts +//// export class Thing2A {} + +// @Filename: /src/dirB/index.ts +//// export * from "./thing1B"; +//// export * from "./thing2B"; + +// @Filename: /src/dirB/thing1B.ts +//// export class Thing1B {} + +// @Filename: /src/dirB/thing2B.ts +//// export class Thing2B {} + +verify.completions({ + marker: "", + includes: [{ + name: "Thing2A", + source: "./thing2A", + sourceDisplay: "./thing2A", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, { + name: "Thing1B", + source: "~/dirB", + sourceDisplay: "~/dirB", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, { + name: "Thing2B", + source: "~/dirB", + sourceDisplay: "~/dirB", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }], + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 93aca2cfb1f..79e0f52cb58 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -349,7 +349,7 @@ declare namespace FourSlashInterface { baselineSyntacticDiagnostics(): void; baselineSyntacticAndSemanticDiagnostics(): void; getEmitOutput(expectedOutputFiles: ReadonlyArray): void; - baselineCompletions(): void; + baselineCompletions(preferences?: UserPreferences): void; baselineQuickInfo(): void; baselineSmartSelection(): void; baselineSignatureHelp(): void; From 7a3c31f9f92f7c4bad69aef92a307203eada714f Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 11 May 2022 00:07:29 +0000 Subject: [PATCH 33/64] Accepted es2020Intl baseline. --- tests/baselines/reference/es2020IntlAPIs.errors.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/baselines/reference/es2020IntlAPIs.errors.txt b/tests/baselines/reference/es2020IntlAPIs.errors.txt index 95b447d43f1..cdd0156581a 100644 --- a/tests/baselines/reference/es2020IntlAPIs.errors.txt +++ b/tests/baselines/reference/es2020IntlAPIs.errors.txt @@ -53,22 +53,22 @@ tests/cases/conformance/es2020/es2020IntlAPIs.ts(50,29): error TS2345: Argument new Intl.Locale(); // should error ~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 1-2 arguments, but got 0. -!!! related TS6210 /.ts/lib.es2020.intl.d.ts:311:14: An argument for 'tag' was not provided. +!!! related TS6210 /.ts/lib.es2020.intl.d.ts:335:14: An argument for 'tag' was not provided. new Intl.Locale(new Intl.Locale('en-US')); new Intl.DisplayNames(); // TypeError: invalid_argument ~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 2 arguments, but got 0. -!!! related TS6210 /.ts/lib.es2020.intl.d.ts:390:13: An argument for 'locales' was not provided. +!!! related TS6210 /.ts/lib.es2020.intl.d.ts:414:13: An argument for 'locales' was not provided. new Intl.DisplayNames('en'); // TypeError: invalid_argument ~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 2 arguments, but got 1. -!!! related TS6210 /.ts/lib.es2020.intl.d.ts:390:39: An argument for 'options' was not provided. +!!! related TS6210 /.ts/lib.es2020.intl.d.ts:414:39: An argument for 'options' was not provided. new Intl.DisplayNames('en', {}); // TypeError: invalid_argument ~~ !!! error TS2345: Argument of type '{}' is not assignable to parameter of type 'DisplayNamesOptions'. !!! error TS2345: Property 'type' is missing in type '{}' but required in type 'DisplayNamesOptions'. -!!! related TS2728 /.ts/lib.es2020.intl.d.ts:333:9: 'type' is declared here. +!!! related TS2728 /.ts/lib.es2020.intl.d.ts:357:9: 'type' is declared here. console.log((new Intl.DisplayNames(undefined, {type: 'language'})).of('en-GB')); // "British English" const localesArg = ["es-ES", new Intl.Locale("en-US")]; From cfbb517f357b7f33a2c896346d4e64d2f1ae16a8 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Wed, 11 May 2022 06:07:52 +0000 Subject: [PATCH 34/64] Update package-lock.json --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 48355a16ece..1e7fd508fb0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -638,9 +638,9 @@ "dev": true }, "@types/node": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", - "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==", + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", + "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==", "dev": true }, "@types/node-fetch": { From 3c8717060452f62d3cf924e3e5bfcd4eca9bc1a1 Mon Sep 17 00:00:00 2001 From: csigs Date: Wed, 11 May 2022 08:29:06 -0700 Subject: [PATCH 35/64] LEGO: Merge pull request 49069 LEGO: Merge pull request 49069 --- .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ 4 files changed, 36 insertions(+) diff --git a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl index 8ef252de28c..71b649ec585 100644 --- a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11115,6 +11115,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl index 19804537abd..473853cf97e 100644 --- a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11115,6 +11115,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl index 10636017b21..3542ebb24fc 100644 --- a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11127,6 +11127,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl index 1641ebc6100..cf6429a85fa 100644 --- a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -11108,6 +11108,15 @@ + + + + + + + + + From 5c2febfe026614834ce5a8d4954c7ff3c0914f50 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Wed, 11 May 2022 11:44:59 -0700 Subject: [PATCH 36/64] Allow referencing type-only exports as namespace members in ImportTypes and TypeQueries (#49056) * Allow referencing type-only exports as namespace members in ImportTypes and TypeQueries * Add extra test case * ;; -> ; * undefined -> false Co-authored-by: Daniel Rosenwasser --- src/compiler/checker.ts | 16 ++--- .../namespaceImportTypeQuery.errors.txt | 15 ++++- .../reference/namespaceImportTypeQuery.js | 13 +++++ .../namespaceImportTypeQuery.symbols | 17 ++++++ .../reference/namespaceImportTypeQuery.types | 24 +++++++- .../reference/typeofImportTypeOnlyExport.js | 58 +++++++++++++++++++ .../typeofImportTypeOnlyExport.symbols | 35 +++++++++++ .../typeofImportTypeOnlyExport.types | 40 +++++++++++++ .../typeofImportTypeOnlyExport.ts | 18 ++++++ .../typeOnly/namespaceImportTypeQuery.ts | 7 +++ 10 files changed, 230 insertions(+), 13 deletions(-) create mode 100644 tests/baselines/reference/typeofImportTypeOnlyExport.js create mode 100644 tests/baselines/reference/typeofImportTypeOnlyExport.symbols create mode 100644 tests/baselines/reference/typeofImportTypeOnlyExport.types create mode 100644 tests/cases/conformance/declarationEmit/typeofImportTypeOnlyExport.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 025eeecc306..6ba0d793501 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4110,8 +4110,10 @@ namespace ts { return getMergedSymbol(symbol && (symbol.flags & SymbolFlags.ExportValue) !== 0 && symbol.exportSymbol || symbol); } - function symbolIsValue(symbol: Symbol): boolean { - return !!(symbol.flags & SymbolFlags.Value || symbol.flags & SymbolFlags.Alias && resolveAlias(symbol).flags & SymbolFlags.Value && !getTypeOnlyAliasDeclaration(symbol)); + function symbolIsValue(symbol: Symbol, includeTypeOnlyMembers?: boolean): boolean { + return !!( + symbol.flags & SymbolFlags.Value || + symbol.flags & SymbolFlags.Alias && resolveAlias(symbol).flags & SymbolFlags.Value && (includeTypeOnlyMembers || !getTypeOnlyAliasDeclaration(symbol))); } function findConstructorDeclaration(node: ClassLikeDeclaration): ConstructorDeclaration | undefined { @@ -12575,12 +12577,12 @@ namespace ts { * @param type a type to look up property from * @param name a name of property to look up in a given type */ - function getPropertyOfType(type: Type, name: __String, skipObjectFunctionPropertyAugment?: boolean): Symbol | undefined { + function getPropertyOfType(type: Type, name: __String, skipObjectFunctionPropertyAugment?: boolean, includeTypeOnlyMembers?: boolean): Symbol | undefined { type = getReducedApparentType(type); if (type.flags & TypeFlags.Object) { const resolved = resolveStructuredTypeMembers(type as ObjectType); const symbol = resolved.members.get(name); - if (symbol && symbolIsValue(symbol)) { + if (symbol && symbolIsValue(symbol, includeTypeOnlyMembers)) { return symbol; } if (skipObjectFunctionPropertyAugment) return undefined; @@ -16208,7 +16210,7 @@ namespace ts { // the `exports` lookup process that only looks up namespace members which is used for most type references const mergedResolvedSymbol = getMergedSymbol(resolveSymbol(currentNamespace)); const next = node.isTypeOf - ? getPropertyOfType(getTypeOfSymbol(mergedResolvedSymbol), current.escapedText) + ? getPropertyOfType(getTypeOfSymbol(mergedResolvedSymbol), current.escapedText, /*skipObjectFunctionPropertyAugment*/ false, /*includeTypeOnlyMembers*/ true) : getSymbol(getExportsOfSymbol(mergedResolvedSymbol), current.escapedText, meaning); if (!next) { error(current, Diagnostics.Namespace_0_has_no_exported_member_1, getFullyQualifiedName(currentNamespace), declarationNameToString(current)); @@ -28995,9 +28997,9 @@ namespace ts { if (isIdentifier(left) && parentSymbol) { markAliasReferenced(parentSymbol, node); } - return isErrorType(apparentType) ? errorType : apparentType;; + return isErrorType(apparentType) ? errorType : apparentType; } - prop = getPropertyOfType(apparentType, right.escapedText); + prop = getPropertyOfType(apparentType, right.escapedText, /*skipObjectFunctionPropertyAugment*/ false, /*includeTypeOnlyMembers*/ node.kind === SyntaxKind.QualifiedName); } // In `Foo.Bar.Baz`, 'Foo' is not referenced if 'Bar' is a const enum or a module containing only const enums. // `Foo` is also not referenced in `enum FooCopy { Bar = Foo.Bar }`, because the enum member value gets inlined diff --git a/tests/baselines/reference/namespaceImportTypeQuery.errors.txt b/tests/baselines/reference/namespaceImportTypeQuery.errors.txt index 5036215385d..928882d2b17 100644 --- a/tests/baselines/reference/namespaceImportTypeQuery.errors.txt +++ b/tests/baselines/reference/namespaceImportTypeQuery.errors.txt @@ -1,4 +1,5 @@ -/b.ts(2,21): error TS2339: Property 'A' does not exist on type 'typeof import("/a")'. +/b.ts(8,3): error TS2322: Type '{ A: any; B: any; }' is not assignable to type 'typeof import("/a")'. + Object literal may only specify known properties, and 'A' does not exist in type 'typeof import("/a")'. ==== /a.ts (0 errors) ==== @@ -9,7 +10,15 @@ ==== /b.ts (1 errors) ==== import * as types from './a'; let A: typeof types.A; - ~ -!!! error TS2339: Property 'A' does not exist on type 'typeof import("/a")'. let B: typeof types.B; + + let t: typeof types = { + // error: while you can ask for `typeof types.A`, + // `typeof types` does not include `A` + A: undefined as any, + ~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ A: any; B: any; }' is not assignable to type 'typeof import("/a")'. +!!! error TS2322: Object literal may only specify known properties, and 'A' does not exist in type 'typeof import("/a")'. + B: undefined as any, + } \ No newline at end of file diff --git a/tests/baselines/reference/namespaceImportTypeQuery.js b/tests/baselines/reference/namespaceImportTypeQuery.js index 18ea6343521..33746b223b1 100644 --- a/tests/baselines/reference/namespaceImportTypeQuery.js +++ b/tests/baselines/reference/namespaceImportTypeQuery.js @@ -9,6 +9,13 @@ export class B {}; import * as types from './a'; let A: typeof types.A; let B: typeof types.B; + +let t: typeof types = { + // error: while you can ask for `typeof types.A`, + // `typeof types` does not include `A` + A: undefined as any, + B: undefined as any, +} //// [a.js] @@ -32,3 +39,9 @@ exports.B = B; exports.__esModule = true; var A; var B; +var t = { + // error: while you can ask for `typeof types.A`, + // `typeof types` does not include `A` + A: undefined, + B: undefined +}; diff --git a/tests/baselines/reference/namespaceImportTypeQuery.symbols b/tests/baselines/reference/namespaceImportTypeQuery.symbols index 9851b31b6b0..30b8694f602 100644 --- a/tests/baselines/reference/namespaceImportTypeQuery.symbols +++ b/tests/baselines/reference/namespaceImportTypeQuery.symbols @@ -14,7 +14,9 @@ import * as types from './a'; let A: typeof types.A; >A : Symbol(A, Decl(b.ts, 1, 3)) +>types.A : Symbol(types.A, Decl(a.ts, 1, 13)) >types : Symbol(types, Decl(b.ts, 0, 6)) +>A : Symbol(types.A, Decl(a.ts, 1, 13)) let B: typeof types.B; >B : Symbol(B, Decl(b.ts, 2, 3)) @@ -22,3 +24,18 @@ let B: typeof types.B; >types : Symbol(types, Decl(b.ts, 0, 6)) >B : Symbol(types.B, Decl(a.ts, 1, 18)) +let t: typeof types = { +>t : Symbol(t, Decl(b.ts, 4, 3)) +>types : Symbol(types, Decl(b.ts, 0, 6)) + + // error: while you can ask for `typeof types.A`, + // `typeof types` does not include `A` + A: undefined as any, +>A : Symbol(A, Decl(b.ts, 4, 23)) +>undefined : Symbol(undefined) + + B: undefined as any, +>B : Symbol(B, Decl(b.ts, 7, 22)) +>undefined : Symbol(undefined) +} + diff --git a/tests/baselines/reference/namespaceImportTypeQuery.types b/tests/baselines/reference/namespaceImportTypeQuery.types index 273a46b1507..6023d0961d5 100644 --- a/tests/baselines/reference/namespaceImportTypeQuery.types +++ b/tests/baselines/reference/namespaceImportTypeQuery.types @@ -13,10 +13,10 @@ import * as types from './a'; >types : typeof types let A: typeof types.A; ->A : any ->types.A : any +>A : typeof types.A +>types.A : typeof types.A >types : typeof types ->A : any +>A : typeof types.A let B: typeof types.B; >B : typeof types.B @@ -24,3 +24,21 @@ let B: typeof types.B; >types : typeof types >B : typeof types.B +let t: typeof types = { +>t : typeof types +>types : typeof types +>{ // error: while you can ask for `typeof types.A`, // `typeof types` does not include `A` A: undefined as any, B: undefined as any,} : { A: any; B: any; } + + // error: while you can ask for `typeof types.A`, + // `typeof types` does not include `A` + A: undefined as any, +>A : any +>undefined as any : any +>undefined : undefined + + B: undefined as any, +>B : any +>undefined as any : any +>undefined : undefined +} + diff --git a/tests/baselines/reference/typeofImportTypeOnlyExport.js b/tests/baselines/reference/typeofImportTypeOnlyExport.js new file mode 100644 index 00000000000..b9cbd6ec647 --- /dev/null +++ b/tests/baselines/reference/typeofImportTypeOnlyExport.js @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/declarationEmit/typeofImportTypeOnlyExport.ts] //// + +//// [button.ts] +import {classMap} from './lit.js'; +export const c = classMap(); + +//// [lit.ts] +class ClassMapDirective {} + +export type {ClassMapDirective}; + +export const directive = + (class_: C) => + () => ({ + directive: class_, + }); + +export const classMap = directive(ClassMapDirective); + + +//// [lit.js] +"use strict"; +exports.__esModule = true; +exports.classMap = exports.directive = void 0; +var ClassMapDirective = /** @class */ (function () { + function ClassMapDirective() { + } + return ClassMapDirective; +}()); +var directive = function (class_) { + return function () { return ({ + directive: class_ + }); }; +}; +exports.directive = directive; +exports.classMap = (0, exports.directive)(ClassMapDirective); +//// [button.js] +"use strict"; +exports.__esModule = true; +exports.c = void 0; +var lit_js_1 = require("./lit.js"); +exports.c = (0, lit_js_1.classMap)(); + + +//// [lit.d.ts] +declare class ClassMapDirective { +} +export type { ClassMapDirective }; +export declare const directive: (class_: C) => () => { + directive: C; +}; +export declare const classMap: () => { + directive: typeof ClassMapDirective; +}; +//// [button.d.ts] +export declare const c: { + directive: typeof import("./lit.js").ClassMapDirective; +}; diff --git a/tests/baselines/reference/typeofImportTypeOnlyExport.symbols b/tests/baselines/reference/typeofImportTypeOnlyExport.symbols new file mode 100644 index 00000000000..512c80aa946 --- /dev/null +++ b/tests/baselines/reference/typeofImportTypeOnlyExport.symbols @@ -0,0 +1,35 @@ +=== tests/cases/conformance/declarationEmit/button.ts === +import {classMap} from './lit.js'; +>classMap : Symbol(classMap, Decl(button.ts, 0, 8)) + +export const c = classMap(); +>c : Symbol(c, Decl(button.ts, 1, 12)) +>classMap : Symbol(classMap, Decl(button.ts, 0, 8)) + +=== tests/cases/conformance/declarationEmit/lit.ts === +class ClassMapDirective {} +>ClassMapDirective : Symbol(ClassMapDirective, Decl(lit.ts, 0, 0)) + +export type {ClassMapDirective}; +>ClassMapDirective : Symbol(ClassMapDirective, Decl(lit.ts, 2, 13)) + +export const directive = +>directive : Symbol(directive, Decl(lit.ts, 4, 12)) + + (class_: C) => +>C : Symbol(C, Decl(lit.ts, 5, 3)) +>class_ : Symbol(class_, Decl(lit.ts, 5, 6)) +>C : Symbol(C, Decl(lit.ts, 5, 3)) + + () => ({ + directive: class_, +>directive : Symbol(directive, Decl(lit.ts, 6, 10)) +>class_ : Symbol(class_, Decl(lit.ts, 5, 6)) + + }); + +export const classMap = directive(ClassMapDirective); +>classMap : Symbol(classMap, Decl(lit.ts, 10, 12)) +>directive : Symbol(directive, Decl(lit.ts, 4, 12)) +>ClassMapDirective : Symbol(ClassMapDirective, Decl(lit.ts, 0, 0)) + diff --git a/tests/baselines/reference/typeofImportTypeOnlyExport.types b/tests/baselines/reference/typeofImportTypeOnlyExport.types new file mode 100644 index 00000000000..6bc89508687 --- /dev/null +++ b/tests/baselines/reference/typeofImportTypeOnlyExport.types @@ -0,0 +1,40 @@ +=== tests/cases/conformance/declarationEmit/button.ts === +import {classMap} from './lit.js'; +>classMap : () => { directive: typeof import("tests/cases/conformance/declarationEmit/lit").ClassMapDirective; } + +export const c = classMap(); +>c : { directive: typeof import("tests/cases/conformance/declarationEmit/lit").ClassMapDirective; } +>classMap() : { directive: typeof import("tests/cases/conformance/declarationEmit/lit").ClassMapDirective; } +>classMap : () => { directive: typeof import("tests/cases/conformance/declarationEmit/lit").ClassMapDirective; } + +=== tests/cases/conformance/declarationEmit/lit.ts === +class ClassMapDirective {} +>ClassMapDirective : ClassMapDirective + +export type {ClassMapDirective}; +>ClassMapDirective : ClassMapDirective + +export const directive = +>directive : (class_: C) => () => { directive: C; } + + (class_: C) => +>(class_: C) => () => ({ directive: class_, }) : (class_: C) => () => { directive: C; } +>class_ : C + + () => ({ +>() => ({ directive: class_, }) : () => { directive: C; } +>({ directive: class_, }) : { directive: C; } +>{ directive: class_, } : { directive: C; } + + directive: class_, +>directive : C +>class_ : C + + }); + +export const classMap = directive(ClassMapDirective); +>classMap : () => { directive: typeof ClassMapDirective; } +>directive(ClassMapDirective) : () => { directive: typeof ClassMapDirective; } +>directive : (class_: C) => () => { directive: C; } +>ClassMapDirective : typeof ClassMapDirective + diff --git a/tests/cases/conformance/declarationEmit/typeofImportTypeOnlyExport.ts b/tests/cases/conformance/declarationEmit/typeofImportTypeOnlyExport.ts new file mode 100644 index 00000000000..aabf57bcc01 --- /dev/null +++ b/tests/cases/conformance/declarationEmit/typeofImportTypeOnlyExport.ts @@ -0,0 +1,18 @@ +// @declaration: true + +// @Filename: button.ts +import {classMap} from './lit.js'; +export const c = classMap(); + +// @Filename: lit.ts +class ClassMapDirective {} + +export type {ClassMapDirective}; + +export const directive = + (class_: C) => + () => ({ + directive: class_, + }); + +export const classMap = directive(ClassMapDirective); diff --git a/tests/cases/conformance/externalModules/typeOnly/namespaceImportTypeQuery.ts b/tests/cases/conformance/externalModules/typeOnly/namespaceImportTypeQuery.ts index 10e8e020158..f82f26607b0 100644 --- a/tests/cases/conformance/externalModules/typeOnly/namespaceImportTypeQuery.ts +++ b/tests/cases/conformance/externalModules/typeOnly/namespaceImportTypeQuery.ts @@ -7,3 +7,10 @@ export class B {}; import * as types from './a'; let A: typeof types.A; let B: typeof types.B; + +let t: typeof types = { + // error: while you can ask for `typeof types.A`, + // `typeof types` does not include `A` + A: undefined as any, + B: undefined as any, +} From c300fea3250abd7f75920d95a58d9e742ac730ee Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Thu, 12 May 2022 00:47:35 +0300 Subject: [PATCH 37/64] fix(7410): allow using JSXElement as JSXAttributeValue (#47994) --- src/compiler/diagnosticMessages.json | 4 ++ src/compiler/factory/nodeFactory.ts | 4 +- src/compiler/parser.ts | 26 +++++++----- src/compiler/transformers/jsx.ts | 17 +++++--- src/compiler/types.ts | 13 ++++-- .../reference/api/tsserverlibrary.d.ts | 11 ++--- tests/baselines/reference/api/typescript.d.ts | 11 ++--- ...ributeInitializer(jsx=preserve).errors.txt | 15 +++++++ .../jsxAttributeInitializer(jsx=preserve).js | 18 +++++++++ ...AttributeInitializer(jsx=preserve).symbols | 19 +++++++++ ...sxAttributeInitializer(jsx=preserve).types | 40 +++++++++++++++++++ ...AttributeInitializer(jsx=react).errors.txt | 15 +++++++ .../jsxAttributeInitializer(jsx=react).js | 18 +++++++++ ...jsxAttributeInitializer(jsx=react).symbols | 19 +++++++++ .../jsxAttributeInitializer(jsx=react).types | 40 +++++++++++++++++++ .../jsxAttributeMissingInitializer.errors.txt | 4 +- .../jsxEsprimaFbTestSuite.errors.txt | 20 +--------- .../reference/jsxEsprimaFbTestSuite.js | 3 +- .../reference/jsxEsprimaFbTestSuite.symbols | 1 + .../reference/jsxEsprimaFbTestSuite.types | 10 +---- .../jsxInvalidEsprimaTestSuite.errors.txt | 17 +++----- .../reference/jsxInvalidEsprimaTestSuite.js | 4 +- .../jsxInvalidEsprimaTestSuite.types | 3 +- .../jsx/jsxAttributeInitializer.ts | 10 +++++ 24 files changed, 266 insertions(+), 76 deletions(-) create mode 100644 tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).errors.txt create mode 100644 tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).js create mode 100644 tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).symbols create mode 100644 tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).types create mode 100644 tests/baselines/reference/jsxAttributeInitializer(jsx=react).errors.txt create mode 100644 tests/baselines/reference/jsxAttributeInitializer(jsx=react).js create mode 100644 tests/baselines/reference/jsxAttributeInitializer(jsx=react).symbols create mode 100644 tests/baselines/reference/jsxAttributeInitializer(jsx=react).types create mode 100644 tests/cases/conformance/jsx/jsxAttributeInitializer.ts diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index fa6b9fd3efc..c3a6edfcfb0 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -435,6 +435,10 @@ "category": "Error", "code": 1144 }, + "'{' or JSX element expected.": { + "category": "Error", + "code": 1145 + }, "Declaration expected.": { "category": "Error", "code": 1146 diff --git a/src/compiler/factory/nodeFactory.ts b/src/compiler/factory/nodeFactory.ts index 9028c521a13..4d171a842c2 100644 --- a/src/compiler/factory/nodeFactory.ts +++ b/src/compiler/factory/nodeFactory.ts @@ -4964,7 +4964,7 @@ namespace ts { } // @api - function createJsxAttribute(name: Identifier, initializer: StringLiteral | JsxExpression | undefined) { + function createJsxAttribute(name: Identifier, initializer: JsxAttributeValue | undefined) { const node = createBaseNode(SyntaxKind.JsxAttribute); node.name = name; node.initializer = initializer; @@ -4976,7 +4976,7 @@ namespace ts { } // @api - function updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression | undefined) { + function updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined) { return node.name !== name || node.initializer !== initializer ? update(createJsxAttribute(name, initializer), node) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 755c583b718..1b502dfc22f 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -5454,15 +5454,23 @@ namespace ts { scanJsxIdentifier(); const pos = getNodePos(); - return finishNode( - factory.createJsxAttribute( - parseIdentifierName(), - token() !== SyntaxKind.EqualsToken ? undefined : - scanJsxAttributeValue() === SyntaxKind.StringLiteral ? parseLiteralNode() as StringLiteral : - parseJsxExpression(/*inExpressionContext*/ true) - ), - pos - ); + return finishNode(factory.createJsxAttribute(parseIdentifierName(), parseJsxAttributeValue()), pos); + } + + function parseJsxAttributeValue(): JsxAttributeValue | undefined { + if (token() === SyntaxKind.EqualsToken) { + if (scanJsxAttributeValue() === SyntaxKind.StringLiteral) { + return parseLiteralNode() as StringLiteral; + } + if (token() === SyntaxKind.OpenBraceToken) { + return parseJsxExpression(/*inExpressionContext*/ true); + } + if (token() === SyntaxKind.LessThanToken) { + return parseJsxElementOrSelfClosingElementOrFragment(/*inExpressionContext*/ true); + } + parseErrorAtCurrentToken(Diagnostics.or_JSX_element_expected); + } + return undefined; } function parseJsxSpreadAttribute(): JsxSpreadAttribute { diff --git a/src/compiler/transformers/jsx.ts b/src/compiler/transformers/jsx.ts index d321e74817b..2e6fe4ea1b9 100644 --- a/src/compiler/transformers/jsx.ts +++ b/src/compiler/transformers/jsx.ts @@ -400,26 +400,33 @@ namespace ts { return factory.createPropertyAssignment(name, expression); } - function transformJsxAttributeInitializer(node: StringLiteral | JsxExpression | undefined): Expression { + function transformJsxAttributeInitializer(node: JsxAttributeValue | undefined): Expression { if (node === undefined) { return factory.createTrue(); } - else if (node.kind === SyntaxKind.StringLiteral) { + if (node.kind === SyntaxKind.StringLiteral) { // Always recreate the literal to escape any escape sequences or newlines which may be in the original jsx string and which // Need to be escaped to be handled correctly in a normal string const singleQuote = node.singleQuote !== undefined ? node.singleQuote : !isStringDoubleQuoted(node, currentSourceFile); const literal = factory.createStringLiteral(tryDecodeEntities(node.text) || node.text, singleQuote); return setTextRange(literal, node); } - else if (node.kind === SyntaxKind.JsxExpression) { + if (node.kind === SyntaxKind.JsxExpression) { if (node.expression === undefined) { return factory.createTrue(); } return visitNode(node.expression, visitor, isExpression); } - else { - return Debug.failBadSyntaxKind(node); + if (isJsxElement(node)) { + return visitJsxElement(node, /*isChild*/ false); } + if (isJsxSelfClosingElement(node)) { + return visitJsxSelfClosingElement(node, /*isChild*/ false); + } + if (isJsxFragment(node)) { + return visitJsxFragment(node, /*isChild*/ false); + } + return Debug.failBadSyntaxKind(node); } function visitJsxText(node: JsxText): StringLiteral | undefined { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 717f8029178..db071689cd3 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -2612,9 +2612,16 @@ namespace ts { readonly parent: JsxAttributes; readonly name: Identifier; /// JSX attribute initializers are optional; is sugar for - readonly initializer?: StringLiteral | JsxExpression; + readonly initializer?: JsxAttributeValue; } + export type JsxAttributeValue = + | StringLiteral + | JsxExpression + | JsxElement + | JsxSelfClosingElement + | JsxFragment; + export interface JsxSpreadAttribute extends ObjectLiteralElement { readonly kind: SyntaxKind.JsxSpreadAttribute; readonly parent: JsxAttributes; @@ -7680,8 +7687,8 @@ namespace ts { createJsxOpeningFragment(): JsxOpeningFragment; createJsxJsxClosingFragment(): JsxClosingFragment; updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; - createJsxAttribute(name: Identifier, initializer: StringLiteral | JsxExpression | undefined): JsxAttribute; - updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression | undefined): JsxAttribute; + createJsxAttribute(name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; + updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; createJsxAttributes(properties: readonly JsxAttributeLike[]): JsxAttributes; updateJsxAttributes(node: JsxAttributes, properties: readonly JsxAttributeLike[]): JsxAttributes; createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute; diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index 260e74c4f32..97b3a541820 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -1388,8 +1388,9 @@ declare namespace ts { readonly kind: SyntaxKind.JsxAttribute; readonly parent: JsxAttributes; readonly name: Identifier; - readonly initializer?: StringLiteral | JsxExpression; + readonly initializer?: JsxAttributeValue; } + export type JsxAttributeValue = StringLiteral | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; export interface JsxSpreadAttribute extends ObjectLiteralElement { readonly kind: SyntaxKind.JsxSpreadAttribute; readonly parent: JsxAttributes; @@ -3746,8 +3747,8 @@ declare namespace ts { createJsxOpeningFragment(): JsxOpeningFragment; createJsxJsxClosingFragment(): JsxClosingFragment; updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; - createJsxAttribute(name: Identifier, initializer: StringLiteral | JsxExpression | undefined): JsxAttribute; - updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression | undefined): JsxAttribute; + createJsxAttribute(name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; + updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; createJsxAttributes(properties: readonly JsxAttributeLike[]): JsxAttributes; updateJsxAttributes(node: JsxAttributes, properties: readonly JsxAttributeLike[]): JsxAttributes; createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute; @@ -11339,9 +11340,9 @@ declare namespace ts { /** @deprecated Use `factory.updateJsxFragment` or the factory supplied by your transformation context instead. */ const updateJsxFragment: (node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment) => JsxFragment; /** @deprecated Use `factory.createJsxAttribute` or the factory supplied by your transformation context instead. */ - const createJsxAttribute: (name: Identifier, initializer: StringLiteral | JsxExpression | undefined) => JsxAttribute; + const createJsxAttribute: (name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; /** @deprecated Use `factory.updateJsxAttribute` or the factory supplied by your transformation context instead. */ - const updateJsxAttribute: (node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression | undefined) => JsxAttribute; + const updateJsxAttribute: (node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; /** @deprecated Use `factory.createJsxAttributes` or the factory supplied by your transformation context instead. */ const createJsxAttributes: (properties: readonly JsxAttributeLike[]) => JsxAttributes; /** @deprecated Use `factory.updateJsxAttributes` or the factory supplied by your transformation context instead. */ diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index a1bde2444e7..2b3ffba10cb 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -1388,8 +1388,9 @@ declare namespace ts { readonly kind: SyntaxKind.JsxAttribute; readonly parent: JsxAttributes; readonly name: Identifier; - readonly initializer?: StringLiteral | JsxExpression; + readonly initializer?: JsxAttributeValue; } + export type JsxAttributeValue = StringLiteral | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; export interface JsxSpreadAttribute extends ObjectLiteralElement { readonly kind: SyntaxKind.JsxSpreadAttribute; readonly parent: JsxAttributes; @@ -3746,8 +3747,8 @@ declare namespace ts { createJsxOpeningFragment(): JsxOpeningFragment; createJsxJsxClosingFragment(): JsxClosingFragment; updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment; - createJsxAttribute(name: Identifier, initializer: StringLiteral | JsxExpression | undefined): JsxAttribute; - updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression | undefined): JsxAttribute; + createJsxAttribute(name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; + updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined): JsxAttribute; createJsxAttributes(properties: readonly JsxAttributeLike[]): JsxAttributes; updateJsxAttributes(node: JsxAttributes, properties: readonly JsxAttributeLike[]): JsxAttributes; createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute; @@ -7481,9 +7482,9 @@ declare namespace ts { /** @deprecated Use `factory.updateJsxFragment` or the factory supplied by your transformation context instead. */ const updateJsxFragment: (node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment) => JsxFragment; /** @deprecated Use `factory.createJsxAttribute` or the factory supplied by your transformation context instead. */ - const createJsxAttribute: (name: Identifier, initializer: StringLiteral | JsxExpression | undefined) => JsxAttribute; + const createJsxAttribute: (name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; /** @deprecated Use `factory.updateJsxAttribute` or the factory supplied by your transformation context instead. */ - const updateJsxAttribute: (node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression | undefined) => JsxAttribute; + const updateJsxAttribute: (node: JsxAttribute, name: Identifier, initializer: JsxAttributeValue | undefined) => JsxAttribute; /** @deprecated Use `factory.createJsxAttributes` or the factory supplied by your transformation context instead. */ const createJsxAttributes: (properties: readonly JsxAttributeLike[]) => JsxAttributes; /** @deprecated Use `factory.updateJsxAttributes` or the factory supplied by your transformation context instead. */ diff --git a/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).errors.txt b/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).errors.txt new file mode 100644 index 00000000000..83f39a9ccb4 --- /dev/null +++ b/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).errors.txt @@ -0,0 +1,15 @@ +tests/cases/conformance/jsx/a.tsx(7,16): error TS1145: '{' or JSX element expected. + + +==== tests/cases/conformance/jsx/a.tsx (1 errors) ==== + declare var React: any; + +
+
/> +
foo
/> +
foo
/> +
+ ~ +!!! error TS1145: '{' or JSX element expected. +
+ \ No newline at end of file diff --git a/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).js b/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).js new file mode 100644 index 00000000000..3feabccd94e --- /dev/null +++ b/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).js @@ -0,0 +1,18 @@ +//// [a.tsx] +declare var React: any; + +
+
/> +
foo
/> +
foo
/> +
+
+ + +//// [a.jsx] +
+
/> +
foo
/> +
foo
/> +
+
; diff --git a/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).symbols b/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).symbols new file mode 100644 index 00000000000..efabdca743a --- /dev/null +++ b/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/jsx/a.tsx === +declare var React: any; +>React : Symbol(React, Decl(a.tsx, 0, 11)) + +
+
/> +>attr : Symbol(attr, Decl(a.tsx, 3, 8)) + +
foo
/> +>attr : Symbol(attr, Decl(a.tsx, 4, 8)) + +
foo
/> +>attr : Symbol(attr, Decl(a.tsx, 5, 8)) + +
+>attr : Symbol(attr, Decl(a.tsx, 6, 8)) + +
+ diff --git a/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).types b/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).types new file mode 100644 index 00000000000..d401c53b96d --- /dev/null +++ b/tests/baselines/reference/jsxAttributeInitializer(jsx=preserve).types @@ -0,0 +1,40 @@ +=== tests/cases/conformance/jsx/a.tsx === +declare var React: any; +>React : any + +
+>
/>
foo
/>
foo
/>
: any +>div : any + +
/> +>
/> : any +>div : any +>attr : any +>
: any +>div : any + +
foo
/> +>
foo
/> : any +>div : any +>attr : any +>
foo
: any +>div : any +>div : any + +
foo
/> +>
foo
/> : any +>div : any +>attr : any +><>
foo
: any +>
foo
: any +>div : any +>div : any + +
+>
: any +>div : any +>attr : true + +
+>div : any + diff --git a/tests/baselines/reference/jsxAttributeInitializer(jsx=react).errors.txt b/tests/baselines/reference/jsxAttributeInitializer(jsx=react).errors.txt new file mode 100644 index 00000000000..83f39a9ccb4 --- /dev/null +++ b/tests/baselines/reference/jsxAttributeInitializer(jsx=react).errors.txt @@ -0,0 +1,15 @@ +tests/cases/conformance/jsx/a.tsx(7,16): error TS1145: '{' or JSX element expected. + + +==== tests/cases/conformance/jsx/a.tsx (1 errors) ==== + declare var React: any; + +
+
/> +
foo
/> +
foo
/> +
+ ~ +!!! error TS1145: '{' or JSX element expected. +
+ \ No newline at end of file diff --git a/tests/baselines/reference/jsxAttributeInitializer(jsx=react).js b/tests/baselines/reference/jsxAttributeInitializer(jsx=react).js new file mode 100644 index 00000000000..2839c345594 --- /dev/null +++ b/tests/baselines/reference/jsxAttributeInitializer(jsx=react).js @@ -0,0 +1,18 @@ +//// [a.tsx] +declare var React: any; + +
+
/> +
foo
/> +
foo
/> +
+
+ + +//// [a.js] +React.createElement("div", null, + React.createElement("div", { attr: React.createElement("div", null) }), + React.createElement("div", { attr: React.createElement("div", null, "foo") }), + React.createElement("div", { attr: React.createElement(React.Fragment, null, + React.createElement("div", null, "foo")) }), + React.createElement("div", { attr: true })); diff --git a/tests/baselines/reference/jsxAttributeInitializer(jsx=react).symbols b/tests/baselines/reference/jsxAttributeInitializer(jsx=react).symbols new file mode 100644 index 00000000000..efabdca743a --- /dev/null +++ b/tests/baselines/reference/jsxAttributeInitializer(jsx=react).symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/jsx/a.tsx === +declare var React: any; +>React : Symbol(React, Decl(a.tsx, 0, 11)) + +
+
/> +>attr : Symbol(attr, Decl(a.tsx, 3, 8)) + +
foo
/> +>attr : Symbol(attr, Decl(a.tsx, 4, 8)) + +
foo
/> +>attr : Symbol(attr, Decl(a.tsx, 5, 8)) + +
+>attr : Symbol(attr, Decl(a.tsx, 6, 8)) + +
+ diff --git a/tests/baselines/reference/jsxAttributeInitializer(jsx=react).types b/tests/baselines/reference/jsxAttributeInitializer(jsx=react).types new file mode 100644 index 00000000000..d401c53b96d --- /dev/null +++ b/tests/baselines/reference/jsxAttributeInitializer(jsx=react).types @@ -0,0 +1,40 @@ +=== tests/cases/conformance/jsx/a.tsx === +declare var React: any; +>React : any + +
+>
/>
foo
/>
foo
/>
: any +>div : any + +
/> +>
/> : any +>div : any +>attr : any +>
: any +>div : any + +
foo
/> +>
foo
/> : any +>div : any +>attr : any +>
foo
: any +>div : any +>div : any + +
foo
/> +>
foo
/> : any +>div : any +>attr : any +><>
foo
: any +>
foo
: any +>div : any +>div : any + +
+>
: any +>div : any +>attr : true + +
+>div : any + diff --git a/tests/baselines/reference/jsxAttributeMissingInitializer.errors.txt b/tests/baselines/reference/jsxAttributeMissingInitializer.errors.txt index feeaaac525d..4f450b08b42 100644 --- a/tests/baselines/reference/jsxAttributeMissingInitializer.errors.txt +++ b/tests/baselines/reference/jsxAttributeMissingInitializer.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/jsxAttributeMissingInitializer.tsx(1,21): error TS1005: '{' expected. +tests/cases/compiler/jsxAttributeMissingInitializer.tsx(1,21): error TS1145: '{' or JSX element expected. ==== tests/cases/compiler/jsxAttributeMissingInitializer.tsx (1 errors) ==== const x =
; ~ -!!! error TS1005: '{' expected. +!!! error TS1145: '{' or JSX element expected. const y = 0; \ No newline at end of file diff --git a/tests/baselines/reference/jsxEsprimaFbTestSuite.errors.txt b/tests/baselines/reference/jsxEsprimaFbTestSuite.errors.txt index 22f3c94b6e1..0475255c224 100644 --- a/tests/baselines/reference/jsxEsprimaFbTestSuite.errors.txt +++ b/tests/baselines/reference/jsxEsprimaFbTestSuite.errors.txt @@ -1,13 +1,7 @@ -tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(40,1): error TS2657: JSX expressions must have one parent element. -tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(40,17): error TS1005: '{' expected. -tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(40,23): error TS1005: ';' expected. -tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(40,23): error TS2304: Cannot find name 'right'. tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(40,41): error TS1382: Unexpected token. Did you mean `{'>'}` or `>`? -tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(40,57): error TS1109: Expression expected. -tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(40,58): error TS1109: Expression expected. -==== tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx (7 errors) ==== +==== tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx (1 errors) ==== declare var React: any; declare var 日本語; declare var AbC_def; @@ -48,20 +42,8 @@ tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(40,58): error TS1109: Expr

7x invalid-js-identifier
; right=monkeys /> gorillas />; - ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2657: JSX expressions must have one parent element. - ~ -!!! error TS1005: '{' expected. - ~~~~~ -!!! error TS1005: ';' expected. - ~~~~~ -!!! error TS2304: Cannot find name 'right'. ~ !!! error TS1382: Unexpected token. Did you mean `{'>'}` or `>`? - ~ -!!! error TS1109: Expression expected. - ~ -!!! error TS1109: Expression expected. ; diff --git a/tests/baselines/reference/jsxEsprimaFbTestSuite.js b/tests/baselines/reference/jsxEsprimaFbTestSuite.js index 7a6bec81dbf..e5b90a5c64a 100644 --- a/tests/baselines/reference/jsxEsprimaFbTestSuite.js +++ b/tests/baselines/reference/jsxEsprimaFbTestSuite.js @@ -72,8 +72,7 @@ baz {/* this is a comment */};
@test content
;

7x invalid-js-identifier
; -, ; -right = monkeys /> gorillas / > ; + right=monkeys /> gorillas/>; ; ; (
) < x; diff --git a/tests/baselines/reference/jsxEsprimaFbTestSuite.symbols b/tests/baselines/reference/jsxEsprimaFbTestSuite.symbols index 64d739a9d62..d336e0302ab 100644 --- a/tests/baselines/reference/jsxEsprimaFbTestSuite.symbols +++ b/tests/baselines/reference/jsxEsprimaFbTestSuite.symbols @@ -77,6 +77,7 @@ baz right=monkeys /> gorillas />; >LeftRight : Symbol(LeftRight, Decl(jsxEsprimaFbTestSuite.tsx, 3, 11)) >left : Symbol(left, Decl(jsxEsprimaFbTestSuite.tsx, 39, 10)) +>right : Symbol(right, Decl(jsxEsprimaFbTestSuite.tsx, 39, 21)) ; >a : Symbol(a, Decl(jsxEsprimaFbTestSuite.tsx, 5, 11)) diff --git a/tests/baselines/reference/jsxEsprimaFbTestSuite.types b/tests/baselines/reference/jsxEsprimaFbTestSuite.types index 7061befb881..4b48d7c378d 100644 --- a/tests/baselines/reference/jsxEsprimaFbTestSuite.types +++ b/tests/baselines/reference/jsxEsprimaFbTestSuite.types @@ -118,21 +118,15 @@ baz >div : any right=monkeys /> gorillas />; -> : any -> right=monkeys /> gorillas /> : any >LeftRight : any ->left : true +>left : any > : any >a : any ->right=monkeys /> gorillas /> : boolean >right : any ->monkeys /> gorillas /> : boolean ->monkeys /> gorillas / : number >monkeys /> gorillas : any >b : any >b : any -> : any -> : any ; > : any diff --git a/tests/baselines/reference/jsxInvalidEsprimaTestSuite.errors.txt b/tests/baselines/reference/jsxInvalidEsprimaTestSuite.errors.txt index 12698255485..cbe83ef6ece 100644 --- a/tests/baselines/reference/jsxInvalidEsprimaTestSuite.errors.txt +++ b/tests/baselines/reference/jsxInvalidEsprimaTestSuite.errors.txt @@ -57,10 +57,8 @@ tests/cases/conformance/jsx/25.tsx(1,39): error TS1109: Expression expected. tests/cases/conformance/jsx/26.tsx(1,4): error TS1382: Unexpected token. Did you mean `{'>'}` or `>`? tests/cases/conformance/jsx/27.tsx(1,5): error TS1382: Unexpected token. Did you mean `{'>'}` or `>`? tests/cases/conformance/jsx/28.tsx(1,2): error TS17008: JSX element 'a' has no corresponding closing tag. -tests/cases/conformance/jsx/28.tsx(1,6): error TS1005: '{' expected. +tests/cases/conformance/jsx/28.tsx(1,6): error TS1145: '{' or JSX element expected. tests/cases/conformance/jsx/28.tsx(2,1): error TS1005: '; ~ -!!! error TS1005: '{' expected. +!!! error TS1145: '{' or JSX element expected. ==== tests/cases/conformance/jsx/5.tsx (2 errors) ==== ; ~ @@ -292,21 +290,16 @@ tests/cases/conformance/jsx/9.tsx(1,10): error TS2304: Cannot find name 'a:b'. ~ !!! error TS17008: JSX element 'a' has no corresponding closing tag. ~ -!!! error TS1005: '{' expected. +!!! error TS1145: '{' or JSX element expected. !!! error TS1005: '; - ~~~~~~~~~ - ~ -!!! error TS1005: '{' expected. ~ !!! error TS1003: Identifier expected. -!!! error TS2657: JSX expressions must have one parent element. - !!! error TS1005: '}; diff --git a/tests/baselines/reference/jsxInvalidEsprimaTestSuite.js b/tests/baselines/reference/jsxInvalidEsprimaTestSuite.js index 0b215a47a7c..e0d10043838 100644 --- a/tests/baselines/reference/jsxInvalidEsprimaTestSuite.js +++ b/tests/baselines/reference/jsxInvalidEsprimaTestSuite.js @@ -150,8 +150,8 @@ var x =
one
/* intervening comment */, /* intervening comment */
; ; //// [29.jsx] -, <>; -; +; +/>; //// [30.jsx] }; //// [31.jsx] diff --git a/tests/baselines/reference/jsxInvalidEsprimaTestSuite.types b/tests/baselines/reference/jsxInvalidEsprimaTestSuite.types index cb54dc62c3a..277d3da9da6 100644 --- a/tests/baselines/reference/jsxInvalidEsprimaTestSuite.types +++ b/tests/baselines/reference/jsxInvalidEsprimaTestSuite.types @@ -250,9 +250,8 @@ var x =
one
/* intervening comment */
two
;; === tests/cases/conformance/jsx/29.tsx === ; >; : any ->a : any ->b : true +>b : any ><}>; : any > : any diff --git a/tests/cases/conformance/jsx/jsxAttributeInitializer.ts b/tests/cases/conformance/jsx/jsxAttributeInitializer.ts new file mode 100644 index 00000000000..95e4c668205 --- /dev/null +++ b/tests/cases/conformance/jsx/jsxAttributeInitializer.ts @@ -0,0 +1,10 @@ +// @jsx: preserve, react +// @filename: a.tsx +declare var React: any; + +
+
/> +
foo
/> +
foo
/> +
+
From 1ba609660be56189165896ce09f9902b7b9ae96d Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 12 May 2022 04:28:47 -0700 Subject: [PATCH 38/64] LEGO: Merge pull request 49081 LEGO: Merge pull request 49081 --- .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ 12 files changed, 108 insertions(+) diff --git a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl index 473853cf97e..661c386ffbe 100644 --- a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8325,6 +8325,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl index 50cd9671cba..c82255994a6 100644 --- a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8334,6 +8334,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl index 88b3dc55306..79775649547 100644 --- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8322,6 +8322,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index e7aea94a458..7560aebb732 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8337,6 +8337,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl index 3542ebb24fc..4c59195f363 100644 --- a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8337,6 +8337,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl index 71ae5fca880..d702eb6d375 100644 --- a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8325,6 +8325,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl index fec7669b1c9..7701cb6914f 100644 --- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8325,6 +8325,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl index f9dd5a79e33..95ce73036b7 100644 --- a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8325,6 +8325,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl index 1d46dd5e3e2..caa01b35dfd 100644 --- a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8315,6 +8315,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl index 509bab6694e..64a9d51ea59 100644 --- a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8318,6 +8318,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl index f57dcf78f02..b841d5c8363 100644 --- a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8324,6 +8324,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl index cf6429a85fa..554f3330918 100644 --- a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8318,6 +8318,15 @@ + + + + + + + + + From da00ba67ed1182ad334f7c713b8254fba174aeba Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Thu, 12 May 2022 16:21:56 -0400 Subject: [PATCH 39/64] fix: getDefaultLibFilePath should normalize __dirname (#49051) - this currently causes a bug on Windows with mixed path separators - it returns a POSIX backslash path for __dirname, and then adds a forward slash from the directorySeparator, causing mixed separators - TS uses `/` internally and lets the host convert if needed, so I assume this should be normalized to all forward slashses instead - example of the bug from my tests: ``` Expected: "D:\\a\\rollup-plugin-typescript2\\rollup-plugin-typescript2\\node_modules\\typescript\\lib\\lib.d.ts" Received: "D:\\a\\rollup-plugin-typescript2\\rollup-plugin-typescript2\\node_modules\\typescript\\lib/lib.d.ts" ``` - every other use of __dirname in the codebase seems to be normalized except for this one - could use normalizeSlashes for this, but I figure combinePaths is more appropriate since that will handle it and combine properly as well without any `+ directorySeparator +` stuff --- src/services/services.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/services.ts b/src/services/services.ts index afb6a108691..9ac9cf35400 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2880,7 +2880,7 @@ namespace ts { export function getDefaultLibFilePath(options: CompilerOptions): string { // Check __dirname is defined and that we are on a node.js system. if (typeof __dirname !== "undefined") { - return __dirname + directorySeparator + getDefaultLibFileName(options); + return combinePaths(__dirname, getDefaultLibFileName(options)); } throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. "); From b689cd0aa956b31713ff0e86471154382fb53e47 Mon Sep 17 00:00:00 2001 From: Jack Works Date: Fri, 13 May 2022 06:45:22 +0800 Subject: [PATCH 40/64] feat: support error when comparing with object/array literals (#45978) * feat: support error when comparing with object/array literals * chore: include regexp, function and class literal * chore: include regexp, function and class literal * test: update baseline * fix: baseline --- src/compiler/checker.ts | 4 + src/compiler/diagnosticMessages.json | 4 + src/compiler/utilitiesPublic.ts | 13 ++ ...itionalEqualityOnLiteralObjects.errors.txt | 130 +++++++++++++ .../conditionalEqualityOnLiteralObjects.js | 108 ++++++++++ ...onditionalEqualityOnLiteralObjects.symbols | 92 +++++++++ .../conditionalEqualityOnLiteralObjects.types | 184 ++++++++++++++++++ .../functionImplementationErrors.errors.txt | 8 +- .../functionImplementations.errors.txt | 164 ++++++++++++++++ .../reference/narrowByEquality.errors.txt | 5 +- .../reference/parserRealSource7.errors.txt | 5 +- .../conditionalEqualityOnLiteralObjects.ts | 54 +++++ 12 files changed, 768 insertions(+), 3 deletions(-) create mode 100644 tests/baselines/reference/conditionalEqualityOnLiteralObjects.errors.txt create mode 100644 tests/baselines/reference/conditionalEqualityOnLiteralObjects.js create mode 100644 tests/baselines/reference/conditionalEqualityOnLiteralObjects.symbols create mode 100644 tests/baselines/reference/conditionalEqualityOnLiteralObjects.types create mode 100644 tests/baselines/reference/functionImplementations.errors.txt create mode 100644 tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6ba0d793501..ef86d21a4df 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -33977,6 +33977,10 @@ namespace ts { case SyntaxKind.ExclamationEqualsToken: case SyntaxKind.EqualsEqualsEqualsToken: case SyntaxKind.ExclamationEqualsEqualsToken: + if (isLiteralExpressionOfObject(left) || isLiteralExpressionOfObject(right)) { + const eqType = operator === SyntaxKind.EqualsEqualsToken || operator === SyntaxKind.EqualsEqualsEqualsToken; + error(errorNode, Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value, eqType ? "false" : "true"); + } reportOperatorErrorUnless((left, right) => isTypeEqualityComparableTo(left, right) || isTypeEqualityComparableTo(right, left)); return booleanType; diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index c3a6edfcfb0..4ebfd06d3e3 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -3459,6 +3459,10 @@ "category": "Error", "code": 2838 }, + "This condition will always return '{0}' since JavaScript compares objects by reference, not value.": { + "category": "Error", + "code": 2839 + }, "Import declaration '{0}' is using private name '{1}'.": { "category": "Error", diff --git a/src/compiler/utilitiesPublic.ts b/src/compiler/utilitiesPublic.ts index 2f4ed3b14cc..4eca9fefba2 100644 --- a/src/compiler/utilitiesPublic.ts +++ b/src/compiler/utilitiesPublic.ts @@ -1114,6 +1114,19 @@ namespace ts { return isLiteralKind(node.kind); } + /** @internal */ + export function isLiteralExpressionOfObject(node: Node) { + switch (node.kind) { + case SyntaxKind.ObjectLiteralExpression: + case SyntaxKind.ArrayLiteralExpression: + case SyntaxKind.RegularExpressionLiteral: + case SyntaxKind.FunctionExpression: + case SyntaxKind.ClassExpression: + return true; + } + return false; + } + // Pseudo-literals /* @internal */ diff --git a/tests/baselines/reference/conditionalEqualityOnLiteralObjects.errors.txt b/tests/baselines/reference/conditionalEqualityOnLiteralObjects.errors.txt new file mode 100644 index 00000000000..f76436aa338 --- /dev/null +++ b/tests/baselines/reference/conditionalEqualityOnLiteralObjects.errors.txt @@ -0,0 +1,130 @@ +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(4,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(6,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(8,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(10,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(12,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(14,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(17,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(19,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(21,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(23,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(25,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(27,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(30,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(32,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(34,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(36,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(38,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(40,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(43,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(45,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(47,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(49,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(51,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. +tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts(53,5): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + + +==== tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts (24 errors) ==== + const a = { a: 1 } + const b = [1] + + if ({ a: 1 } === { a: 1 }) { + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if ([1] === [1]) { + ~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if (a === { a: 1 }) { + ~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if (b === [1]) { + ~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if ({ a: 1 } === a) { + ~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if ([1] === b) { + ~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + + if ({ a: 1 } !== { a: 1 }) { + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if ([1] !== [1]) { + ~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if (a !== { a: 1 }) { + ~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if (b !== [1]) { + ~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if ({ a: 1 } !== a) { + ~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if ([1] !== b) { + ~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + + if ({ a: 1 } == { a: 1 }) { + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if ([1] == [1]) { + ~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if (a == { a: 1 }) { + ~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if (b == [1]) { + ~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if ({ a: 1 } == a) { + ~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + if ([1] == b) { + ~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + } + + if ({ a: 1 } != { a: 1 }) { + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if ([1] != [1]) { + ~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if (a != { a: 1 }) { + ~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if (b != [1]) { + ~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if ({ a: 1 } != a) { + ~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + if ([1] != b) { + ~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. + } + \ No newline at end of file diff --git a/tests/baselines/reference/conditionalEqualityOnLiteralObjects.js b/tests/baselines/reference/conditionalEqualityOnLiteralObjects.js new file mode 100644 index 00000000000..ab1ca51bb72 --- /dev/null +++ b/tests/baselines/reference/conditionalEqualityOnLiteralObjects.js @@ -0,0 +1,108 @@ +//// [conditionalEqualityOnLiteralObjects.ts] +const a = { a: 1 } +const b = [1] + +if ({ a: 1 } === { a: 1 }) { +} +if ([1] === [1]) { +} +if (a === { a: 1 }) { +} +if (b === [1]) { +} +if ({ a: 1 } === a) { +} +if ([1] === b) { +} + +if ({ a: 1 } !== { a: 1 }) { +} +if ([1] !== [1]) { +} +if (a !== { a: 1 }) { +} +if (b !== [1]) { +} +if ({ a: 1 } !== a) { +} +if ([1] !== b) { +} + +if ({ a: 1 } == { a: 1 }) { +} +if ([1] == [1]) { +} +if (a == { a: 1 }) { +} +if (b == [1]) { +} +if ({ a: 1 } == a) { +} +if ([1] == b) { +} + +if ({ a: 1 } != { a: 1 }) { +} +if ([1] != [1]) { +} +if (a != { a: 1 }) { +} +if (b != [1]) { +} +if ({ a: 1 } != a) { +} +if ([1] != b) { +} + + +//// [conditionalEqualityOnLiteralObjects.js] +var a = { a: 1 }; +var b = [1]; +if ({ a: 1 } === { a: 1 }) { +} +if ([1] === [1]) { +} +if (a === { a: 1 }) { +} +if (b === [1]) { +} +if ({ a: 1 } === a) { +} +if ([1] === b) { +} +if ({ a: 1 } !== { a: 1 }) { +} +if ([1] !== [1]) { +} +if (a !== { a: 1 }) { +} +if (b !== [1]) { +} +if ({ a: 1 } !== a) { +} +if ([1] !== b) { +} +if ({ a: 1 } == { a: 1 }) { +} +if ([1] == [1]) { +} +if (a == { a: 1 }) { +} +if (b == [1]) { +} +if ({ a: 1 } == a) { +} +if ([1] == b) { +} +if ({ a: 1 } != { a: 1 }) { +} +if ([1] != [1]) { +} +if (a != { a: 1 }) { +} +if (b != [1]) { +} +if ({ a: 1 } != a) { +} +if ([1] != b) { +} diff --git a/tests/baselines/reference/conditionalEqualityOnLiteralObjects.symbols b/tests/baselines/reference/conditionalEqualityOnLiteralObjects.symbols new file mode 100644 index 00000000000..0be4f1e5c97 --- /dev/null +++ b/tests/baselines/reference/conditionalEqualityOnLiteralObjects.symbols @@ -0,0 +1,92 @@ +=== tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts === +const a = { a: 1 } +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 11)) + +const b = [1] +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) + +if ({ a: 1 } === { a: 1 }) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 3, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 3, 18)) +} +if ([1] === [1]) { +} +if (a === { a: 1 }) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 7, 11)) +} +if (b === [1]) { +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) +} +if ({ a: 1 } === a) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 11, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +} +if ([1] === b) { +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) +} + +if ({ a: 1 } !== { a: 1 }) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 16, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 16, 18)) +} +if ([1] !== [1]) { +} +if (a !== { a: 1 }) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 20, 11)) +} +if (b !== [1]) { +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) +} +if ({ a: 1 } !== a) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 24, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +} +if ([1] !== b) { +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) +} + +if ({ a: 1 } == { a: 1 }) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 29, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 29, 17)) +} +if ([1] == [1]) { +} +if (a == { a: 1 }) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 33, 10)) +} +if (b == [1]) { +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) +} +if ({ a: 1 } == a) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 37, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +} +if ([1] == b) { +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) +} + +if ({ a: 1 } != { a: 1 }) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 42, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 42, 17)) +} +if ([1] != [1]) { +} +if (a != { a: 1 }) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 46, 10)) +} +if (b != [1]) { +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) +} +if ({ a: 1 } != a) { +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 50, 5)) +>a : Symbol(a, Decl(conditionalEqualityOnLiteralObjects.ts, 0, 5)) +} +if ([1] != b) { +>b : Symbol(b, Decl(conditionalEqualityOnLiteralObjects.ts, 1, 5)) +} + diff --git a/tests/baselines/reference/conditionalEqualityOnLiteralObjects.types b/tests/baselines/reference/conditionalEqualityOnLiteralObjects.types new file mode 100644 index 00000000000..8287257837c --- /dev/null +++ b/tests/baselines/reference/conditionalEqualityOnLiteralObjects.types @@ -0,0 +1,184 @@ +=== tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts === +const a = { a: 1 } +>a : { a: number; } +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 + +const b = [1] +>b : number[] +>[1] : number[] +>1 : 1 + +if ({ a: 1 } === { a: 1 }) { +>{ a: 1 } === { a: 1 } : boolean +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +} +if ([1] === [1]) { +>[1] === [1] : boolean +>[1] : number[] +>1 : 1 +>[1] : number[] +>1 : 1 +} +if (a === { a: 1 }) { +>a === { a: 1 } : boolean +>a : { a: number; } +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +} +if (b === [1]) { +>b === [1] : boolean +>b : number[] +>[1] : number[] +>1 : 1 +} +if ({ a: 1 } === a) { +>{ a: 1 } === a : boolean +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +>a : { a: number; } +} +if ([1] === b) { +>[1] === b : boolean +>[1] : number[] +>1 : 1 +>b : number[] +} + +if ({ a: 1 } !== { a: 1 }) { +>{ a: 1 } !== { a: 1 } : boolean +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +} +if ([1] !== [1]) { +>[1] !== [1] : boolean +>[1] : number[] +>1 : 1 +>[1] : number[] +>1 : 1 +} +if (a !== { a: 1 }) { +>a !== { a: 1 } : boolean +>a : { a: number; } +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +} +if (b !== [1]) { +>b !== [1] : boolean +>b : number[] +>[1] : number[] +>1 : 1 +} +if ({ a: 1 } !== a) { +>{ a: 1 } !== a : boolean +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +>a : { a: number; } +} +if ([1] !== b) { +>[1] !== b : boolean +>[1] : number[] +>1 : 1 +>b : number[] +} + +if ({ a: 1 } == { a: 1 }) { +>{ a: 1 } == { a: 1 } : boolean +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +} +if ([1] == [1]) { +>[1] == [1] : boolean +>[1] : number[] +>1 : 1 +>[1] : number[] +>1 : 1 +} +if (a == { a: 1 }) { +>a == { a: 1 } : boolean +>a : { a: number; } +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +} +if (b == [1]) { +>b == [1] : boolean +>b : number[] +>[1] : number[] +>1 : 1 +} +if ({ a: 1 } == a) { +>{ a: 1 } == a : boolean +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +>a : { a: number; } +} +if ([1] == b) { +>[1] == b : boolean +>[1] : number[] +>1 : 1 +>b : number[] +} + +if ({ a: 1 } != { a: 1 }) { +>{ a: 1 } != { a: 1 } : boolean +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +} +if ([1] != [1]) { +>[1] != [1] : boolean +>[1] : number[] +>1 : 1 +>[1] : number[] +>1 : 1 +} +if (a != { a: 1 }) { +>a != { a: 1 } : boolean +>a : { a: number; } +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +} +if (b != [1]) { +>b != [1] : boolean +>b : number[] +>[1] : number[] +>1 : 1 +} +if ({ a: 1 } != a) { +>{ a: 1 } != a : boolean +>{ a: 1 } : { a: number; } +>a : number +>1 : 1 +>a : { a: number; } +} +if ([1] != b) { +>[1] != b : boolean +>[1] : number[] +>1 : 1 +>b : number[] +} + diff --git a/tests/baselines/reference/functionImplementationErrors.errors.txt b/tests/baselines/reference/functionImplementationErrors.errors.txt index 5a9ebea09be..cdd16bc9027 100644 --- a/tests/baselines/reference/functionImplementationErrors.errors.txt +++ b/tests/baselines/reference/functionImplementationErrors.errors.txt @@ -1,9 +1,10 @@ tests/cases/conformance/functions/functionImplementationErrors.ts(25,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/conformance/functions/functionImplementationErrors.ts(30,17): error TS2373: Parameter 'n' cannot reference identifier 'm' declared after it. tests/cases/conformance/functions/functionImplementationErrors.ts(35,17): error TS2373: Parameter 'n' cannot reference identifier 'm' declared after it. +tests/cases/conformance/functions/functionImplementationErrors.ts(40,1): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. -==== tests/cases/conformance/functions/functionImplementationErrors.ts (3 errors) ==== +==== tests/cases/conformance/functions/functionImplementationErrors.ts (4 errors) ==== // FunctionExpression with no return type annotation with multiple return statements with unrelated types var f1 = function () { return ''; @@ -50,9 +51,14 @@ tests/cases/conformance/functions/functionImplementationErrors.ts(35,17): error // FunctionExpression with non -void return type annotation with a throw, no return, and other code // Should be error but isn't undefined === function (): number { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ throw undefined; + ~~~~~~~~~~~~~~~~~~~~ var x = 4; + ~~~~~~~~~~~~~~ }; + ~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. class Base { private x; } class AnotherClass { private y; } diff --git a/tests/baselines/reference/functionImplementations.errors.txt b/tests/baselines/reference/functionImplementations.errors.txt new file mode 100644 index 00000000000..e289bd7e400 --- /dev/null +++ b/tests/baselines/reference/functionImplementations.errors.txt @@ -0,0 +1,164 @@ +tests/cases/conformance/functions/functionImplementations.ts(90,1): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + + +==== tests/cases/conformance/functions/functionImplementations.ts (1 errors) ==== + // FunctionExpression with no return type annotation and no return statement returns void + var v: void = function () { } (); + + // FunctionExpression f with no return type annotation and directly references f in its body returns any + var a: any = function f() { + return f; + }; + var a: any = function f() { + return f(); + }; + + // FunctionExpression f with no return type annotation and indirectly references f in its body returns any + var a: any = function f() { + var x = f; + return x; + }; + + // Two mutually recursive function implementations with no return type annotations + function rec1() { + return rec2(); + } + function rec2() { + return rec1(); + } + var a = rec1(); + var a = rec2(); + + // Two mutually recursive function implementations with return type annotation in one + function rec3(): number { + return rec4(); + } + function rec4() { + return rec3(); + } + var n: number; + var n = rec3(); + var n = rec4(); + + // FunctionExpression with no return type annotation and returns a number + var n = function () { + return 3; + } (); + + // FunctionExpression with no return type annotation and returns null + var nu = null; + var nu = function () { + return null; + } (); + + // FunctionExpression with no return type annotation and returns undefined + var un = undefined; + var un = function () { + return undefined; + } (); + + // FunctionExpression with no return type annotation and returns a type parameter type + var n = function (x: T) { + return x; + } (4); + + // FunctionExpression with no return type annotation and returns a constrained type parameter type + var n = function (x: T) { + return x; + } (4); + + // FunctionExpression with no return type annotation with multiple return statements with identical types + var n = function () { + return 3; + return 5; + }(); + + // Otherwise, the inferred return type is the first of the types of the return statement expressions + // in the function body that is a supertype of each of the others, + // ignoring return statements with no expressions. + // A compile - time error occurs if no return statement expression has a type that is a supertype of each of the others. + // FunctionExpression with no return type annotation with multiple return statements with subtype relation between returns + class Base { private m; } + class Derived extends Base { private q; } + var b: Base; + var b = function () { + return new Base(); return new Derived(); + } (); + + // FunctionExpression with no return type annotation with multiple return statements with one a recursive call + var a = function f() { + return new Base(); return new Derived(); return f(); // ? + } (); + + // FunctionExpression with non -void return type annotation with a single throw statement + undefined === function (): number { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + throw undefined; + ~~~~~~~~~~~~~~~~~~~~ + }; + ~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. + + // Type of 'this' in function implementation is 'any' + function thisFunc() { + var x = this; + var x: any; + } + + // Function signature with optional parameter, no type annotation and initializer has initializer's type + function opt1(n = 4) { + var m = n; + var m: number; + } + + // Function signature with optional parameter, no type annotation and initializer has initializer's widened type + function opt2(n = { x: null, y: undefined }) { + var m = n; + var m: { x: any; y: any }; + } + + // Function signature with initializer referencing other parameter to the left + function opt3(n: number, m = n) { + var y = m; + var y: number; + } + + // Function signature with optional parameter has correct codegen + // (tested above) + + // FunctionExpression with non -void return type annotation return with no expression + function f6(): number { + return; + } + + class Derived2 extends Base { private r: string; } + class AnotherClass { private x } + // if f is a contextually typed function expression, the inferred return type is the union type + // of the types of the return statement expressions in the function body, + // ignoring return statements with no expressions. + var f7: (x: number) => string | number = x => { // should be (x: number) => number | string + if (x < 0) { return x; } + return x.toString(); + } + var f8: (x: number) => any = x => { // should be (x: number) => Base + return new Base(); + return new Derived2(); + } + var f9: (x: number) => any = x => { // should be (x: number) => Base + return new Base(); + return new Derived(); + return new Derived2(); + } + var f10: (x: number) => any = x => { // should be (x: number) => Derived | Derived1 + return new Derived(); + return new Derived2(); + } + var f11: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass + return new Base(); + return new AnotherClass(); + } + var f12: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass + return new Base(); + return; // should be ignored + return new AnotherClass(); + } \ No newline at end of file diff --git a/tests/baselines/reference/narrowByEquality.errors.txt b/tests/baselines/reference/narrowByEquality.errors.txt index 15610d6d1d4..a484b589515 100644 --- a/tests/baselines/reference/narrowByEquality.errors.txt +++ b/tests/baselines/reference/narrowByEquality.errors.txt @@ -1,10 +1,11 @@ +tests/cases/compiler/narrowByEquality.ts(41,5): error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. tests/cases/compiler/narrowByEquality.ts(54,15): error TS2322: Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/narrowByEquality.ts(55,9): error TS2322: Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. -==== tests/cases/compiler/narrowByEquality.ts (2 errors) ==== +==== tests/cases/compiler/narrowByEquality.ts (3 errors) ==== declare let x: number | string | boolean declare let n: number; declare let s: string; @@ -46,6 +47,8 @@ tests/cases/compiler/narrowByEquality.ts(55,9): error TS2322: Type 'string | num declare let xAndObj: number | string | boolean | object if (xAndObj == {}) { + ~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'false' since JavaScript compares objects by reference, not value. xAndObj; } diff --git a/tests/baselines/reference/parserRealSource7.errors.txt b/tests/baselines/reference/parserRealSource7.errors.txt index 250b589873b..a566f7212e3 100644 --- a/tests/baselines/reference/parserRealSource7.errors.txt +++ b/tests/baselines/reference/parserRealSource7.errors.txt @@ -265,6 +265,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(704,34): error T tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(710,69): error TS2304: Cannot find name 'NodeType'. tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(710,93): error TS2304: Cannot find name 'FuncDecl'. tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(710,136): error TS2304: Cannot find name 'FuncDecl'. +tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(722,17): error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(724,22): error TS2304: Cannot find name 'hasFlag'. tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(724,83): error TS2304: Cannot find name 'FncFlags'. tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(729,44): error TS2304: Cannot find name 'SymbolKind'. @@ -303,7 +304,7 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(827,34): error T tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(828,13): error TS2304: Cannot find name 'popTypeCollectionScope'. -==== tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts (303 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts (304 errors) ==== // Copyright (c) Microsoft. All rights reserved. Licensed under the Apache License, Version 2.0. // See LICENSE.txt in the project root for complete license information. @@ -1562,6 +1563,8 @@ tests/cases/conformance/parser/ecmascript5/parserRealSource7.ts(828,13): error T fgSym.type && fgSym.type.construct && fgSym.type.construct.signatures != [] && + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2839: This condition will always return 'true' since JavaScript compares objects by reference, not value. (fgSym.type.construct.signatures[0].declAST == null || !hasFlag(fgSym.type.construct.signatures[0].declAST.fncFlags, FncFlags.Ambient)) && ~~~~~~~ diff --git a/tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts b/tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts new file mode 100644 index 00000000000..ef4a6f949c4 --- /dev/null +++ b/tests/cases/compiler/conditionalEqualityOnLiteralObjects.ts @@ -0,0 +1,54 @@ +const a = { a: 1 } +const b = [1] + +if ({ a: 1 } === { a: 1 }) { +} +if ([1] === [1]) { +} +if (a === { a: 1 }) { +} +if (b === [1]) { +} +if ({ a: 1 } === a) { +} +if ([1] === b) { +} + +if ({ a: 1 } !== { a: 1 }) { +} +if ([1] !== [1]) { +} +if (a !== { a: 1 }) { +} +if (b !== [1]) { +} +if ({ a: 1 } !== a) { +} +if ([1] !== b) { +} + +if ({ a: 1 } == { a: 1 }) { +} +if ([1] == [1]) { +} +if (a == { a: 1 }) { +} +if (b == [1]) { +} +if ({ a: 1 } == a) { +} +if ([1] == b) { +} + +if ({ a: 1 } != { a: 1 }) { +} +if ([1] != [1]) { +} +if (a != { a: 1 }) { +} +if (b != [1]) { +} +if ({ a: 1 } != a) { +} +if ([1] != b) { +} From 92894d36af57cd8493ee726588ab657201d8a772 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 12 May 2022 16:43:44 -0700 Subject: [PATCH 41/64] Make watch/FS testing code friendlier for project loading in module transformation (#49087) --- src/compiler/watch.ts | 16 ++++++++++++++++ src/harness/virtualFileSystemWithWatch.ts | 2 +- src/server/tsconfig.json | 1 - src/server/watchType.ts | 19 ------------------- 4 files changed, 17 insertions(+), 21 deletions(-) delete mode 100644 src/server/watchType.ts diff --git a/src/compiler/watch.ts b/src/compiler/watch.ts index c925046d67a..7d2c6818d33 100644 --- a/src/compiler/watch.ts +++ b/src/compiler/watch.ts @@ -513,6 +513,13 @@ namespace ts { ExtendedConfigOfReferencedProject: "Extended config file of referenced project", WildcardDirectoryOfReferencedProject: "Wild card directory of referenced project", PackageJson: "package.json file", + ClosedScriptInfo: "Closed Script info", + ConfigFileForInferredRoot: "Config file for the inferred project root", + NodeModules: "node_modules for closed script infos and package.jsons affecting module specifier cache", + MissingSourceMapFile: "Missing source map file", + NoopConfigFileForInferredRoot: "Noop Config file for the inferred project root", + MissingGeneratedFile: "Missing generated file", + NodeModulesForModuleSpecifierCache: "node_modules for module specifier cache invalidation", }; export interface WatchTypeRegistry { @@ -527,6 +534,15 @@ namespace ts { ExtendedConfigOfReferencedProject: "Extended config file of referenced project", WildcardDirectoryOfReferencedProject: "Wild card directory of referenced project", PackageJson: "package.json file", + + // Additional tsserver specific watch information + ClosedScriptInfo: "Closed Script info", + ConfigFileForInferredRoot: "Config file for the inferred project root", + NodeModules: "node_modules for closed script infos and package.jsons affecting module specifier cache", + MissingSourceMapFile: "Missing source map file", + NoopConfigFileForInferredRoot: "Noop Config file for the inferred project root", + MissingGeneratedFile: "Missing generated file", + NodeModulesForModuleSpecifierCache: "node_modules for module specifier cache invalidation", } interface WatchFactory extends ts.WatchFactory { diff --git a/src/harness/virtualFileSystemWithWatch.ts b/src/harness/virtualFileSystemWithWatch.ts index 829d6e8fa41..24640a8fc51 100644 --- a/src/harness/virtualFileSystemWithWatch.ts +++ b/src/harness/virtualFileSystemWithWatch.ts @@ -97,7 +97,7 @@ interface Array { length: number; [n: number]: T; }` symLink: string; } - type FSEntry = FsFile | FsFolder | FsSymLink; + export type FSEntry = FsFile | FsFolder | FsSymLink; function isFsFolder(s: FSEntry | undefined): s is FsFolder { return !!s && isArray((s as FsFolder).entries); diff --git a/src/server/tsconfig.json b/src/server/tsconfig.json index b0a2f59ba77..4e8dd18dcdb 100644 --- a/src/server/tsconfig.json +++ b/src/server/tsconfig.json @@ -17,7 +17,6 @@ "types.ts", "utilitiesPublic.ts", "utilities.ts", - "watchType.ts", "protocol.ts", "scriptInfo.ts", "typingsCache.ts", diff --git a/src/server/watchType.ts b/src/server/watchType.ts deleted file mode 100644 index 7893de0e26b..00000000000 --- a/src/server/watchType.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* @internal */ -namespace ts { - // Additional tsserver specific watch information - export interface WatchTypeRegistry { - ClosedScriptInfo: "Closed Script info", - ConfigFileForInferredRoot: "Config file for the inferred project root", - NodeModules: "node_modules for closed script infos and package.jsons affecting module specifier cache", - MissingSourceMapFile: "Missing source map file", - NoopConfigFileForInferredRoot: "Noop Config file for the inferred project root", - MissingGeneratedFile: "Missing generated file", - NodeModulesForModuleSpecifierCache: "node_modules for module specifier cache invalidation", - } - WatchType.ClosedScriptInfo = "Closed Script info"; - WatchType.ConfigFileForInferredRoot = "Config file for the inferred project root"; - WatchType.NodeModules = "node_modules for closed script infos and package.jsons affecting module specifier cache"; - WatchType.MissingSourceMapFile = "Missing source map file"; - WatchType.NoopConfigFileForInferredRoot = "Noop Config file for the inferred project root"; - WatchType.MissingGeneratedFile = "Missing generated file"; -} From d53b16ba0a7f3ab62ac38f79e897555dfe1e9207 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Fri, 13 May 2022 06:09:16 +0000 Subject: [PATCH 42/64] Update package-lock.json --- package-lock.json | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1e7fd508fb0..df729d1fb2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -224,7 +224,7 @@ "@gulp-sourcemaps/map-sources": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "integrity": "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==", "dev": true, "requires": { "normalize-path": "^2.0.1", @@ -638,9 +638,9 @@ "dev": true }, "@types/node": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", - "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", + "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==", "dev": true }, "@types/node-fetch": { @@ -3151,17 +3151,16 @@ "dev": true }, "glob": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz", - "integrity": "sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.2.tgz", + "integrity": "sha512-0jzor6jfIKaDg/2FIN+9L8oDxzHTkI/+vwJimOmOZjaVjFVVZJFojOYbbWC0okXbBVSgYpbcuQ7xy6gDP9f8gw==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "once": "^1.3.0" }, "dependencies": { "brace-expansion": { From 9607a5310fd75d44fffc26f45299f8dedcbac2a1 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Fri, 13 May 2022 09:24:08 +0300 Subject: [PATCH 43/64] add messages to plainJSErrors --- src/compiler/program.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index c7f886ea311..823fbf12a2e 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -967,6 +967,8 @@ namespace ts { Diagnostics.extends_clause_already_seen.code, Diagnostics.let_declarations_can_only_be_declared_inside_a_block.code, Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations.code, + Diagnostics.Class_constructor_may_not_be_a_generator.code, + Diagnostics.Class_constructor_may_not_be_an_accessor.code, ]); /** From d8ebeebc596e46558e45eb9e8f643dd090677dda Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Fri, 13 May 2022 09:24:33 +0300 Subject: [PATCH 44/64] move tests to conformance/salsa from compiler --- .../reference/constructorNameInAccessor.errors.txt | 6 +++--- tests/baselines/reference/constructorNameInAccessor.symbols | 2 +- tests/baselines/reference/constructorNameInAccessor.types | 2 +- .../reference/constructorNameInGenerator.errors.txt | 4 ++-- .../baselines/reference/constructorNameInGenerator.symbols | 2 +- tests/baselines/reference/constructorNameInGenerator.types | 2 +- .../salsa}/constructorNameInAccessor.ts | 0 .../salsa}/constructorNameInGenerator.ts | 0 8 files changed, 9 insertions(+), 9 deletions(-) rename tests/cases/{compiler => conformance/salsa}/constructorNameInAccessor.ts (100%) rename tests/cases/{compiler => conformance/salsa}/constructorNameInGenerator.ts (100%) diff --git a/tests/baselines/reference/constructorNameInAccessor.errors.txt b/tests/baselines/reference/constructorNameInAccessor.errors.txt index b83e2cfbde8..7033dec4e5b 100644 --- a/tests/baselines/reference/constructorNameInAccessor.errors.txt +++ b/tests/baselines/reference/constructorNameInAccessor.errors.txt @@ -1,8 +1,8 @@ -tests/cases/compiler/constructorNameInAccessor.ts(2,9): error TS1341: Class constructor may not be an accessor. -tests/cases/compiler/constructorNameInAccessor.ts(3,9): error TS1341: Class constructor may not be an accessor. +tests/cases/conformance/salsa/constructorNameInAccessor.ts(2,9): error TS1341: Class constructor may not be an accessor. +tests/cases/conformance/salsa/constructorNameInAccessor.ts(3,9): error TS1341: Class constructor may not be an accessor. -==== tests/cases/compiler/constructorNameInAccessor.ts (2 errors) ==== +==== tests/cases/conformance/salsa/constructorNameInAccessor.ts (2 errors) ==== class C1 { get constructor() { return } ~~~~~~~~~~~ diff --git a/tests/baselines/reference/constructorNameInAccessor.symbols b/tests/baselines/reference/constructorNameInAccessor.symbols index 7d7a3e52437..cea664a716f 100644 --- a/tests/baselines/reference/constructorNameInAccessor.symbols +++ b/tests/baselines/reference/constructorNameInAccessor.symbols @@ -1,4 +1,4 @@ -=== tests/cases/compiler/constructorNameInAccessor.ts === +=== tests/cases/conformance/salsa/constructorNameInAccessor.ts === class C1 { >C1 : Symbol(C1, Decl(constructorNameInAccessor.ts, 0, 0)) diff --git a/tests/baselines/reference/constructorNameInAccessor.types b/tests/baselines/reference/constructorNameInAccessor.types index 9b797f21891..b81c47ec3e2 100644 --- a/tests/baselines/reference/constructorNameInAccessor.types +++ b/tests/baselines/reference/constructorNameInAccessor.types @@ -1,4 +1,4 @@ -=== tests/cases/compiler/constructorNameInAccessor.ts === +=== tests/cases/conformance/salsa/constructorNameInAccessor.ts === class C1 { >C1 : C1 diff --git a/tests/baselines/reference/constructorNameInGenerator.errors.txt b/tests/baselines/reference/constructorNameInGenerator.errors.txt index a66d3693648..061560615fb 100644 --- a/tests/baselines/reference/constructorNameInGenerator.errors.txt +++ b/tests/baselines/reference/constructorNameInGenerator.errors.txt @@ -1,7 +1,7 @@ -tests/cases/compiler/constructorNameInGenerator.ts(2,6): error TS1360: Class constructor may not be a generator. +tests/cases/conformance/salsa/constructorNameInGenerator.ts(2,6): error TS1360: Class constructor may not be a generator. -==== tests/cases/compiler/constructorNameInGenerator.ts (1 errors) ==== +==== tests/cases/conformance/salsa/constructorNameInGenerator.ts (1 errors) ==== class C2 { *constructor() {} ~~~~~~~~~~~ diff --git a/tests/baselines/reference/constructorNameInGenerator.symbols b/tests/baselines/reference/constructorNameInGenerator.symbols index 4da0599f5bd..ea64a07a651 100644 --- a/tests/baselines/reference/constructorNameInGenerator.symbols +++ b/tests/baselines/reference/constructorNameInGenerator.symbols @@ -1,4 +1,4 @@ -=== tests/cases/compiler/constructorNameInGenerator.ts === +=== tests/cases/conformance/salsa/constructorNameInGenerator.ts === class C2 { >C2 : Symbol(C2, Decl(constructorNameInGenerator.ts, 0, 0)) diff --git a/tests/baselines/reference/constructorNameInGenerator.types b/tests/baselines/reference/constructorNameInGenerator.types index 799bdf6d7f7..ba5f4f243da 100644 --- a/tests/baselines/reference/constructorNameInGenerator.types +++ b/tests/baselines/reference/constructorNameInGenerator.types @@ -1,4 +1,4 @@ -=== tests/cases/compiler/constructorNameInGenerator.ts === +=== tests/cases/conformance/salsa/constructorNameInGenerator.ts === class C2 { >C2 : C2 diff --git a/tests/cases/compiler/constructorNameInAccessor.ts b/tests/cases/conformance/salsa/constructorNameInAccessor.ts similarity index 100% rename from tests/cases/compiler/constructorNameInAccessor.ts rename to tests/cases/conformance/salsa/constructorNameInAccessor.ts diff --git a/tests/cases/compiler/constructorNameInGenerator.ts b/tests/cases/conformance/salsa/constructorNameInGenerator.ts similarity index 100% rename from tests/cases/compiler/constructorNameInGenerator.ts rename to tests/cases/conformance/salsa/constructorNameInGenerator.ts From 90b1321baae239358694cd1b94fabdfb4da8550f Mon Sep 17 00:00:00 2001 From: csigs Date: Fri, 13 May 2022 03:59:47 -0700 Subject: [PATCH 45/64] LEGO: Merge pull request 49098 LEGO: Merge pull request 49098 --- .../diagnosticMessages.generated.json.lcl | 18 ++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ 9 files changed, 90 insertions(+) diff --git a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl index 71b649ec585..51f8126e3d7 100644 --- a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -8325,6 +8325,15 @@ + + + + + + + + + @@ -16413,6 +16422,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl index 661c386ffbe..abdf614f728 100644 --- a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16422,6 +16422,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl index c82255994a6..2c15855f1b3 100644 --- a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16431,6 +16431,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 7560aebb732..799801b390f 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16434,6 +16434,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 7701cb6914f..c9f49aebf5e 100644 --- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16422,6 +16422,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl index 95ce73036b7..6c05b31cbde 100644 --- a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16422,6 +16422,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl index caa01b35dfd..d73a256e9bb 100644 --- a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16409,6 +16409,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl index 64a9d51ea59..ace077b9068 100644 --- a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16412,6 +16412,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl index b841d5c8363..4aaf689c61c 100644 --- a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16421,6 +16421,15 @@ + + + + + + + + + From 85bd9d97b88954f247ca9a77dd1c0014f137e296 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Sat, 14 May 2022 06:19:38 +0000 Subject: [PATCH 46/64] Update package-lock.json --- package-lock.json | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index df729d1fb2c..24cbd9631bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3151,9 +3151,9 @@ "dev": true }, "glob": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.2.tgz", - "integrity": "sha512-0jzor6jfIKaDg/2FIN+9L8oDxzHTkI/+vwJimOmOZjaVjFVVZJFojOYbbWC0okXbBVSgYpbcuQ7xy6gDP9f8gw==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3446,18 +3446,27 @@ }, "dependencies": { "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.2.tgz", + "integrity": "sha512-NzDgHDiJwKYByLrL5lONmQFpK/2G78SMMfo+E9CuGlX4IkvfKDsiQSNPwAYxEy+e6p7ZQ3uslSLlwlJcqezBmQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, From fba6eeaf6e7e520775749b74017a416e08f4e587 Mon Sep 17 00:00:00 2001 From: csigs Date: Sat, 14 May 2022 05:10:05 -0700 Subject: [PATCH 47/64] LEGO: Merge pull request 49108 LEGO: Merge pull request 49108 --- .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ .../diagnosticMessages.generated.json.lcl | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl index 79775649547..09fb7d60d33 100644 --- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16416,6 +16416,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl index d702eb6d375..8b0ef6d59c3 100644 --- a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16422,6 +16422,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl index 554f3330918..a90d048830d 100644 --- a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16415,6 +16415,15 @@ + + + + + + + + + From 9e70b69a97f02e91e8c8b3c6f4c4db5642002109 Mon Sep 17 00:00:00 2001 From: csigs Date: Sun, 15 May 2022 09:00:13 -0700 Subject: [PATCH 48/64] LEGO: Merge pull request 49117 LEGO: Merge pull request 49117 --- .../diagnosticMessages.generated.json.lcl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl index 4c59195f363..075793fa304 100644 --- a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -16434,6 +16434,15 @@ + + + + + + + + + From e5e4e684719cd30181794a3d86bb19ea4c336953 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Mon, 16 May 2022 06:06:50 +0000 Subject: [PATCH 49/64] Update package-lock.json --- package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24cbd9631bb..e9223981c56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -951,7 +951,7 @@ "ansi-cyan": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "integrity": "sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==", "dev": true, "requires": { "ansi-wrap": "0.1.0" @@ -969,7 +969,7 @@ "ansi-red": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "integrity": "sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==", "dev": true, "requires": { "ansi-wrap": "0.1.0" @@ -3446,9 +3446,9 @@ }, "dependencies": { "glob": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.2.tgz", - "integrity": "sha512-NzDgHDiJwKYByLrL5lONmQFpK/2G78SMMfo+E9CuGlX4IkvfKDsiQSNPwAYxEy+e6p7ZQ3uslSLlwlJcqezBmQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -5170,7 +5170,7 @@ "arr-diff": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", "dev": true, "requires": { "arr-flatten": "^1.0.1", @@ -5180,13 +5180,13 @@ "arr-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "integrity": "sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", "dev": true }, "array-slice": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", "dev": true }, "extend-shallow": { From 528f708ab8ef96a9f9f823b5d8685b0740b1302b Mon Sep 17 00:00:00 2001 From: csigs Date: Mon, 16 May 2022 08:16:23 -0700 Subject: [PATCH 50/64] LEGO: Merge pull request 49130 LEGO: Merge pull request 49130 --- .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ 8 files changed, 216 insertions(+) diff --git a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl index 51f8126e3d7..758e90ecbf4 100644 --- a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3519,6 +3519,24 @@ + + + + + + + + + + + + + + + + + + @@ -13488,6 +13506,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl index 2c15855f1b3..f23153e6d0d 100644 --- a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3528,6 +3528,24 @@ + + + + + + + + + + + + + + + + + + @@ -13497,6 +13515,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 799801b390f..4de3f85619d 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3531,6 +3531,24 @@ + + + + + + + + + + + + + + + + + + @@ -13500,6 +13518,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl index 075793fa304..2e741c3cf17 100644 --- a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3531,6 +3531,24 @@ + + + + + + + + + + + + + + + + + + @@ -13500,6 +13518,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl index c9f49aebf5e..b726eda4716 100644 --- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3519,6 +3519,24 @@ + + + + + + + + + + + + + + + + + + @@ -13488,6 +13506,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl index 6c05b31cbde..7b67b250d52 100644 --- a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3519,6 +3519,24 @@ + + + + + + + + + + + + + + + + + + @@ -13488,6 +13506,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl index ace077b9068..6f737dae47e 100644 --- a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3512,6 +3512,24 @@ + + + + + + + + + + + + + + + + + + @@ -13478,6 +13496,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl index 4aaf689c61c..e9e437101c7 100644 --- a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3518,6 +3518,24 @@ + + + + + + + + + + + + + + + + + + @@ -13487,6 +13505,15 @@ + + + + + + + + + From 95731f03979985609c9fd662f179be5b9cea3470 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Mon, 16 May 2022 09:14:00 -0700 Subject: [PATCH 51/64] No errors on apparent type of bigint or symbol, even for recent targets (#49104) * Remove bigint from Object.freeze in es5.d.ts `BigInt` isn't resolved whenever `lib < es2020`, but it's not an error when `target < es2020`. I have a few ideas for improving this situation but for the RC I'm going to remove `bigint` from Object.freeze's signature. * Update other baselines * No errors for missing apparent type of bigint,symbol for any target * Update test text --- src/compiler/checker.ts | 14 +++++++------- .../reference/bigintMissingES2020.errors.txt | 12 ------------ tests/baselines/reference/bigintMissingES2020.js | 4 ++-- .../reference/bigintMissingES2020.symbols | 2 +- .../reference/bigintMissingES2020.types | 2 +- .../reference/bigintMissingESNext.errors.txt | 12 ------------ tests/baselines/reference/bigintMissingESNext.js | 4 ++-- .../reference/bigintMissingESNext.symbols | 2 +- .../reference/bigintMissingESNext.types | 2 +- .../contextualSignatureInObjectFreeze.js | 13 +++++++++++++ .../contextualSignatureInObjectFreeze.symbols | 13 +++++++++++++ .../contextualSignatureInObjectFreeze.types | 16 ++++++++++++++++ .../contextualSignatureInObjectFreeze.ts | 7 +++++++ .../conformance/es2020/bigintMissingES2020.ts | 2 +- .../conformance/es2020/bigintMissingESNext.ts | 2 +- 15 files changed, 66 insertions(+), 41 deletions(-) delete mode 100644 tests/baselines/reference/bigintMissingES2020.errors.txt delete mode 100644 tests/baselines/reference/bigintMissingESNext.errors.txt create mode 100644 tests/baselines/reference/contextualSignatureInObjectFreeze.js create mode 100644 tests/baselines/reference/contextualSignatureInObjectFreeze.symbols create mode 100644 tests/baselines/reference/contextualSignatureInObjectFreeze.types create mode 100644 tests/cases/compiler/contextualSignatureInObjectFreeze.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6b532e7ac09..2e2c75eb384 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -12298,9 +12298,9 @@ namespace ts { t.flags & TypeFlags.Intersection ? getApparentTypeOfIntersectionType(t as IntersectionType) : t.flags & TypeFlags.StringLike ? globalStringType : t.flags & TypeFlags.NumberLike ? globalNumberType : - t.flags & TypeFlags.BigIntLike ? getGlobalBigIntType(/*reportErrors*/ languageVersion >= ScriptTarget.ES2020) : + t.flags & TypeFlags.BigIntLike ? getGlobalBigIntType() : t.flags & TypeFlags.BooleanLike ? globalBooleanType : - t.flags & TypeFlags.ESSymbolLike ? getGlobalESSymbolType(/*reportErrors*/ languageVersion >= ScriptTarget.ES2015) : + t.flags & TypeFlags.ESSymbolLike ? getGlobalESSymbolType() : t.flags & TypeFlags.NonPrimitive ? emptyObjectType : t.flags & TypeFlags.Index ? keyofConstraintType : t.flags & TypeFlags.Unknown && !strictNullChecks ? emptyObjectType : @@ -14026,8 +14026,8 @@ namespace ts { return deferredGlobalESSymbolConstructorTypeSymbol ||= getGlobalTypeSymbol("SymbolConstructor" as __String, reportErrors); } - function getGlobalESSymbolType(reportErrors: boolean) { - return (deferredGlobalESSymbolType ||= getGlobalType("Symbol" as __String, /*arity*/ 0, reportErrors)) || emptyObjectType; + function getGlobalESSymbolType() { + return (deferredGlobalESSymbolType ||= getGlobalType("Symbol" as __String, /*arity*/ 0, /*reportErrors*/ false)) || emptyObjectType; } function getGlobalPromiseType(reportErrors: boolean) { @@ -14109,8 +14109,8 @@ namespace ts { return deferredGlobalAwaitedSymbol === unknownSymbol ? undefined : deferredGlobalAwaitedSymbol; } - function getGlobalBigIntType(reportErrors: boolean) { - return (deferredGlobalBigIntType ||= getGlobalType("BigInt" as __String, /*arity*/ 0, reportErrors)) || emptyObjectType; + function getGlobalBigIntType() { + return (deferredGlobalBigIntType ||= getGlobalType("BigInt" as __String, /*arity*/ 0, /*reportErrors*/ false)) || emptyObjectType; } /** @@ -18553,7 +18553,7 @@ namespace ts { if ((globalStringType === source && stringType === target) || (globalNumberType === source && numberType === target) || (globalBooleanType === source && booleanType === target) || - (getGlobalESSymbolType(/*reportErrors*/ false) === source && esSymbolType === target)) { + (getGlobalESSymbolType() === source && esSymbolType === target)) { reportError(Diagnostics._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible, targetType, sourceType); } } diff --git a/tests/baselines/reference/bigintMissingES2020.errors.txt b/tests/baselines/reference/bigintMissingES2020.errors.txt deleted file mode 100644 index 768ee7214c8..00000000000 --- a/tests/baselines/reference/bigintMissingES2020.errors.txt +++ /dev/null @@ -1,12 +0,0 @@ -error TS2318: Cannot find global type 'BigInt'. - - -!!! error TS2318: Cannot find global type 'BigInt'. -==== tests/cases/conformance/es2020/bigintMissingES2020.ts (0 errors) ==== - declare function test(): void; - - test<{t?: string}, object>(); - test<{t?: string}, bigint>(); - - // should have global error when bigint is used but ES2020 lib is not present - \ No newline at end of file diff --git a/tests/baselines/reference/bigintMissingES2020.js b/tests/baselines/reference/bigintMissingES2020.js index 83e2cde68e0..01e8c020895 100644 --- a/tests/baselines/reference/bigintMissingES2020.js +++ b/tests/baselines/reference/bigintMissingES2020.js @@ -4,10 +4,10 @@ declare function test(): void; test<{t?: string}, object>(); test<{t?: string}, bigint>(); -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present //// [bigintMissingES2020.js] test(); test(); -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present diff --git a/tests/baselines/reference/bigintMissingES2020.symbols b/tests/baselines/reference/bigintMissingES2020.symbols index 0757f97759e..61438c69122 100644 --- a/tests/baselines/reference/bigintMissingES2020.symbols +++ b/tests/baselines/reference/bigintMissingES2020.symbols @@ -13,5 +13,5 @@ test<{t?: string}, bigint>(); >test : Symbol(test, Decl(bigintMissingES2020.ts, 0, 0)) >t : Symbol(t, Decl(bigintMissingES2020.ts, 3, 6)) -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present diff --git a/tests/baselines/reference/bigintMissingES2020.types b/tests/baselines/reference/bigintMissingES2020.types index 36b26c3a43d..1be5a9eb27c 100644 --- a/tests/baselines/reference/bigintMissingES2020.types +++ b/tests/baselines/reference/bigintMissingES2020.types @@ -12,5 +12,5 @@ test<{t?: string}, bigint>(); >test : () => void >t : string -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present diff --git a/tests/baselines/reference/bigintMissingESNext.errors.txt b/tests/baselines/reference/bigintMissingESNext.errors.txt deleted file mode 100644 index 381223a9451..00000000000 --- a/tests/baselines/reference/bigintMissingESNext.errors.txt +++ /dev/null @@ -1,12 +0,0 @@ -error TS2318: Cannot find global type 'BigInt'. - - -!!! error TS2318: Cannot find global type 'BigInt'. -==== tests/cases/conformance/es2020/bigintMissingESNext.ts (0 errors) ==== - declare function test(): void; - - test<{t?: string}, object>(); - test<{t?: string}, bigint>(); - - // should have global error when bigint is used but ES2020 lib is not present - \ No newline at end of file diff --git a/tests/baselines/reference/bigintMissingESNext.js b/tests/baselines/reference/bigintMissingESNext.js index 5029ca536c2..300fbe5db5f 100644 --- a/tests/baselines/reference/bigintMissingESNext.js +++ b/tests/baselines/reference/bigintMissingESNext.js @@ -4,10 +4,10 @@ declare function test(): void; test<{t?: string}, object>(); test<{t?: string}, bigint>(); -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present //// [bigintMissingESNext.js] test(); test(); -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present diff --git a/tests/baselines/reference/bigintMissingESNext.symbols b/tests/baselines/reference/bigintMissingESNext.symbols index bd500ba04b0..a517f40d971 100644 --- a/tests/baselines/reference/bigintMissingESNext.symbols +++ b/tests/baselines/reference/bigintMissingESNext.symbols @@ -13,5 +13,5 @@ test<{t?: string}, bigint>(); >test : Symbol(test, Decl(bigintMissingESNext.ts, 0, 0)) >t : Symbol(t, Decl(bigintMissingESNext.ts, 3, 6)) -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present diff --git a/tests/baselines/reference/bigintMissingESNext.types b/tests/baselines/reference/bigintMissingESNext.types index 6665aac1d5c..d34f9e5250e 100644 --- a/tests/baselines/reference/bigintMissingESNext.types +++ b/tests/baselines/reference/bigintMissingESNext.types @@ -12,5 +12,5 @@ test<{t?: string}, bigint>(); >test : () => void >t : string -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present diff --git a/tests/baselines/reference/contextualSignatureInObjectFreeze.js b/tests/baselines/reference/contextualSignatureInObjectFreeze.js new file mode 100644 index 00000000000..e25ef7ab247 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInObjectFreeze.js @@ -0,0 +1,13 @@ +//// [contextualSignatureInObjectFreeze.ts] +// #49101 + +Object.freeze({ + f: function () { } +}) + + +//// [contextualSignatureInObjectFreeze.js] +// #49101 +Object.freeze({ + f: function () { } +}); diff --git a/tests/baselines/reference/contextualSignatureInObjectFreeze.symbols b/tests/baselines/reference/contextualSignatureInObjectFreeze.symbols new file mode 100644 index 00000000000..68e9d81c600 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInObjectFreeze.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/contextualSignatureInObjectFreeze.ts === +// #49101 + +Object.freeze({ +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + f: function () { } +>f : Symbol(f, Decl(contextualSignatureInObjectFreeze.ts, 2, 15)) + +}) + diff --git a/tests/baselines/reference/contextualSignatureInObjectFreeze.types b/tests/baselines/reference/contextualSignatureInObjectFreeze.types new file mode 100644 index 00000000000..a2d8418cbf0 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInObjectFreeze.types @@ -0,0 +1,16 @@ +=== tests/cases/compiler/contextualSignatureInObjectFreeze.ts === +// #49101 + +Object.freeze({ +>Object.freeze({ f: function () { }}) : Readonly<{ f: () => void; }> +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>Object : ObjectConstructor +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>{ f: function () { }} : { f: () => void; } + + f: function () { } +>f : () => void +>function () { } : () => void + +}) + diff --git a/tests/cases/compiler/contextualSignatureInObjectFreeze.ts b/tests/cases/compiler/contextualSignatureInObjectFreeze.ts new file mode 100644 index 00000000000..1f2c561c13d --- /dev/null +++ b/tests/cases/compiler/contextualSignatureInObjectFreeze.ts @@ -0,0 +1,7 @@ +// #49101 +// @target: es2020 +// @lib: es2019 + +Object.freeze({ + f: function () { } +}) diff --git a/tests/cases/conformance/es2020/bigintMissingES2020.ts b/tests/cases/conformance/es2020/bigintMissingES2020.ts index dc2f459e034..bd378f411eb 100644 --- a/tests/cases/conformance/es2020/bigintMissingES2020.ts +++ b/tests/cases/conformance/es2020/bigintMissingES2020.ts @@ -5,4 +5,4 @@ declare function test(): void; test<{t?: string}, object>(); test<{t?: string}, bigint>(); -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present diff --git a/tests/cases/conformance/es2020/bigintMissingESNext.ts b/tests/cases/conformance/es2020/bigintMissingESNext.ts index f3d90f64bde..8ea758777cc 100644 --- a/tests/cases/conformance/es2020/bigintMissingESNext.ts +++ b/tests/cases/conformance/es2020/bigintMissingESNext.ts @@ -5,4 +5,4 @@ declare function test(): void; test<{t?: string}, object>(); test<{t?: string}, bigint>(); -// should have global error when bigint is used but ES2020 lib is not present +// no error when bigint is used even when ES2020 lib is not present From 0df9462a968e6c787d542524f643b4c9d534f4c8 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Tue, 17 May 2022 00:29:40 +0300 Subject: [PATCH 52/64] fix(49058): Language service crashes for static member in class with unresolved base members (#49059) * fix(49058): skip unresolved base members * use getTypeOfSymbol instead of getExportsOfModule --- src/services/services.ts | 5 +- .../reference/quickInfoInheritDoc4.baseline | 73 +++++++++++++++++++ .../reference/quickInfoInheritDoc5.baseline | 73 +++++++++++++++++++ .../reference/quickInfoInheritDoc6.baseline | 73 +++++++++++++++++++ tests/cases/fourslash/quickInfoInheritDoc4.ts | 15 ++++ tests/cases/fourslash/quickInfoInheritDoc5.ts | 18 +++++ tests/cases/fourslash/quickInfoInheritDoc6.ts | 16 ++++ 7 files changed, 270 insertions(+), 3 deletions(-) create mode 100644 tests/baselines/reference/quickInfoInheritDoc4.baseline create mode 100644 tests/baselines/reference/quickInfoInheritDoc5.baseline create mode 100644 tests/baselines/reference/quickInfoInheritDoc6.baseline create mode 100644 tests/cases/fourslash/quickInfoInheritDoc4.ts create mode 100644 tests/cases/fourslash/quickInfoInheritDoc5.ts create mode 100644 tests/cases/fourslash/quickInfoInheritDoc6.ts diff --git a/src/services/services.ts b/src/services/services.ts index 9ac9cf35400..7633f079061 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -649,9 +649,8 @@ namespace ts { const isStaticMember = hasStaticModifier(declaration); return firstDefined(getAllSuperTypeNodes(classOrInterfaceDeclaration), superTypeNode => { const baseType = checker.getTypeAtLocation(superTypeNode); - const symbol = isStaticMember - ? find(checker.getExportsOfModule(baseType.symbol), s => s.escapedName === declaration.symbol.name) - : checker.getPropertyOfType(baseType, declaration.symbol.name); + const type = isStaticMember && baseType.symbol ? checker.getTypeOfSymbol(baseType.symbol) : baseType; + const symbol = checker.getPropertyOfType(type, declaration.symbol.name); return symbol ? cb(symbol) : undefined; }); } diff --git a/tests/baselines/reference/quickInfoInheritDoc4.baseline b/tests/baselines/reference/quickInfoInheritDoc4.baseline new file mode 100644 index 00000000000..76e64f647d0 --- /dev/null +++ b/tests/baselines/reference/quickInfoInheritDoc4.baseline @@ -0,0 +1,73 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoInheritDoc4.ts", + "position": 79, + "name": "" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "static", + "textSpan": { + "start": 79, + "length": 5 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "value", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "inheritdoc" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoInheritDoc5.baseline b/tests/baselines/reference/quickInfoInheritDoc5.baseline new file mode 100644 index 00000000000..09bc74d1e86 --- /dev/null +++ b/tests/baselines/reference/quickInfoInheritDoc5.baseline @@ -0,0 +1,73 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoInheritDoc5.js", + "position": 83, + "name": "" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "static", + "textSpan": { + "start": 83, + "length": 5 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "value", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "inheritdoc" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoInheritDoc6.baseline b/tests/baselines/reference/quickInfoInheritDoc6.baseline new file mode 100644 index 00000000000..c23fd104f01 --- /dev/null +++ b/tests/baselines/reference/quickInfoInheritDoc6.baseline @@ -0,0 +1,73 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoInheritDoc6.js", + "position": 107, + "name": "" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "static", + "textSpan": { + "start": 107, + "length": 5 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "value", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "inheritdoc" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/cases/fourslash/quickInfoInheritDoc4.ts b/tests/cases/fourslash/quickInfoInheritDoc4.ts new file mode 100644 index 00000000000..70287075429 --- /dev/null +++ b/tests/cases/fourslash/quickInfoInheritDoc4.ts @@ -0,0 +1,15 @@ +/// + +// @Filename: quickInfoInheritDoc4.ts +////var A: any; +//// +////class B extends A { +//// /** +//// * @inheritdoc +//// */ +//// static /**/value() { +//// return undefined; +//// } +////} + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoInheritDoc5.ts b/tests/cases/fourslash/quickInfoInheritDoc5.ts new file mode 100644 index 00000000000..9790a74712d --- /dev/null +++ b/tests/cases/fourslash/quickInfoInheritDoc5.ts @@ -0,0 +1,18 @@ +/// + +// @allowJs: true +// @checkJs: true + +// @Filename: quickInfoInheritDoc5.js +////function A() {} +//// +////class B extends A { +//// /** +//// * @inheritdoc +//// */ +//// static /**/value() { +//// return undefined; +//// } +////} + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoInheritDoc6.ts b/tests/cases/fourslash/quickInfoInheritDoc6.ts new file mode 100644 index 00000000000..eb7deca9523 --- /dev/null +++ b/tests/cases/fourslash/quickInfoInheritDoc6.ts @@ -0,0 +1,16 @@ +/// + +// @allowJs: true +// @checkJs: true + +// @Filename: quickInfoInheritDoc6.js +////class B extends UNRESOLVED_VALUE_DEFINITELY_DOES_NOT_EXIST { +//// /** +//// * @inheritdoc +//// */ +//// static /**/value() { +//// return undefined; +//// } +////} + +verify.baselineQuickInfo(); From 755d5ccad6427eefedd35f7fa73e277fd937c0bf Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Tue, 17 May 2022 01:26:26 +0300 Subject: [PATCH 53/64] fix confused comment (#49094) --- .../jsxExcessPropsAndAssignability.errors.txt | 8 +++----- .../reference/jsxExcessPropsAndAssignability.js | 4 ---- .../reference/jsxExcessPropsAndAssignability.symbols | 12 +++++------- .../reference/jsxExcessPropsAndAssignability.types | 4 +--- .../compiler/jsxExcessPropsAndAssignability.tsx | 2 -- 5 files changed, 9 insertions(+), 21 deletions(-) diff --git a/tests/baselines/reference/jsxExcessPropsAndAssignability.errors.txt b/tests/baselines/reference/jsxExcessPropsAndAssignability.errors.txt index 3e15a705edf..dfe61765e39 100644 --- a/tests/baselines/reference/jsxExcessPropsAndAssignability.errors.txt +++ b/tests/baselines/reference/jsxExcessPropsAndAssignability.errors.txt @@ -1,7 +1,7 @@ -tests/cases/compiler/jsxExcessPropsAndAssignability.tsx(14,27): error TS2698: Spread types may only be created from object types. -tests/cases/compiler/jsxExcessPropsAndAssignability.tsx(16,6): error TS2322: Type 'ComposedComponentProps & { myProp: number; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes> & Readonly<{ children?: ReactNode; }> & Readonly'. +tests/cases/compiler/jsxExcessPropsAndAssignability.tsx(13,27): error TS2698: Spread types may only be created from object types. +tests/cases/compiler/jsxExcessPropsAndAssignability.tsx(14,6): error TS2322: Type 'ComposedComponentProps & { myProp: number; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes> & Readonly<{ children?: ReactNode; }> & Readonly'. Type 'ComposedComponentProps & { myProp: number; }' is not assignable to type 'Readonly'. -tests/cases/compiler/jsxExcessPropsAndAssignability.tsx(16,27): error TS2698: Spread types may only be created from object types. +tests/cases/compiler/jsxExcessPropsAndAssignability.tsx(14,27): error TS2698: Spread types may only be created from object types. ==== tests/cases/compiler/jsxExcessPropsAndAssignability.tsx (3 errors) ==== @@ -17,11 +17,9 @@ tests/cases/compiler/jsxExcessPropsAndAssignability.tsx(16,27): error TS2698: Sp const props: ComposedComponentProps = null as any; - // Expected no error, got none - good ; ~~~~~ !!! error TS2698: Spread types may only be created from object types. - // Expected error, but got none - bad! ; ~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'ComposedComponentProps & { myProp: number; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes> & Readonly<{ children?: ReactNode; }> & Readonly'. diff --git a/tests/baselines/reference/jsxExcessPropsAndAssignability.js b/tests/baselines/reference/jsxExcessPropsAndAssignability.js index 68e02b91877..eeeb82b1ab1 100644 --- a/tests/baselines/reference/jsxExcessPropsAndAssignability.js +++ b/tests/baselines/reference/jsxExcessPropsAndAssignability.js @@ -11,9 +11,7 @@ const myHoc = ( const props: ComposedComponentProps = null as any; - // Expected no error, got none - good ; - // Expected error, but got none - bad! ; }; @@ -37,8 +35,6 @@ var React = require("react"); var myHoc = function (ComposedComponent) { var WrapperComponent = null; var props = null; - // Expected no error, got none - good React.createElement(WrapperComponent, __assign({}, props, { myProp: '1000000' })); - // Expected error, but got none - bad! React.createElement(WrapperComponent, __assign({}, props, { myProp: 1000000 })); }; diff --git a/tests/baselines/reference/jsxExcessPropsAndAssignability.symbols b/tests/baselines/reference/jsxExcessPropsAndAssignability.symbols index fa5e712abe6..b5ebf5ef487 100644 --- a/tests/baselines/reference/jsxExcessPropsAndAssignability.symbols +++ b/tests/baselines/reference/jsxExcessPropsAndAssignability.symbols @@ -30,17 +30,15 @@ const myHoc = ( >props : Symbol(props, Decl(jsxExcessPropsAndAssignability.tsx, 10, 9)) >ComposedComponentProps : Symbol(ComposedComponentProps, Decl(jsxExcessPropsAndAssignability.tsx, 4, 15)) - // Expected no error, got none - good ; >WrapperComponent : Symbol(WrapperComponent, Decl(jsxExcessPropsAndAssignability.tsx, 8, 9)) >props : Symbol(props, Decl(jsxExcessPropsAndAssignability.tsx, 10, 9)) +>myProp : Symbol(myProp, Decl(jsxExcessPropsAndAssignability.tsx, 12, 32)) + + ; +>WrapperComponent : Symbol(WrapperComponent, Decl(jsxExcessPropsAndAssignability.tsx, 8, 9)) +>props : Symbol(props, Decl(jsxExcessPropsAndAssignability.tsx, 10, 9)) >myProp : Symbol(myProp, Decl(jsxExcessPropsAndAssignability.tsx, 13, 32)) - // Expected error, but got none - bad! - ; ->WrapperComponent : Symbol(WrapperComponent, Decl(jsxExcessPropsAndAssignability.tsx, 8, 9)) ->props : Symbol(props, Decl(jsxExcessPropsAndAssignability.tsx, 10, 9)) ->myProp : Symbol(myProp, Decl(jsxExcessPropsAndAssignability.tsx, 15, 32)) - }; diff --git a/tests/baselines/reference/jsxExcessPropsAndAssignability.types b/tests/baselines/reference/jsxExcessPropsAndAssignability.types index c9fa90a0c69..b0c77ff1be2 100644 --- a/tests/baselines/reference/jsxExcessPropsAndAssignability.types +++ b/tests/baselines/reference/jsxExcessPropsAndAssignability.types @@ -6,7 +6,7 @@ import * as React from 'react'; const myHoc = ( >myHoc : (ComposedComponent: React.ComponentClass) => void ->( ComposedComponent: React.ComponentClass,) => { type WrapperComponentProps = ComposedComponentProps & { myProp: string }; const WrapperComponent: React.ComponentClass = null as any; const props: ComposedComponentProps = null as any; // Expected no error, got none - good ; // Expected error, but got none - bad! ;} : (ComposedComponent: React.ComponentClass) => void +>( ComposedComponent: React.ComponentClass,) => { type WrapperComponentProps = ComposedComponentProps & { myProp: string }; const WrapperComponent: React.ComponentClass = null as any; const props: ComposedComponentProps = null as any; ; ;} : (ComposedComponent: React.ComponentClass) => void ComposedComponent: React.ComponentClass, >ComposedComponent : React.ComponentClass @@ -28,7 +28,6 @@ const myHoc = ( >null as any : any >null : null - // Expected no error, got none - good ; > : JSX.Element >WrapperComponent : React.ComponentClass @@ -36,7 +35,6 @@ const myHoc = ( >myProp : "1000000" >'1000000' : "1000000" - // Expected error, but got none - bad! ; > : JSX.Element >WrapperComponent : React.ComponentClass diff --git a/tests/cases/compiler/jsxExcessPropsAndAssignability.tsx b/tests/cases/compiler/jsxExcessPropsAndAssignability.tsx index e2437360ed1..e5c56b222fd 100644 --- a/tests/cases/compiler/jsxExcessPropsAndAssignability.tsx +++ b/tests/cases/compiler/jsxExcessPropsAndAssignability.tsx @@ -12,8 +12,6 @@ const myHoc = ( const props: ComposedComponentProps = null as any; - // Expected no error, got none - good ; - // Expected error, but got none - bad! ; }; From 49145b86169c81993d6f00a4f7cd18a42ce8719f Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Tue, 17 May 2022 06:07:09 +0000 Subject: [PATCH 54/64] Update package-lock.json --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index e9223981c56..9168ccb330d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -638,9 +638,9 @@ "dev": true }, "@types/node": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz", - "integrity": "sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==", + "version": "17.0.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.34.tgz", + "integrity": "sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA==", "dev": true }, "@types/node-fetch": { @@ -1479,7 +1479,7 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, "chokidar": { @@ -3173,9 +3173,9 @@ } }, "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" From ce85d647ef88183c019588bcf398320ce29b625a Mon Sep 17 00:00:00 2001 From: csigs Date: Tue, 17 May 2022 03:46:13 -0700 Subject: [PATCH 55/64] LEGO: Merge pull request 49148 LEGO: Merge pull request 49148 --- .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 27 +++++++++++++++++++ 5 files changed, 135 insertions(+) diff --git a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl index abdf614f728..317e0f3d615 100644 --- a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3519,6 +3519,24 @@ + + + + + + + + + + + + + + + + + + @@ -13488,6 +13506,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl index 09fb7d60d33..0297c8f16c1 100644 --- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3516,6 +3516,24 @@ + + + + + + + + + + + + + + + + + + @@ -13482,6 +13500,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl index 8b0ef6d59c3..7a7125b04e3 100644 --- a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3519,6 +3519,24 @@ + + + + + + + + + + + + + + + + + + @@ -13488,6 +13506,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl index d73a256e9bb..37ea7a94809 100644 --- a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3509,6 +3509,24 @@ + + + + + + + + + + + + + + + + + + @@ -13475,6 +13493,15 @@ + + + + + + + + + diff --git a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl index a90d048830d..d76cc781655 100644 --- a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -3512,6 +3512,24 @@ + + + + + + + + + + + + + + + + + + @@ -13481,6 +13499,15 @@ + + + + + + + + + From e56a06780141c8ff75f24506572dc35d26d49391 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Wed, 18 May 2022 13:58:06 -0700 Subject: [PATCH 56/64] Fix uncalled function check usage detection for && expressions (#49157) --- src/compiler/checker.ts | 2 +- .../uncalledFunctionChecksInConditional.errors.txt | 6 +++++- .../reference/uncalledFunctionChecksInConditional.js | 10 +++++++++- .../uncalledFunctionChecksInConditional.symbols | 8 ++++++++ .../uncalledFunctionChecksInConditional.types | 10 ++++++++++ .../compiler/uncalledFunctionChecksInConditional.ts | 5 +++++ 6 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2e2c75eb384..ec43221b1f7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -38001,7 +38001,7 @@ namespace ts { const childSymbol = getSymbolAtLocation(childNode); if (childSymbol && childSymbol === testedSymbol) { // If the test was a simple identifier, the above check is sufficient - if (isIdentifier(expr)) { + if (isIdentifier(expr) || isIdentifier(testedNode) && isBinaryExpression(testedNode.parent)) { return true; } // Otherwise we need to ensure the symbol is called on the same target diff --git a/tests/baselines/reference/uncalledFunctionChecksInConditional.errors.txt b/tests/baselines/reference/uncalledFunctionChecksInConditional.errors.txt index cc0234d259f..ea3cdfabed3 100644 --- a/tests/baselines/reference/uncalledFunctionChecksInConditional.errors.txt +++ b/tests/baselines/reference/uncalledFunctionChecksInConditional.errors.txt @@ -78,4 +78,8 @@ tests/cases/compiler/uncalledFunctionChecksInConditional.ts(48,22): error TS2774 !!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? // error on isFoo } - \ No newline at end of file + + if (x && z) { + // no error + z(); + } \ No newline at end of file diff --git a/tests/baselines/reference/uncalledFunctionChecksInConditional.js b/tests/baselines/reference/uncalledFunctionChecksInConditional.js index 3d77b939a33..ce3504c9762 100644 --- a/tests/baselines/reference/uncalledFunctionChecksInConditional.js +++ b/tests/baselines/reference/uncalledFunctionChecksInConditional.js @@ -49,7 +49,11 @@ if (x || uy || z || isUndefinedFoo) { if (ux || y || uz || isFoo) { // error on isFoo } - + +if (x && z) { + // no error + z(); +} //// [uncalledFunctionChecksInConditional.js] if (isFoo) { @@ -82,3 +86,7 @@ if (x || uy || z || isUndefinedFoo) { if (ux || y || uz || isFoo) { // error on isFoo } +if (x && z) { + // no error + z(); +} diff --git a/tests/baselines/reference/uncalledFunctionChecksInConditional.symbols b/tests/baselines/reference/uncalledFunctionChecksInConditional.symbols index 498aa735891..567e0ad39df 100644 --- a/tests/baselines/reference/uncalledFunctionChecksInConditional.symbols +++ b/tests/baselines/reference/uncalledFunctionChecksInConditional.symbols @@ -101,3 +101,11 @@ if (ux || y || uz || isFoo) { // error on isFoo } +if (x && z) { +>x : Symbol(x, Decl(uncalledFunctionChecksInConditional.ts, 24, 13)) +>z : Symbol(z, Decl(uncalledFunctionChecksInConditional.ts, 27, 38)) + + // no error + z(); +>z : Symbol(z, Decl(uncalledFunctionChecksInConditional.ts, 27, 38)) +} diff --git a/tests/baselines/reference/uncalledFunctionChecksInConditional.types b/tests/baselines/reference/uncalledFunctionChecksInConditional.types index b8b78a1b57d..7d677ff140a 100644 --- a/tests/baselines/reference/uncalledFunctionChecksInConditional.types +++ b/tests/baselines/reference/uncalledFunctionChecksInConditional.types @@ -120,3 +120,13 @@ if (ux || y || uz || isFoo) { // error on isFoo } +if (x && z) { +>x && z : false | (() => boolean) +>x : boolean +>z : () => boolean + + // no error + z(); +>z() : boolean +>z : () => boolean +} diff --git a/tests/cases/compiler/uncalledFunctionChecksInConditional.ts b/tests/cases/compiler/uncalledFunctionChecksInConditional.ts index df0142775f1..0e9b555725a 100644 --- a/tests/cases/compiler/uncalledFunctionChecksInConditional.ts +++ b/tests/cases/compiler/uncalledFunctionChecksInConditional.ts @@ -50,3 +50,8 @@ if (x || uy || z || isUndefinedFoo) { if (ux || y || uz || isFoo) { // error on isFoo } + +if (x && z) { + // no error + z(); +} \ No newline at end of file From 12ed01203cb368285aa2f0aa61c1ee76d5768fa2 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Wed, 18 May 2022 17:26:17 -0700 Subject: [PATCH 57/64] Clean up FAR aggregation (#48619) * Clean up FAR and RenameLocations This change had two goals: 1. Make the code easier to understand, primarily by simplifying the callback structure and minimizing side-effects 2. Improve performance by reducing repeated work, both FAR searches of individual projects and default tsconfig searches This implementation attempts to preserve the merging order found in the original code (someone less relevant in the present state of using syntactic isDefinition). * Stop enforcing search and aggregation order ...in preparation for implementing isDefinition explicitly. Also restore convention of referring to `DocumentPosition`s as "locations". * Introduce LanguageService.updateIsDefinitionOfReferencedSymbols ...to allow use of the checker when computing isDefinition across projects. * Update baselines * Tidy diff * De-dup simplified results * Baseline cross-project isDefinition results * Move de-duping upstream to fix Full output * Add server baseline test to confirm searches are not repeated * Manually merge #48758 * Update baseline for newer fix to #48963 --- src/harness/client.ts | 4 + src/harness/harnessLanguageService.ts | 3 + src/server/session.ts | 431 ++-- src/services/findAllReferences.ts | 2 +- src/services/services.ts | 57 + src/services/types.ts | 5 + src/services/utilities.ts | 42 + .../unittests/tsserver/declarationFileMaps.ts | 4 +- .../unittests/tsserver/projectReferences.ts | 120 ++ ...initionAcrossGlobalProjects.baseline.jsonc | 1144 ++++++++++ ...initionAcrossModuleProjects.baseline.jsonc | 1915 +++++++++++++++++ ...onPropertyNameStringLiteral.baseline.jsonc | 23 +- .../ancestor-and-project-ref-management.js | 2 + ...ssfully-find-references-with-out-option.js | 2 + ...-are-disabled-and-a-decl-map-is-present.js | 2 +- ...s-are-enabled-and-a-decl-map-is-missing.js | 2 +- ...s-are-enabled-and-a-decl-map-is-present.js | 2 +- ...-are-disabled-and-a-decl-map-is-present.js | 2 +- ...s-are-enabled-and-a-decl-map-is-missing.js | 2 +- ...s-are-enabled-and-a-decl-map-is-present.js | 2 +- ...-are-disabled-and-a-decl-map-is-present.js | 2 +- ...s-are-enabled-and-a-decl-map-is-missing.js | 2 +- ...s-are-enabled-and-a-decl-map-is-present.js | 2 +- .../sibling-projects.js | 4 + ...ding-references-in-overlapping-projects.js | 308 +++ ...ject-is-directly-referenced-by-solution.js | 2 +- ...ct-is-indirectly-referenced-by-solution.js | 22 +- ...ot-file-is-file-from-referenced-project.js | 6 + ...ces-open-file-through-project-reference.js | 13 +- ...ct-is-indirectly-referenced-by-solution.js | 84 +- ...nction-as-object-literal-property-types.js | 6 +- ...ss-when-using-arrow-function-assignment.js | 6 +- ...s-when-using-method-of-class-expression.js | 6 +- ...ness-when-using-object-literal-property.js | 6 +- .../isDefinitionAcrossGlobalProjects.ts | 92 + .../isDefinitionAcrossModuleProjects.ts | 134 ++ 36 files changed, 4233 insertions(+), 228 deletions(-) create mode 100644 tests/baselines/reference/isDefinitionAcrossGlobalProjects.baseline.jsonc create mode 100644 tests/baselines/reference/isDefinitionAcrossModuleProjects.baseline.jsonc create mode 100644 tests/baselines/reference/tsserver/projectReferences/finding-references-in-overlapping-projects.js create mode 100644 tests/cases/fourslash/server/isDefinitionAcrossGlobalProjects.ts create mode 100644 tests/cases/fourslash/server/isDefinitionAcrossModuleProjects.ts diff --git a/src/harness/client.ts b/src/harness/client.ts index 7c8869995bb..4537dc84b10 100644 --- a/src/harness/client.ts +++ b/src/harness/client.ts @@ -880,6 +880,10 @@ namespace ts.server { throw new Error("Program objects are not serializable through the server protocol."); } + updateIsDefinitionOfReferencedSymbols(_referencedSymbols: readonly ReferencedSymbol[], _knownSymbolSpans: Set): boolean { + return notImplemented(); + } + getNonBoundSourceFile(_fileName: string): SourceFile { throw new Error("SourceFile objects are not serializable through the server protocol."); } diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 5468068d922..820b92e2de7 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -630,6 +630,9 @@ namespace Harness.LanguageService { getAutoImportProvider(): ts.Program | undefined { throw new Error("Program can not be marshaled across the shim layer."); } + updateIsDefinitionOfReferencedSymbols(_referencedSymbols: readonly ts.ReferencedSymbol[], _knownSymbolSpans: ts.Set): boolean { + return ts.notImplemented(); + } getNonBoundSourceFile(): ts.SourceFile { throw new Error("SourceFile can not be marshaled across the shim layer."); } diff --git a/src/server/session.ts b/src/server/session.ts index ecd5b76ac46..2a524516ed4 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -303,7 +303,7 @@ namespace ts.server { return createSet(({textSpan}) => textSpan.start + 100003 * textSpan.length, documentSpansEqual); } - function combineProjectOutputForRenameLocations( + function getRenameLocationsWorker( projects: Projects, defaultProject: Project, initialLocation: DocumentPosition, @@ -311,89 +311,164 @@ namespace ts.server { findInComments: boolean, { providePrefixAndSuffixTextForRename }: UserPreferences ): readonly RenameLocation[] { - const outputs: RenameLocation[] = []; - const seen = createDocumentSpanSet(); - combineProjectOutputWorker( + const perProjectResults = getPerProjectReferences( projects, defaultProject, initialLocation, /*isForRename*/ true, - (project, location, tryAddToTodo) => { - const projectOutputs = project.getLanguageService().findRenameLocations(location.fileName, location.pos, findInStrings, findInComments, providePrefixAndSuffixTextForRename); - if (projectOutputs) { - for (const output of projectOutputs) { - if (!seen.has(output) && !tryAddToTodo(project, documentSpanLocation(output))) { - seen.add(output); - outputs.push(output); - } - } - } - }, + (project, position) => project.getLanguageService().findRenameLocations(position.fileName, position.pos, findInStrings, findInComments, providePrefixAndSuffixTextForRename), + (renameLocation, cb) => cb(documentSpanLocation(renameLocation)), ); - return outputs; + + // No filtering or dedup'ing is required if there's exactly one project + if (isArray(perProjectResults)) { + return perProjectResults; + } + + const results: RenameLocation[] = []; + const seen = createDocumentSpanSet(); + + perProjectResults.forEach((projectResults, project) => { + for (const result of projectResults) { + // If there's a mapped location, it'll appear in the results for another project + if (!seen.has(result) && !getMappedLocationForProject(documentSpanLocation(result), project)) { + results.push(result); + seen.add(result); + } + } + }); + + return results; } function getDefinitionLocation(defaultProject: Project, initialLocation: DocumentPosition, isForRename: boolean): DocumentPosition | undefined { - const infos = defaultProject.getLanguageService().getDefinitionAtPosition(initialLocation.fileName, initialLocation.pos, /*searchOtherFilesOnly*/ false, isForRename); + const infos = defaultProject.getLanguageService().getDefinitionAtPosition(initialLocation.fileName, initialLocation.pos, /*searchOtherFilesOnly*/ false, /*stopAtAlias*/ isForRename); const info = infos && firstOrUndefined(infos); return info && !info.isLocal ? { fileName: info.fileName, pos: info.textSpan.start } : undefined; } - function combineProjectOutputForReferences( + function getReferencesWorker( projects: Projects, defaultProject: Project, initialLocation: DocumentPosition, logger: Logger, ): readonly ReferencedSymbol[] { - const outputs: ReferencedSymbol[] = []; - - combineProjectOutputWorker( + const perProjectResults = getPerProjectReferences( projects, defaultProject, initialLocation, /*isForRename*/ false, - (project, location, getMappedLocation) => { - logger.info(`Finding references to ${location.fileName} position ${location.pos} in project ${project.getProjectName()}`); - const projectOutputs = project.getLanguageService().findReferences(location.fileName, location.pos); - if (projectOutputs) { - const clearIsDefinition = projectOutputs[0]?.references[0]?.isDefinition === undefined; - for (const referencedSymbol of projectOutputs) { - const mappedDefinitionFile = getMappedLocation(project, documentSpanLocation(referencedSymbol.definition)); - const definition: ReferencedSymbolDefinitionInfo = mappedDefinitionFile === undefined ? - referencedSymbol.definition : - { - ...referencedSymbol.definition, - textSpan: createTextSpan(mappedDefinitionFile.pos, referencedSymbol.definition.textSpan.length), - fileName: mappedDefinitionFile.fileName, - contextSpan: getMappedContextSpan(referencedSymbol.definition, project) - }; - - let symbolToAddTo = find(outputs, o => documentSpansEqual(o.definition, definition)); - if (!symbolToAddTo) { - symbolToAddTo = { definition, references: [] }; - outputs.push(symbolToAddTo); - } - - for (const ref of referencedSymbol.references) { - // If it's in a mapped file, that is added to the todo list by `getMappedLocation`. - if (!contains(symbolToAddTo.references, ref, documentSpansEqual) && !getMappedLocation(project, documentSpanLocation(ref))) { - if (clearIsDefinition) { - delete ref.isDefinition; - } - symbolToAddTo.references.push(ref); - } - } - } + (project, position) => { + logger.info(`Finding references to ${position.fileName} position ${position.pos} in project ${project.getProjectName()}`); + return project.getLanguageService().findReferences(position.fileName, position.pos); + }, + (referencedSymbol, cb) => { + cb(documentSpanLocation(referencedSymbol.definition)); + for (const ref of referencedSymbol.references) { + cb(documentSpanLocation(ref)); } }, ); - return outputs.filter(o => o.references.length !== 0); + // No re-mapping or isDefinition updatses are required if there's exactly one project + if (isArray(perProjectResults)) { + return perProjectResults; + } + + // `isDefinition` is only (definitely) correct in `defaultProject` because we might + // have started the other project searches from related symbols. Propagate the + // correct results to all other projects. + + const defaultProjectResults = perProjectResults.get(defaultProject)!; + if (defaultProjectResults[0].references[0].isDefinition === undefined) { + // Clear all isDefinition properties + perProjectResults.forEach(projectResults => { + for (const referencedSymbol of projectResults) { + for (const ref of referencedSymbol.references) { + delete ref.isDefinition; + } + } + }); + } + else { + // Correct isDefinition properties from projects other than defaultProject + const knownSymbolSpans = createDocumentSpanSet(); + for (const referencedSymbol of defaultProjectResults) { + for (const ref of referencedSymbol.references) { + if (ref.isDefinition) { + knownSymbolSpans.add(ref); + // One is enough - updateIsDefinitionOfReferencedSymbols will fill out the set based on symbols + break; + } + } + } + + const updatedProjects = new Set(); + while (true) { + let progress = false; + perProjectResults.forEach((referencedSymbols, project) => { + if (updatedProjects.has(project)) return; + const updated = project.getLanguageService().updateIsDefinitionOfReferencedSymbols(referencedSymbols, knownSymbolSpans); + if (updated) { + updatedProjects.add(project); + progress = true; + } + }); + if (!progress) break; + } + + perProjectResults.forEach((referencedSymbols, project) => { + if (updatedProjects.has(project)) return; + for (const referencedSymbol of referencedSymbols) { + for (const ref of referencedSymbol.references) { + ref.isDefinition = false; + } + } + }); + } + + // We need to de-duplicate and aggregate the results by choosing an authoritative version + // of each definition and merging references from all the projects where they appear. + + const results: ReferencedSymbol[] = []; + const seenRefs = createDocumentSpanSet(); // It doesn't make sense to have a reference in two definition lists, so we de-dup globally + + // TODO: We might end up with a more logical allocation of refs to defs if we pre-sorted the defs by descending ref-count. + // Otherwise, it just ends up attached to the first corresponding def we happen to process. The others may or may not be + // dropped later when we check for defs with ref-count 0. + perProjectResults.forEach((projectResults, project) => { + for (const referencedSymbol of projectResults) { + const mappedDefinitionFile = getMappedLocationForProject(documentSpanLocation(referencedSymbol.definition), project); + const definition: ReferencedSymbolDefinitionInfo = mappedDefinitionFile === undefined ? + referencedSymbol.definition : + { + ...referencedSymbol.definition, + textSpan: createTextSpan(mappedDefinitionFile.pos, referencedSymbol.definition.textSpan.length), // Why would the length be the same in the original? + fileName: mappedDefinitionFile.fileName, + contextSpan: getMappedContextSpanForProject(referencedSymbol.definition, project) + }; + + let symbolToAddTo = find(results, o => documentSpansEqual(o.definition, definition)); + if (!symbolToAddTo) { + symbolToAddTo = { definition, references: [] }; + results.push(symbolToAddTo); + } + + for (const ref of referencedSymbol.references) { + if (!seenRefs.has(ref) && !getMappedLocationForProject(documentSpanLocation(ref), project)) { + seenRefs.add(ref); + symbolToAddTo.references.push(ref); + } + } + } + }); + + return results.filter(o => o.references.length !== 0); } - interface ProjectAndLocation { + interface ProjectAndLocation { readonly project: Project; - readonly location: TLocation; + readonly location: DocumentPosition; } function forEachProjectInProjects(projects: Projects, path: string | undefined, cb: (project: Project, path: string | undefined) => void): void { @@ -409,53 +484,136 @@ namespace ts.server { } } - type CombineProjectOutputCallback = ( - project: Project, - location: TLocation, - getMappedLocation: (project: Project, location: DocumentPosition) => DocumentPosition | undefined, - ) => void; - - function combineProjectOutputWorker( + /** + * @param projects Projects initially known to contain {@link initialLocation} + * @param defaultProject The default project containing {@link initialLocation} + * @param initialLocation Where the search operation was triggered + * @param getResultsForPosition This is where you plug in `findReferences`, `renameLocation`, etc + * @param forPositionInResult Given an item returned by {@link getResultsForPosition} enumerate the positions referred to by that result + * @returns In the common case where there's only one project, returns an array of results from {@link getResultsForPosition}. + * If multiple projects were searched - even if they didn't return results - the result will be a map from project to per-project results. + */ + function getPerProjectReferences( projects: Projects, defaultProject: Project, - initialLocation: TLocation, + initialLocation: DocumentPosition, isForRename: boolean, - cb: CombineProjectOutputCallback, - ): void { - const projectService = defaultProject.projectService; - let toDo: ProjectAndLocation[] | undefined; - const seenProjects = new Set(); - forEachProjectInProjects(projects, initialLocation && initialLocation.fileName, (project, path) => { - // TLocation should be either `DocumentPosition` or `undefined`. Since `initialLocation` is `TLocation` this cast should be valid. - const location = (initialLocation ? { fileName: path, pos: initialLocation.pos } : undefined) as TLocation; - toDo = callbackProjectAndLocation(project, location, projectService, toDo, seenProjects, cb); + getResultsForPosition: (project: Project, location: DocumentPosition) => readonly TResult[] | undefined, + forPositionInResult: (result: TResult, cb: (location: DocumentPosition) => void) => void, + ): readonly TResult[] | ESMap { + // If `getResultsForPosition` returns results for a project, they go in here + const resultsMap = new Map(); + + const queue: ProjectAndLocation[] = []; + + // In order to get accurate isDefinition values for `defaultProject`, + // we need to ensure that it is searched from `initialLocation`. + // The easiest way to do this is to search it first. + queue.push({ project: defaultProject, location: initialLocation }); + + // This will queue `defaultProject` a second time, but it will be dropped + // as a dup when it is dequeued. + forEachProjectInProjects(projects, initialLocation.fileName, (project, path) => { + const location = { fileName: path!, pos: initialLocation.pos }; + queue.push({ project, location }); }); - // After initial references are collected, go over every other project and see if it has a reference for the symbol definition. - if (initialLocation) { - const defaultDefinition = getDefinitionLocation(defaultProject, initialLocation, isForRename); + const projectService = defaultProject.projectService; + const cancellationToken = defaultProject.getCancellationToken(); + + const defaultDefinition = getDefinitionLocation(defaultProject, initialLocation, isForRename); + + // Don't call these unless !!defaultDefinition + const getGeneratedDefinition = memoize(() => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition!.fileName) ? + defaultDefinition : + defaultProject.getLanguageService().getSourceMapper().tryGetGeneratedPosition(defaultDefinition!)); + const getSourceDefinition = memoize(() => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition!.fileName) ? + defaultDefinition : + defaultProject.getLanguageService().getSourceMapper().tryGetSourcePosition(defaultDefinition!)); + + // Track which projects we have already searched so that we don't repeat searches. + // We store the project key, rather than the project, because that's what `loadAncestorProjectTree` wants. + // (For that same reason, we don't use `resultsMap` for this check.) + const searchedProjects = new Set(); + + onCancellation: + while (queue.length) { + while (queue.length) { + if (cancellationToken.isCancellationRequested()) break onCancellation; + + const { project, location } = queue.shift()!; + + if (isLocationProjectReferenceRedirect(project, location)) continue; + + if (!tryAddToSet(searchedProjects, getProjectKey(project))) continue; + + const projectResults = searchPosition(project, location); + if (projectResults) { + resultsMap.set(project, projectResults); + } + } + + // At this point, we know about all projects passed in as arguments and any projects in which + // `getResultsForPosition` has returned results. We expand that set to include any projects + // downstream from any of these and then queue new initial-position searches for any new project + // containing `initialLocation`. if (defaultDefinition) { - const getGeneratedDefinition = memoize(() => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? - defaultDefinition : - defaultProject.getLanguageService().getSourceMapper().tryGetGeneratedPosition(defaultDefinition)); - const getSourceDefinition = memoize(() => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? - defaultDefinition : - defaultProject.getLanguageService().getSourceMapper().tryGetSourcePosition(defaultDefinition)); - projectService.loadAncestorProjectTree(seenProjects); + // This seems to mean "load all projects downstream from any member of `seenProjects`". + projectService.loadAncestorProjectTree(searchedProjects); projectService.forEachEnabledProject(project => { - if (!addToSeen(seenProjects, project)) return; - const definition = mapDefinitionInProject(defaultDefinition, project, getGeneratedDefinition, getSourceDefinition); - if (definition) { - toDo = callbackProjectAndLocation(project, definition as TLocation, projectService, toDo, seenProjects, cb); + if (cancellationToken.isCancellationRequested()) return; // There's no mechanism for skipping the remaining projects + if (searchedProjects.has(getProjectKey(project))) return; // Can loop forever without this (enqueue here, dequeue above, repeat) + const location = mapDefinitionInProject(defaultDefinition, project, getGeneratedDefinition, getSourceDefinition); + if (location) { + queue.push({ project, location }); } }); } } - while (toDo && toDo.length) { - const next = toDo.pop(); - Debug.assertIsDefined(next); - toDo = callbackProjectAndLocation(next.project, next.location, projectService, toDo, seenProjects, cb); + // In the common case where there's only one project, return a simpler result to make + // it easier for the caller to skip post-processing. + if (searchedProjects.size === 1) { + const it = resultsMap.values().next(); + Debug.assert(!it.done); + return it.value; + } + + return resultsMap; + + // May enqueue to otherPositionQueue + function searchPosition(project: Project, location: DocumentPosition): readonly TResult[] | undefined { + const projectResults = getResultsForPosition(project, location); + if (!projectResults) return undefined; + + for (const result of projectResults) { + forPositionInResult(result, position => { + // This may trigger a search for a tsconfig, but there are several layers of caching that make it inexpensive + const originalLocation = projectService.getOriginalLocationEnsuringConfiguredProject(project, position); + if (!originalLocation) return; + + const originalScriptInfo = projectService.getScriptInfo(originalLocation.fileName)!; + + for (const project of originalScriptInfo.containingProjects) { + if (!project.isOrphan()) { + queue.push({ project, location: originalLocation }); + } + } + + const symlinkedProjectsMap = projectService.getSymlinkedProjects(originalScriptInfo); + if (symlinkedProjectsMap) { + symlinkedProjectsMap.forEach((symlinkedProjects, symlinkedPath) => { + for (const symlinkedProject of symlinkedProjects) { + if (!symlinkedProject.isOrphan()) { + queue.push({ project: symlinkedProject, location: { fileName: symlinkedPath as string, pos: originalLocation.pos } }); + } + } + }); + } + }); + } + + return projectResults; } } @@ -492,49 +650,6 @@ namespace ts.server { sourceFile.resolvedPath !== project.toPath(location.fileName); } - function callbackProjectAndLocation( - project: Project, - location: TLocation, - projectService: ProjectService, - toDo: ProjectAndLocation[] | undefined, - seenProjects: Set, - cb: CombineProjectOutputCallback, - ): ProjectAndLocation[] | undefined { - if (project.getCancellationToken().isCancellationRequested()) return undefined; // Skip rest of toDo if cancelled - // If this is not the file we were actually looking, return rest of the toDo - if (isLocationProjectReferenceRedirect(project, location)) return toDo; - cb(project, location, (innerProject, location) => { - addToSeen(seenProjects, project); - const originalLocation = projectService.getOriginalLocationEnsuringConfiguredProject(innerProject, location); - if (!originalLocation) return undefined; - - const originalScriptInfo = projectService.getScriptInfo(originalLocation.fileName)!; - toDo = toDo || []; - - for (const project of originalScriptInfo.containingProjects) { - addToTodo(project, originalLocation as TLocation, toDo, seenProjects); - } - const symlinkedProjectsMap = projectService.getSymlinkedProjects(originalScriptInfo); - if (symlinkedProjectsMap) { - symlinkedProjectsMap.forEach((symlinkedProjects, symlinkedPath) => { - for (const symlinkedProject of symlinkedProjects) { - addToTodo(symlinkedProject, { fileName: symlinkedPath as string, pos: originalLocation.pos } as TLocation, toDo!, seenProjects); - } - }); - } - return originalLocation === location ? undefined : originalLocation; - }); - return toDo; - } - - function addToTodo(project: Project, location: TLocation, toDo: Push>, seenProjects: Set): void { - if (!project.isOrphan() && addToSeen(seenProjects, project)) toDo.push({ project, location }); - } - - function addToSeen(seenProjects: Set, project: Project) { - return tryAddToSet(seenProjects, getProjectKey(project)); - } - function getProjectKey(project: Project) { return isConfiguredProject(project) ? project.canonicalConfigFilePath : project.getProjectName(); } @@ -543,39 +658,16 @@ namespace ts.server { return { fileName, pos: textSpan.start }; } - function getMappedLocation(location: DocumentPosition, project: Project): DocumentPosition | undefined { - const mapsTo = project.getSourceMapper().tryGetSourcePosition(location); - return mapsTo && project.projectService.fileExists(toNormalizedPath(mapsTo.fileName)) ? mapsTo : undefined; + function getMappedLocationForProject(location: DocumentPosition, project: Project): DocumentPosition | undefined { + return getMappedLocation(location, project.getSourceMapper(), p => project.projectService.fileExists(p as NormalizedPath)); } - function getMappedDocumentSpan(documentSpan: DocumentSpan, project: Project): DocumentSpan | undefined { - const newPosition = getMappedLocation(documentSpanLocation(documentSpan), project); - if (!newPosition) return undefined; - return { - fileName: newPosition.fileName, - textSpan: { - start: newPosition.pos, - length: documentSpan.textSpan.length - }, - originalFileName: documentSpan.fileName, - originalTextSpan: documentSpan.textSpan, - contextSpan: getMappedContextSpan(documentSpan, project), - originalContextSpan: documentSpan.contextSpan - }; + function getMappedDocumentSpanForProject(documentSpan: DocumentSpan, project: Project): DocumentSpan | undefined { + return getMappedDocumentSpan(documentSpan, project.getSourceMapper(), p => project.projectService.fileExists(p as NormalizedPath)); } - function getMappedContextSpan(documentSpan: DocumentSpan, project: Project): TextSpan | undefined { - const contextSpanStart = documentSpan.contextSpan && getMappedLocation( - { fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start }, - project - ); - const contextSpanEnd = documentSpan.contextSpan && getMappedLocation( - { fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start + documentSpan.contextSpan.length }, - project - ); - return contextSpanStart && contextSpanEnd ? - { start: contextSpanStart.pos, length: contextSpanEnd.pos - contextSpanStart.pos } : - undefined; + function getMappedContextSpanForProject(documentSpan: DocumentSpan, project: Project): TextSpan | undefined { + return getMappedContextSpan(documentSpan, project.getSourceMapper(), p => project.projectService.fileExists(p as NormalizedPath)); } const invalidPartialSemanticModeCommands: readonly CommandNames[] = [ @@ -1189,7 +1281,7 @@ namespace ts.server { private mapDefinitionInfoLocations(definitions: readonly DefinitionInfo[], project: Project): readonly DefinitionInfo[] { return definitions.map((info): DefinitionInfo => { - const newDocumentSpan = getMappedDocumentSpan(info, project); + const newDocumentSpan = getMappedDocumentSpanForProject(info, project); return !newDocumentSpan ? info : { ...newDocumentSpan, containerKind: info.containerKind, @@ -1484,7 +1576,7 @@ namespace ts.server { private mapImplementationLocations(implementations: readonly ImplementationLocation[], project: Project): readonly ImplementationLocation[] { return implementations.map((info): ImplementationLocation => { - const newDocumentSpan = getMappedDocumentSpan(info, project); + const newDocumentSpan = getMappedDocumentSpanForProject(info, project); return !newDocumentSpan ? info : { ...newDocumentSpan, kind: info.kind, @@ -1665,7 +1757,7 @@ namespace ts.server { if (!renameInfo.canRename) return simplifiedResult ? { info: renameInfo, locs: [] } : []; - const locations = combineProjectOutputForRenameLocations( + const locations = getRenameLocationsWorker( projects, defaultProject, { fileName: args.file, pos: position }, @@ -1703,7 +1795,7 @@ namespace ts.server { const file = toNormalizedPath(args.file); const projects = this.getProjects(args); const position = this.getPositionInFile(args, file); - const references = combineProjectOutputForReferences( + const references = getReferencesWorker( projects, this.getDefaultProject(args), { fileName: args.file, pos: position }, @@ -2298,7 +2390,8 @@ namespace ts.server { const seenItems = new Map(); // name to items with that name if (!args.file && !projectFileName) { - // VS Code's `Go to symbol in workspaces` sends request like this + // VS Code's `Go to symbol in workspaces` sends request like this by default. + // There's a setting to have it send a file name (reverting to older behavior). // TODO (https://github.com/microsoft/TypeScript/issues/47839) // This appears to have been intended to search all projects but, in practice, it seems to only search @@ -2323,7 +2416,7 @@ namespace ts.server { // Mutates `outputs` function addItemsForProject(project: Project) { const projectItems = project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, /*filename*/ undefined, /*excludeDts*/ project.isNonTsProject()); - const unseenItems = filter(projectItems, item => tryAddSeenItem(item) && !getMappedLocation(documentSpanLocation(item), project)); + const unseenItems = filter(projectItems, item => tryAddSeenItem(item) && !getMappedLocationForProject(documentSpanLocation(item), project)); if (unseenItems.length) { outputs.push({ project, navigateToItems: unseenItems }); } diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index ba46b5d311f..a6253eeafa5 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -564,7 +564,7 @@ namespace ts.FindAllReferences { } /** Whether a reference, `node`, is a definition of the `target` symbol */ - function isDeclarationOfSymbol(node: Node, target: Symbol | undefined): boolean { + export function isDeclarationOfSymbol(node: Node, target: Symbol | undefined): boolean { if (!target) return false; const source = getDeclarationFromName(node) || (node.kind === SyntaxKind.DefaultKeyword ? node.parent diff --git a/src/services/services.ts b/src/services/services.ts index 7633f079061..f653390e3d8 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1601,6 +1601,62 @@ namespace ts { return host.getPackageJsonAutoImportProvider?.(); } + function updateIsDefinitionOfReferencedSymbols(referencedSymbols: readonly ReferencedSymbol[], knownSymbolSpans: Set): boolean { + const checker = program.getTypeChecker(); + const symbol = getSymbolForProgram(); + + if (!symbol) return false; + + for (const referencedSymbol of referencedSymbols) { + for (const ref of referencedSymbol.references) { + const refNode = getNodeForSpan(ref); + Debug.assertIsDefined(refNode); + if (knownSymbolSpans.has(ref) || FindAllReferences.isDeclarationOfSymbol(refNode, symbol)) { + knownSymbolSpans.add(ref); + ref.isDefinition = true; + const mappedSpan = getMappedDocumentSpan(ref, sourceMapper, maybeBind(host, host.fileExists)); + if (mappedSpan) { + knownSymbolSpans.add(mappedSpan); + } + } + else { + ref.isDefinition = false; + } + } + } + + return true; + + function getSymbolForProgram(): Symbol | undefined { + for (const referencedSymbol of referencedSymbols) { + for (const ref of referencedSymbol.references) { + if (knownSymbolSpans.has(ref)) { + const refNode = getNodeForSpan(ref); + Debug.assertIsDefined(refNode); + return checker.getSymbolAtLocation(refNode); + } + const mappedSpan = getMappedDocumentSpan(ref, sourceMapper, maybeBind(host, host.fileExists)); + if (mappedSpan && knownSymbolSpans.has(mappedSpan)) { + const refNode = getNodeForSpan(mappedSpan); + if (refNode) { + return checker.getSymbolAtLocation(refNode); + } + } + } + } + + return undefined; + } + + function getNodeForSpan(docSpan: DocumentSpan): Node | undefined { + const sourceFile = program.getSourceFile(docSpan.fileName); + if (!sourceFile) return undefined; + const rawNode = getTouchingPropertyName(sourceFile, docSpan.textSpan.start); + const adjustedNode = FindAllReferences.Core.getAdjustedNode(rawNode, { use: FindAllReferences.FindReferencesUse.References }); + return adjustedNode; + } + } + function cleanupSemanticCache(): void { program = undefined!; // TODO: GH#18217 } @@ -2716,6 +2772,7 @@ namespace ts { getNonBoundSourceFile, getProgram, getAutoImportProvider, + updateIsDefinitionOfReferencedSymbols, getApplicableRefactors, getEditsForRefactor, toLineColumnOffset, diff --git a/src/services/types.ts b/src/services/types.ts index 82ed0b94124..be927d6e8a4 100644 --- a/src/services/types.ts +++ b/src/services/types.ts @@ -552,6 +552,11 @@ namespace ts { /* @internal */ getNonBoundSourceFile(fileName: string): SourceFile; /* @internal */ getAutoImportProvider(): Program | undefined; + /// Returns true if a suitable symbol was found in the project. + /// May set isDefinition properties in `referencedSymbols` to false. + /// May add elements to `knownSymbolSpans`. + /* @internal */ updateIsDefinitionOfReferencedSymbols(referencedSymbols: readonly ReferencedSymbol[], knownSymbolSpans: Set): boolean; + toggleLineComment(fileName: string, textRange: TextRange): TextChange[]; toggleMultilineComment(fileName: string, textRange: TextRange): TextChange[]; commentSelection(fileName: string, textRange: TextRange): TextChange[]; diff --git a/src/services/utilities.ts b/src/services/utilities.ts index 60aa2c7d194..0f8132e3de3 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -2117,6 +2117,48 @@ namespace ts { return true; } + export function getMappedLocation(location: DocumentPosition, sourceMapper: SourceMapper, fileExists: ((path: string) => boolean) | undefined): DocumentPosition | undefined { + const mapsTo = sourceMapper.tryGetSourcePosition(location); + return mapsTo && (!fileExists || fileExists(normalizePath(mapsTo.fileName)) ? mapsTo : undefined); + } + + export function getMappedDocumentSpan(documentSpan: DocumentSpan, sourceMapper: SourceMapper, fileExists?: (path: string) => boolean): DocumentSpan | undefined { + const { fileName, textSpan } = documentSpan; + const newPosition = getMappedLocation({ fileName, pos: textSpan.start }, sourceMapper, fileExists); + if (!newPosition) return undefined; + const newEndPosition = getMappedLocation({ fileName, pos: textSpan.start + textSpan.length }, sourceMapper, fileExists); + const newLength = newEndPosition + ? newEndPosition.pos - newPosition.pos + : textSpan.length; // This shouldn't happen + return { + fileName: newPosition.fileName, + textSpan: { + start: newPosition.pos, + length: newLength, + }, + originalFileName: documentSpan.fileName, + originalTextSpan: documentSpan.textSpan, + contextSpan: getMappedContextSpan(documentSpan, sourceMapper, fileExists), + originalContextSpan: documentSpan.contextSpan + }; + } + + export function getMappedContextSpan(documentSpan: DocumentSpan, sourceMapper: SourceMapper, fileExists?: (path: string) => boolean): TextSpan | undefined { + const contextSpanStart = documentSpan.contextSpan && getMappedLocation( + { fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start }, + sourceMapper, + fileExists + ); + const contextSpanEnd = documentSpan.contextSpan && getMappedLocation( + { fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start + documentSpan.contextSpan.length }, + sourceMapper, + fileExists + ); + return contextSpanStart && contextSpanEnd ? + { start: contextSpanStart.pos, length: contextSpanEnd.pos - contextSpanStart.pos } : + undefined; + } + // #endregion // Display-part writer helpers diff --git a/src/testRunner/unittests/tsserver/declarationFileMaps.ts b/src/testRunner/unittests/tsserver/declarationFileMaps.ts index 2ceb75d6b60..00118dbbcea 100644 --- a/src/testRunner/unittests/tsserver/declarationFileMaps.ts +++ b/src/testRunner/unittests/tsserver/declarationFileMaps.ts @@ -400,7 +400,7 @@ namespace ts.projectSystem { const response = executeSessionRequest(session, protocol.CommandTypes.References, protocolFileLocationFromSubstring(userTs, "fnA()")); assert.deepEqual(response, { - refs: [...referencesUserTs(userTs, /*isDefinition*/ undefined), referenceATs(aTs, /*isDefinition*/ true)], // Presently inconsistent across projects + refs: [...referencesUserTs(userTs, /*isDefinition*/ undefined), referenceATs(aTs, /*isDefinition*/ undefined)], symbolName: "fnA", symbolStartOffset: protocolLocationFromSubstring(userTs.content, "fnA()").offset, symbolDisplayString: "function fnA(): void", @@ -455,7 +455,7 @@ namespace ts.projectSystem { }, references: [ makeReferencedSymbolEntry({ file: userTs, text: "fnA" }), - makeReferencedSymbolEntry({ file: aTs, text: "fnA", isDefinition: true, isWriteAccess: true, contextText: "export function fnA() {}" }), + makeReferencedSymbolEntry({ file: aTs, text: "fnA", isWriteAccess: true, contextText: "export function fnA() {}" }), ], }, ]); diff --git a/src/testRunner/unittests/tsserver/projectReferences.ts b/src/testRunner/unittests/tsserver/projectReferences.ts index ba4604be5aa..1605fe23113 100644 --- a/src/testRunner/unittests/tsserver/projectReferences.ts +++ b/src/testRunner/unittests/tsserver/projectReferences.ts @@ -581,6 +581,126 @@ testCompositeFunction('why hello there', 42);` baselineTsserverLogs("projectReferences", `finding local reference doesnt load ancestor/sibling projects`, session); }); + it("when finding references in overlapping projects", () => { + const solutionLocation = "/user/username/projects/solution"; + const solutionConfig: File = { + path: `${solutionLocation}/tsconfig.json`, + content: JSON.stringify({ + files: [], + include: [], + references: [ + { path: "./a" }, + { path: "./b" }, + { path: "./c" }, + { path: "./d" }, + ] + }) + }; + const aConfig: File = { + path: `${solutionLocation}/a/tsconfig.json`, + content: JSON.stringify({ + compilerOptions: { + composite: true, + module: "none" + }, + files: ["./index.ts"] + }) + }; + const aFile: File = { + path: `${solutionLocation}/a/index.ts`, + content: ` + export interface I { + M(): void; + }` + }; + + const bConfig: File = { + path: `${solutionLocation}/b/tsconfig.json`, + content: JSON.stringify({ + compilerOptions: { + composite: true + }, + files: ["./index.ts"], + references: [ + { path: "../a" } + ] + }) + }; + const bFile: File = { + path: `${solutionLocation}/b/index.ts`, + content: ` + import { I } from "../a"; + + export class B implements I { + M() {} + }` + }; + + const cConfig: File = { + path: `${solutionLocation}/c/tsconfig.json`, + content: JSON.stringify({ + compilerOptions: { + composite: true + }, + files: ["./index.ts"], + references: [ + { path: "../b" } + ] + }) + }; + const cFile: File = { + path: `${solutionLocation}/c/index.ts`, + content: ` + import { I } from "../a"; + import { B } from "../b"; + + export const C: I = new B(); + ` + }; + + const dConfig: File = { + path: `${solutionLocation}/d/tsconfig.json`, + content: JSON.stringify({ + compilerOptions: { + composite: true + }, + files: ["./index.ts"], + references: [ + { path: "../c" } + ] + }) + }; + const dFile: File = { + path: `${solutionLocation}/d/index.ts`, + content: ` + import { I } from "../a"; + import { C } from "../c"; + + export const D: I = C; + ` + }; + + const files = [libFile, solutionConfig, aConfig, aFile, bConfig, bFile, cConfig, cFile, dConfig, dFile, libFile]; + const host = createServerHost(files); + const session = createSession(host, { logger: createLoggerWithInMemoryLogs() }); + openFilesForSession([bFile], session); + + // The first search will trigger project loads + session.executeCommandSeq({ + command: protocol.CommandTypes.References, + arguments: protocolFileLocationFromSubstring(bFile, "I", { index: 1 }) + }); + + // The second search starts with the projects already loaded + // Formerly, this would search some projects multiple times + session.executeCommandSeq({ + command: protocol.CommandTypes.References, + arguments: protocolFileLocationFromSubstring(bFile, "I", { index: 1 }) + }); + + baselineTsserverLogs("projectReferences", `finding references in overlapping projects`, session); + }); + describe("special handling of localness of the definitions for findAllRefs", () => { function verify(scenario: string, definition: string, usage: string, referenceTerm: string) { it(scenario, () => { diff --git a/tests/baselines/reference/isDefinitionAcrossGlobalProjects.baseline.jsonc b/tests/baselines/reference/isDefinitionAcrossGlobalProjects.baseline.jsonc new file mode 100644 index 00000000000..cc0ce5e09e7 --- /dev/null +++ b/tests/baselines/reference/isDefinitionAcrossGlobalProjects.baseline.jsonc @@ -0,0 +1,1144 @@ +// === /a/index.ts === +// namespace NS { +// export function /*FIND ALL REFS*/[|FA|]() { +// FB(); +// } +// } +// +// interface I { +// FA(); +// } +// +// const ia: I = { +// FA() { }, +// FB() { }, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a/index.ts", + "kind": "function", + "name": "function NS.FA(): void", + "textSpan": { + "start": 35, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 19, + "length": 42 + } + }, + "references": [ + { + "textSpan": { + "start": 35, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 19, + "length": 42 + }, + "isWriteAccess": true, + "isDefinition": true + } + ] + } +] + +// === /b/index.ts === +// namespace NS { +// export function FB() {} +// } +// +// interface [|I|] { +// FB(); +// } +// +// const ib: [|I|] = { FB() {} }; + +// === /c/index.ts === +// namespace NS { +// export function FC() {} +// } +// +// interface [|I|] { +// FC(); +// } +// +// const ic: [|I|] = { FC() {} }; + +// === /a/index.ts === +// namespace NS { +// export function FA() { +// FB(); +// } +// } +// +// interface /*FIND ALL REFS*/[|I|] { +// FA(); +// } +// +// const ia: [|I|] = { +// FA() { }, +// FB() { }, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/b/index.ts", + "kind": "interface", + "name": "interface I", + "textSpan": { + "start": 56, + "length": 1 + }, + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } + ], + "contextSpan": { + "start": 46, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 56, + "length": 1 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 46, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 83, + "length": 1 + }, + "fileName": "/b/index.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 56, + "length": 1 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 46, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 83, + "length": 1 + }, + "fileName": "/c/index.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 75, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 65, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 102, + "length": 1 + }, + "fileName": "/a/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /a/index.ts === +// namespace NS { +// export function FA() { +// FB(); +// } +// } +// +// interface I { +// /*FIND ALL REFS*/[|FA|](); +// } +// +// const ia: I = { +// [|FA|]() { }, +// FB() { }, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a/index.ts", + "kind": "method", + "name": "(method) I.FA(): any", + "textSpan": { + "start": 83, + "length": 2 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 83, + "length": 5 + } + }, + "references": [ + { + "textSpan": { + "start": 83, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 83, + "length": 5 + }, + "isWriteAccess": false, + "isDefinition": true + }, + { + "textSpan": { + "start": 112, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 112, + "length": 8 + }, + "isWriteAccess": true, + "isDefinition": false + } + ] + } +] + +// === /b/index.ts === +// namespace NS { +// export function /*FIND ALL REFS*/[|FB|]() {} +// } +// +// interface I { +// FB(); +// } +// +// const ib: I = { FB() {} }; + +// === /a/index.ts === +// namespace NS { +// export function FA() { +// [|FB|](); +// } +// } +// +// interface I { +// FA(); +// } +// +// const ia: I = { +// FA() { }, +// FB() { }, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/b/index.ts", + "kind": "function", + "name": "function NS.FB(): void", + "textSpan": { + "start": 35, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FB", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 19, + "length": 23 + } + }, + "references": [ + { + "textSpan": { + "start": 35, + "length": 2 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 19, + "length": 23 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 50, + "length": 2 + }, + "fileName": "/a/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /b/index.ts === +// namespace NS { +// export function FB() {} +// } +// +// interface /*FIND ALL REFS*/[|I|] { +// FB(); +// } +// +// const ib: [|I|] = { FB() {} }; + +// === /c/index.ts === +// namespace NS { +// export function FC() {} +// } +// +// interface [|I|] { +// FC(); +// } +// +// const ic: [|I|] = { FC() {} }; + +// === /a/index.ts === +// namespace NS { +// export function FA() { +// FB(); +// } +// } +// +// interface [|I|] { +// FA(); +// } +// +// const ia: [|I|] = { +// FA() { }, +// FB() { }, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/b/index.ts", + "kind": "interface", + "name": "interface I", + "textSpan": { + "start": 56, + "length": 1 + }, + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } + ], + "contextSpan": { + "start": 46, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 56, + "length": 1 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 46, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 83, + "length": 1 + }, + "fileName": "/b/index.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 56, + "length": 1 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 46, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 83, + "length": 1 + }, + "fileName": "/c/index.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 75, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 65, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 102, + "length": 1 + }, + "fileName": "/a/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /b/index.ts === +// namespace NS { +// export function FB() {} +// } +// +// interface I { +// /*FIND ALL REFS*/[|FB|](); +// } +// +// const ib: I = { [|FB|]() {} }; + +// === /a/index.ts === +// namespace NS { +// export function FA() { +// FB(); +// } +// } +// +// interface I { +// FA(); +// } +// +// const ia: I = { +// FA() { }, +// [|FB|]() { }, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/b/index.ts", + "kind": "method", + "name": "(method) I.FB(): any", + "textSpan": { + "start": 64, + "length": 2 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FB", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 64, + "length": 5 + } + }, + "references": [ + { + "textSpan": { + "start": 64, + "length": 2 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 64, + "length": 5 + }, + "isWriteAccess": false, + "isDefinition": true + }, + { + "textSpan": { + "start": 89, + "length": 2 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 89, + "length": 7 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 126, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 126, + "length": 8 + }, + "isWriteAccess": true, + "isDefinition": false + } + ] + } +] + +// === /c/index.ts === +// namespace NS { +// export function /*FIND ALL REFS*/[|FC|]() {} +// } +// +// interface I { +// FC(); +// } +// +// const ic: I = { FC() {} }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/c/index.ts", + "kind": "function", + "name": "function NS.FC(): void", + "textSpan": { + "start": 35, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FC", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 19, + "length": 23 + } + }, + "references": [ + { + "textSpan": { + "start": 35, + "length": 2 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 19, + "length": 23 + }, + "isWriteAccess": true, + "isDefinition": true + } + ] + } +] + +// === /c/index.ts === +// namespace NS { +// export function FC() {} +// } +// +// interface /*FIND ALL REFS*/[|I|] { +// FC(); +// } +// +// const ic: [|I|] = { FC() {} }; + +// === /b/index.ts === +// namespace NS { +// export function FB() {} +// } +// +// interface [|I|] { +// FB(); +// } +// +// const ib: [|I|] = { FB() {} }; + +// === /a/index.ts === +// namespace NS { +// export function FA() { +// FB(); +// } +// } +// +// interface [|I|] { +// FA(); +// } +// +// const ia: [|I|] = { +// FA() { }, +// FB() { }, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/c/index.ts", + "kind": "interface", + "name": "interface I", + "textSpan": { + "start": 56, + "length": 1 + }, + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } + ], + "contextSpan": { + "start": 46, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 56, + "length": 1 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 46, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 83, + "length": 1 + }, + "fileName": "/c/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + }, + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/b/index.ts", + "kind": "interface", + "name": "interface I", + "textSpan": { + "start": 56, + "length": 1 + }, + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } + ], + "contextSpan": { + "start": 46, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 56, + "length": 1 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 46, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 83, + "length": 1 + }, + "fileName": "/b/index.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 75, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 65, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 102, + "length": 1 + }, + "fileName": "/a/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /c/index.ts === +// namespace NS { +// export function FC() {} +// } +// +// interface I { +// /*FIND ALL REFS*/[|FC|](); +// } +// +// const ic: I = { [|FC|]() {} }; + +// === /a/index.ts === +// namespace NS { +// export function FA() { +// FB(); +// } +// } +// +// interface I { +// FA(); +// } +// +// const ia: I = { +// FA() { }, +// FB() { }, +// [|FC|]() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/c/index.ts", + "kind": "method", + "name": "(method) I.FC(): any", + "textSpan": { + "start": 64, + "length": 2 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FC", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 64, + "length": 5 + } + }, + "references": [ + { + "textSpan": { + "start": 64, + "length": 2 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 64, + "length": 5 + }, + "isWriteAccess": false, + "isDefinition": true + }, + { + "textSpan": { + "start": 89, + "length": 2 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 89, + "length": 7 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 140, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 140, + "length": 8 + }, + "isWriteAccess": true, + "isDefinition": false + } + ] + } +] \ No newline at end of file diff --git a/tests/baselines/reference/isDefinitionAcrossModuleProjects.baseline.jsonc b/tests/baselines/reference/isDefinitionAcrossModuleProjects.baseline.jsonc new file mode 100644 index 00000000000..4c5b75a2d1e --- /dev/null +++ b/tests/baselines/reference/isDefinitionAcrossModuleProjects.baseline.jsonc @@ -0,0 +1,1915 @@ +// === /a/index.ts === +// import { NS } from "../b"; +// import { I } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function /*FIND ALL REFS*/[|FA|](); +// } +// } +// +// declare module "../c" { +// export interface I { +// FA(); +// } +// } +// +// const ia: I = { +// FA: NS.[|FA|], +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a/index.ts", + "kind": "function", + "name": "function NS.FA(): any", + "textSpan": { + "start": 128, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 112, + "length": 21 + } + }, + "references": [ + { + "textSpan": { + "start": 128, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 112, + "length": 21 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 242, + "length": 2 + }, + "fileName": "/a/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /a/index.ts === +// import { NS } from "../b"; +// import { [|I|] } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface /*FIND ALL REFS*/[|I|] { +// FA(); +// } +// } +// +// const ia: [|I|] = { +// FA: NS.FA, +// FC() { }, +// }; + +// === /a2/index.ts === +// import { NS } from "../b"; +// import { [|I|] } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface [|I|] { +// FA(); +// } +// } +// +// const ia: [|I|] = { +// FA: NS.FA, +// FC() { }, +// }; + +// === /c/index.ts === +// export namespace NS { +// export function FC() {} +// } +// +// export interface [|I|] { +// FC(); +// } +// +// const ic: [|I|] = { FC() {} }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/c/index.ts", + "kind": "interface", + "name": "interface I", + "textSpan": { + "start": 70, + "length": 1 + }, + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } + ], + "contextSpan": { + "start": 53, + "length": 32 + } + }, + "references": [ + { + "textSpan": { + "start": 70, + "length": 1 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 53, + "length": 32 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 188, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 171, + "length": 40 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 97, + "length": 1 + }, + "fileName": "/c/index.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 188, + "length": 1 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 171, + "length": 40 + }, + "isWriteAccess": true, + "isDefinition": true + } + ] + }, + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a/index.ts", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "textSpan": { + "start": 36, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } + ], + "contextSpan": { + "start": 27, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 36, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 27, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 225, + "length": 1 + }, + "fileName": "/a/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + }, + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a2/index.ts", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "textSpan": { + "start": 36, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } + ], + "contextSpan": { + "start": 27, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 36, + "length": 1 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 27, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 225, + "length": 1 + }, + "fileName": "/a2/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /a/index.ts === +// import { NS } from "../b"; +// import { I } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface I { +// /*FIND ALL REFS*/[|FA|](); +// } +// } +// +// const ia: I = { +// [|FA|]: NS.FA, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a/index.ts", + "kind": "method", + "name": "(method) I.FA(): any", + "textSpan": { + "start": 200, + "length": 2 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 200, + "length": 5 + } + }, + "references": [ + { + "textSpan": { + "start": 200, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 200, + "length": 5 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 235, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 235, + "length": 9 + }, + "isWriteAccess": true, + "isDefinition": false + } + ] + } +] + +// === /a2/index.ts === +// import { NS } from "../b"; +// import { I } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function /*FIND ALL REFS*/[|FA|](); +// } +// } +// +// declare module "../c" { +// export interface I { +// FA(); +// } +// } +// +// const ia: I = { +// FA: NS.[|FA|], +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a2/index.ts", + "kind": "function", + "name": "function NS.FA(): any", + "textSpan": { + "start": 128, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 112, + "length": 21 + } + }, + "references": [ + { + "textSpan": { + "start": 128, + "length": 2 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 112, + "length": 21 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 242, + "length": 2 + }, + "fileName": "/a2/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /a2/index.ts === +// import { NS } from "../b"; +// import { [|I|] } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface /*FIND ALL REFS*/[|I|] { +// FA(); +// } +// } +// +// const ia: [|I|] = { +// FA: NS.FA, +// FC() { }, +// }; + +// === /a/index.ts === +// import { NS } from "../b"; +// import { [|I|] } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface [|I|] { +// FA(); +// } +// } +// +// const ia: [|I|] = { +// FA: NS.FA, +// FC() { }, +// }; + +// === /c/index.ts === +// export namespace NS { +// export function FC() {} +// } +// +// export interface [|I|] { +// FC(); +// } +// +// const ic: [|I|] = { FC() {} }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/c/index.ts", + "kind": "interface", + "name": "interface I", + "textSpan": { + "start": 70, + "length": 1 + }, + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } + ], + "contextSpan": { + "start": 53, + "length": 32 + } + }, + "references": [ + { + "textSpan": { + "start": 70, + "length": 1 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 53, + "length": 32 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 188, + "length": 1 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 171, + "length": 40 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 97, + "length": 1 + }, + "fileName": "/c/index.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 188, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 171, + "length": 40 + }, + "isWriteAccess": true, + "isDefinition": true + } + ] + }, + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a2/index.ts", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "textSpan": { + "start": 36, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } + ], + "contextSpan": { + "start": 27, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 36, + "length": 1 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 27, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 225, + "length": 1 + }, + "fileName": "/a2/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + }, + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a/index.ts", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "textSpan": { + "start": 36, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } + ], + "contextSpan": { + "start": 27, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 36, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 27, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 225, + "length": 1 + }, + "fileName": "/a/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /a2/index.ts === +// import { NS } from "../b"; +// import { I } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface I { +// /*FIND ALL REFS*/[|FA|](); +// } +// } +// +// const ia: I = { +// [|FA|]: NS.FA, +// FC() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a2/index.ts", + "kind": "method", + "name": "(method) I.FA(): any", + "textSpan": { + "start": 200, + "length": 2 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 200, + "length": 5 + } + }, + "references": [ + { + "textSpan": { + "start": 200, + "length": 2 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 200, + "length": 5 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 235, + "length": 2 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 235, + "length": 9 + }, + "isWriteAccess": true, + "isDefinition": false + } + ] + } +] + +// === /b/index.ts === +// export namespace NS { +// export function /*FIND ALL REFS*/[|FB|]() {} +// } +// +// export interface I { +// FB(); +// } +// +// const ib: I = { FB() {} }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/b/index.ts", + "kind": "function", + "name": "function NS.FB(): void", + "textSpan": { + "start": 42, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FB", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 26, + "length": 23 + } + }, + "references": [ + { + "textSpan": { + "start": 42, + "length": 2 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 26, + "length": 23 + }, + "isWriteAccess": true, + "isDefinition": true + } + ] + } +] + +// === /b/index.ts === +// export namespace NS { +// export function FB() {} +// } +// +// export interface /*FIND ALL REFS*/[|I|] { +// FB(); +// } +// +// const ib: [|I|] = { FB() {} }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/b/index.ts", + "kind": "interface", + "name": "interface I", + "textSpan": { + "start": 70, + "length": 1 + }, + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } + ], + "contextSpan": { + "start": 53, + "length": 32 + } + }, + "references": [ + { + "textSpan": { + "start": 70, + "length": 1 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 53, + "length": 32 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 97, + "length": 1 + }, + "fileName": "/b/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /b/index.ts === +// export namespace NS { +// export function FB() {} +// } +// +// export interface I { +// /*FIND ALL REFS*/[|FB|](); +// } +// +// const ib: I = { [|FB|]() {} }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/b/index.ts", + "kind": "method", + "name": "(method) I.FB(): any", + "textSpan": { + "start": 78, + "length": 2 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FB", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 78, + "length": 5 + } + }, + "references": [ + { + "textSpan": { + "start": 78, + "length": 2 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 78, + "length": 5 + }, + "isWriteAccess": false, + "isDefinition": true + }, + { + "textSpan": { + "start": 103, + "length": 2 + }, + "fileName": "/b/index.ts", + "contextSpan": { + "start": 103, + "length": 7 + }, + "isWriteAccess": true, + "isDefinition": false + } + ] + } +] + +// === /c/index.ts === +// export namespace NS { +// export function /*FIND ALL REFS*/[|FC|]() {} +// } +// +// export interface I { +// FC(); +// } +// +// const ic: I = { FC() {} }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/c/index.ts", + "kind": "function", + "name": "function NS.FC(): void", + "textSpan": { + "start": 42, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FC", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 26, + "length": 23 + } + }, + "references": [ + { + "textSpan": { + "start": 42, + "length": 2 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 26, + "length": 23 + }, + "isWriteAccess": true, + "isDefinition": true + } + ] + } +] + +// === /a/index.ts === +// import { NS } from "../b"; +// import { [|I|] } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface [|I|] { +// FA(); +// } +// } +// +// const ia: [|I|] = { +// FA: NS.FA, +// FC() { }, +// }; + +// === /a2/index.ts === +// import { NS } from "../b"; +// import { [|I|] } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface [|I|] { +// FA(); +// } +// } +// +// const ia: [|I|] = { +// FA: NS.FA, +// FC() { }, +// }; + +// === /c/index.ts === +// export namespace NS { +// export function FC() {} +// } +// +// export interface /*FIND ALL REFS*/[|I|] { +// FC(); +// } +// +// const ic: [|I|] = { FC() {} }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/c/index.ts", + "kind": "interface", + "name": "interface I", + "textSpan": { + "start": 70, + "length": 1 + }, + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } + ], + "contextSpan": { + "start": 53, + "length": 32 + } + }, + "references": [ + { + "textSpan": { + "start": 70, + "length": 1 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 53, + "length": 32 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 97, + "length": 1 + }, + "fileName": "/c/index.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 188, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 171, + "length": 40 + }, + "isWriteAccess": true, + "isDefinition": true + }, + { + "textSpan": { + "start": 188, + "length": 1 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 171, + "length": 40 + }, + "isWriteAccess": true, + "isDefinition": true + } + ] + }, + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a/index.ts", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "textSpan": { + "start": 36, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } + ], + "contextSpan": { + "start": 27, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 36, + "length": 1 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 27, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 225, + "length": 1 + }, + "fileName": "/a/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + }, + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/a2/index.ts", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "textSpan": { + "start": 36, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } + ], + "contextSpan": { + "start": 27, + "length": 25 + } + }, + "references": [ + { + "textSpan": { + "start": 36, + "length": 1 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 27, + "length": 25 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 225, + "length": 1 + }, + "fileName": "/a2/index.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] + +// === /c/index.ts === +// export namespace NS { +// export function FC() {} +// } +// +// export interface I { +// /*FIND ALL REFS*/[|FC|](); +// } +// +// const ic: I = { [|FC|]() {} }; + +// === /a/index.ts === +// import { NS } from "../b"; +// import { I } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface I { +// FA(); +// } +// } +// +// const ia: I = { +// FA: NS.FA, +// [|FC|]() { }, +// }; + +// === /a2/index.ts === +// import { NS } from "../b"; +// import { I } from "../c"; +// +// declare module "../b" { +// export namespace NS { +// export function FA(); +// } +// } +// +// declare module "../c" { +// export interface I { +// FA(); +// } +// } +// +// const ia: I = { +// FA: NS.FA, +// [|FC|]() { }, +// }; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/c/index.ts", + "kind": "method", + "name": "(method) I.FC(): any", + "textSpan": { + "start": 78, + "length": 2 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FC", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ], + "contextSpan": { + "start": 78, + "length": 5 + } + }, + "references": [ + { + "textSpan": { + "start": 78, + "length": 2 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 78, + "length": 5 + }, + "isWriteAccess": false, + "isDefinition": true + }, + { + "textSpan": { + "start": 103, + "length": 2 + }, + "fileName": "/c/index.ts", + "contextSpan": { + "start": 103, + "length": 7 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 250, + "length": 2 + }, + "fileName": "/a/index.ts", + "contextSpan": { + "start": 250, + "length": 8 + }, + "isWriteAccess": true, + "isDefinition": false + }, + { + "textSpan": { + "start": 250, + "length": 2 + }, + "fileName": "/a2/index.ts", + "contextSpan": { + "start": 250, + "length": 8 + }, + "isWriteAccess": true, + "isDefinition": false + } + ] + } +] \ No newline at end of file diff --git a/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc b/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc index 0637a088a01..5726d6b471e 100644 --- a/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc +++ b/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc @@ -1 +1,22 @@ -[] \ No newline at end of file +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/tests/cases/fourslash/server/referencesToNonPropertyNameStringLiteral.ts", + "kind": "var", + "name": "hello", + "textSpan": { + "start": 21, + "length": 5 + }, + "displayParts": [ + { + "text": "\"hello\"", + "kind": "stringLiteral" + } + ] + }, + "references": [] + } +] \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/ancestor-and-project-ref-management.js b/tests/baselines/reference/tsserver/projectReferences/ancestor-and-project-ref-management.js index 79bc5aad59d..05cc515ab97 100644 --- a/tests/baselines/reference/tsserver/projectReferences/ancestor-and-project-ref-management.js +++ b/tests/baselines/reference/tsserver/projectReferences/ancestor-and-project-ref-management.js @@ -203,6 +203,8 @@ Project '/user/username/projects/container/exec/tsconfig.json' (Configured) Part of 'files' list in tsconfig.json ----------------------------------------------- +Search path: /user/username/projects/container/lib +For info: /user/username/projects/container/lib/index.ts :: Config file name: /user/username/projects/container/lib/tsconfig.json response:{"response":{"info":{"canRename":true,"displayName":"myConst","fullDisplayName":"container.myConst","kind":"const","kindModifiers":"export","triggerSpan":{"start":{"line":3,"offset":16},"end":{"line":3,"offset":23}}},"locs":[{"file":"/user/username/projects/container/lib/index.ts","locs":[{"start":{"line":2,"offset":18},"end":{"line":2,"offset":25},"contextStart":{"line":2,"offset":5},"contextEnd":{"line":2,"offset":31}}]},{"file":"/user/username/projects/container/compositeExec/index.ts","locs":[{"start":{"line":3,"offset":16},"end":{"line":3,"offset":23}}]},{"file":"/user/username/projects/container/exec/index.ts","locs":[{"start":{"line":3,"offset":16},"end":{"line":3,"offset":23}}]}]},"responseRequired":true} FileWatcher:: Close:: WatchInfo: /user/username/projects/temp/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root FileWatcher:: Close:: WatchInfo: /user/username/projects/temp/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root diff --git a/tests/baselines/reference/tsserver/projectReferences/can-successfully-find-references-with-out-option.js b/tests/baselines/reference/tsserver/projectReferences/can-successfully-find-references-with-out-option.js index 1b0c0d2f7c1..383622c4754 100644 --- a/tests/baselines/reference/tsserver/projectReferences/can-successfully-find-references-with-out-option.js +++ b/tests/baselines/reference/tsserver/projectReferences/can-successfully-find-references-with-out-option.js @@ -163,4 +163,6 @@ Project '/user/username/projects/container/exec/tsconfig.json' (Configured) Part of 'files' list in tsconfig.json ----------------------------------------------- +Search path: /user/username/projects/container/lib +For info: /user/username/projects/container/lib/index.ts :: Config file name: /user/username/projects/container/lib/tsconfig.json response:{"response":{"info":{"canRename":true,"displayName":"myConst","fullDisplayName":"container.myConst","kind":"const","kindModifiers":"export","triggerSpan":{"start":{"line":3,"offset":16},"end":{"line":3,"offset":23}}},"locs":[{"file":"/user/username/projects/container/lib/index.ts","locs":[{"start":{"line":2,"offset":18},"end":{"line":2,"offset":25},"contextStart":{"line":2,"offset":5},"contextEnd":{"line":2,"offset":31}}]},{"file":"/user/username/projects/container/compositeExec/index.ts","locs":[{"start":{"line":3,"offset":16},"end":{"line":3,"offset":23}}]},{"file":"/user/username/projects/container/exec/index.ts","locs":[{"start":{"line":3,"offset":16},"end":{"line":3,"offset":23}}]}]},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 2425cab99f1..71d060f23c4 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -123,4 +123,4 @@ For info: /user/username/projects/myproject/b/index.ts :: Config file name: /use Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index a62b1ae34c9..fd2100eeb09 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -121,4 +121,4 @@ For info: /user/username/projects/myproject/b/index.ts :: Config file name: /use Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index a62b1ae34c9..fd2100eeb09 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -121,4 +121,4 @@ For info: /user/username/projects/myproject/b/index.ts :: Config file name: /use Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index a2d046ad30b..a83f21fa170 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -123,4 +123,4 @@ For info: /user/username/projects/myproject/b/index.ts :: Config file name: /use Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index d6532782ff1..7e32faefaa4 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -121,4 +121,4 @@ For info: /user/username/projects/myproject/b/index.ts :: Config file name: /use Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index d6532782ff1..7e32faefaa4 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -121,4 +121,4 @@ For info: /user/username/projects/myproject/b/index.ts :: Config file name: /use Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 00254fbec0e..15a697e4da0 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -105,4 +105,4 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index b24d524cc4d..edc733631d0 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -103,4 +103,4 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index b24d524cc4d..edc733631d0 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -103,4 +103,4 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/finding-local-reference-doesnt-load-ancestor/sibling-projects.js b/tests/baselines/reference/tsserver/projectReferences/finding-local-reference-doesnt-load-ancestor/sibling-projects.js index 9b3f7a01a6b..b402e7bcfc8 100644 --- a/tests/baselines/reference/tsserver/projectReferences/finding-local-reference-doesnt-load-ancestor/sibling-projects.js +++ b/tests/baselines/reference/tsserver/projectReferences/finding-local-reference-doesnt-load-ancestor/sibling-projects.js @@ -132,4 +132,8 @@ FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/compiler/types Finding references to /user/username/projects/solution/compiler/types.ts position 103 in project /user/username/projects/solution/services/tsconfig.json Search path: /user/username/projects/solution/compiler For info: /user/username/projects/solution/compiler/types.ts :: Config file name: /user/username/projects/solution/compiler/tsconfig.json +Search path: /user/username/projects/solution/compiler +For info: /user/username/projects/solution/compiler/types.ts :: Config file name: /user/username/projects/solution/compiler/tsconfig.json +Search path: /user/username/projects/solution/compiler +For info: /user/username/projects/solution/compiler/program.ts :: Config file name: /user/username/projects/solution/compiler/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/compiler/types.ts","start":{"line":4,"offset":25},"end":{"line":4,"offset":39},"contextStart":{"line":4,"offset":25},"contextEnd":{"line":4,"offset":52},"lineText":" getSourceFiles(): string[];","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/solution/compiler/program.ts","start":{"line":4,"offset":25},"end":{"line":4,"offset":39},"contextStart":{"line":4,"offset":25},"contextEnd":{"line":4,"offset":64},"lineText":" getSourceFiles: () => [getSourceFile()]","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/solution/services/services.ts","start":{"line":3,"offset":44},"end":{"line":3,"offset":58},"lineText":" const result = program.getSourceFiles();","isWriteAccess":false,"isDefinition":false}],"symbolName":"getSourceFiles","symbolStartOffset":25,"symbolDisplayString":"(method) ts.Program.getSourceFiles(): string[]"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/finding-references-in-overlapping-projects.js b/tests/baselines/reference/tsserver/projectReferences/finding-references-in-overlapping-projects.js new file mode 100644 index 00000000000..509e2eb9583 --- /dev/null +++ b/tests/baselines/reference/tsserver/projectReferences/finding-references-in-overlapping-projects.js @@ -0,0 +1,308 @@ +Provided types map file "/a/lib/typesMap.json" doesn't exist +request:{"seq":0,"type":"request","command":"open","arguments":{"file":"/user/username/projects/solution/b/index.ts"}} +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Creating configuration project /user/username/projects/solution/b/tsconfig.json +FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/b/tsconfig.json 2000 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Config file +Config: /user/username/projects/solution/b/tsconfig.json : { + "rootNames": [ + "/user/username/projects/solution/b/index.ts" + ], + "options": { + "composite": true, + "configFilePath": "/user/username/projects/solution/b/tsconfig.json" + }, + "projectReferences": [ + { + "path": "/user/username/projects/solution/a", + "originalPath": "../a" + } + ] +} +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +Starting updateGraphWorker: Project: /user/username/projects/solution/b/tsconfig.json +Config: /user/username/projects/solution/a/tsconfig.json : { + "rootNames": [ + "/user/username/projects/solution/a/index.ts" + ], + "options": { + "composite": true, + "module": 0, + "configFilePath": "/user/username/projects/solution/a/tsconfig.json" + } +} +FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/a/tsconfig.json 2000 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Config file +FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/a/index.ts 500 undefined WatchType: Closed Script info +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution 0 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution 0 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/a 1 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/a 1 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Failed Lookup Locations +FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined WatchType: Closed Script info +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/b/node_modules/@types 1 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/b/node_modules/@types 1 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/b/tsconfig.json WatchType: Type roots +Finishing updateGraphWorker: Project: /user/username/projects/solution/b/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/user/username/projects/solution/b/tsconfig.json' (Configured) + Files (3) + /a/lib/lib.d.ts + /user/username/projects/solution/a/index.ts + /user/username/projects/solution/b/index.ts + + + ../../../../../a/lib/lib.d.ts + Default library for target 'es3' + ../a/index.ts + Source from referenced project '../a/tsconfig.json' included because '--module' is specified as 'none' + Imported via "../a" from file 'index.ts' + index.ts + Part of 'files' list in tsconfig.json + +----------------------------------------------- +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/tsconfig.json :: Config file name: /user/username/projects/solution/tsconfig.json +Creating configuration project /user/username/projects/solution/tsconfig.json +FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/tsconfig.json 2000 undefined Project: /user/username/projects/solution/tsconfig.json WatchType: Config file +Search path: /user/username/projects/solution +For info: /user/username/projects/solution/tsconfig.json :: No config files found. +Project '/user/username/projects/solution/b/tsconfig.json' (Configured) + Files (3) + +----------------------------------------------- +Project '/user/username/projects/solution/tsconfig.json' (Configured) + Files (0) InitialLoadPending + +----------------------------------------------- +Open files: + FileName: /user/username/projects/solution/b/index.ts ProjectRootPath: undefined + Projects: /user/username/projects/solution/b/tsconfig.json +response:{"responseRequired":false} +request:{"command":"references","arguments":{"file":"/user/username/projects/solution/b/index.ts","line":4,"offset":43},"seq":1,"type":"request"} +Finding references to /user/username/projects/solution/b/index.ts position 86 in project /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Creating configuration project /user/username/projects/solution/a/tsconfig.json +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +Starting updateGraphWorker: Project: /user/username/projects/solution/a/tsconfig.json +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/a/node_modules/@types 1 undefined Project: /user/username/projects/solution/a/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/a/node_modules/@types 1 undefined Project: /user/username/projects/solution/a/tsconfig.json WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/a/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/a/tsconfig.json WatchType: Type roots +Finishing updateGraphWorker: Project: /user/username/projects/solution/a/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/user/username/projects/solution/a/tsconfig.json' (Configured) + Files (2) + /a/lib/lib.d.ts + /user/username/projects/solution/a/index.ts + + + ../../../../../a/lib/lib.d.ts + Default library for target 'es3' + index.ts + Part of 'files' list in tsconfig.json + +----------------------------------------------- +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Finding references to /user/username/projects/solution/a/index.ts position 34 in project /user/username/projects/solution/a/tsconfig.json +Loading configured project /user/username/projects/solution/tsconfig.json +Config: /user/username/projects/solution/tsconfig.json : { + "rootNames": [], + "options": { + "configFilePath": "/user/username/projects/solution/tsconfig.json" + }, + "projectReferences": [ + { + "path": "/user/username/projects/solution/a", + "originalPath": "./a" + }, + { + "path": "/user/username/projects/solution/b", + "originalPath": "./b" + }, + { + "path": "/user/username/projects/solution/c", + "originalPath": "./c" + }, + { + "path": "/user/username/projects/solution/d", + "originalPath": "./d" + } + ] +} +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +Starting updateGraphWorker: Project: /user/username/projects/solution/tsconfig.json +Config: /user/username/projects/solution/c/tsconfig.json : { + "rootNames": [ + "/user/username/projects/solution/c/index.ts" + ], + "options": { + "composite": true, + "configFilePath": "/user/username/projects/solution/c/tsconfig.json" + }, + "projectReferences": [ + { + "path": "/user/username/projects/solution/b", + "originalPath": "../b" + } + ] +} +FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/c/tsconfig.json 2000 undefined Project: /user/username/projects/solution/tsconfig.json WatchType: Config file +Config: /user/username/projects/solution/d/tsconfig.json : { + "rootNames": [ + "/user/username/projects/solution/d/index.ts" + ], + "options": { + "composite": true, + "configFilePath": "/user/username/projects/solution/d/tsconfig.json" + }, + "projectReferences": [ + { + "path": "/user/username/projects/solution/c", + "originalPath": "../c" + } + ] +} +FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/d/tsconfig.json 2000 undefined Project: /user/username/projects/solution/tsconfig.json WatchType: Config file +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/tsconfig.json WatchType: Type roots +Finishing updateGraphWorker: Project: /user/username/projects/solution/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Different program with same set of files +Creating configuration project /user/username/projects/solution/c/tsconfig.json +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/c/index.ts 500 undefined WatchType: Closed Script info +Starting updateGraphWorker: Project: /user/username/projects/solution/c/tsconfig.json +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution 0 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution 0 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/a 1 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/a 1 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/b 1 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/b 1 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/c/node_modules/@types 1 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/c/node_modules/@types 1 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/c/tsconfig.json WatchType: Type roots +Finishing updateGraphWorker: Project: /user/username/projects/solution/c/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/user/username/projects/solution/c/tsconfig.json' (Configured) + Files (4) + /a/lib/lib.d.ts + /user/username/projects/solution/a/index.ts + /user/username/projects/solution/b/index.ts + /user/username/projects/solution/c/index.ts + + + ../../../../../a/lib/lib.d.ts + Default library for target 'es3' + ../a/index.ts + Imported via "../a" from file 'index.ts' + Imported via "../a" from file '../b/index.ts' + ../b/index.ts + Imported via "../b" from file 'index.ts' + index.ts + Part of 'files' list in tsconfig.json + +----------------------------------------------- +Creating configuration project /user/username/projects/solution/d/tsconfig.json +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/d/index.ts 500 undefined WatchType: Closed Script info +Starting updateGraphWorker: Project: /user/username/projects/solution/d/tsconfig.json +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution 0 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution 0 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/a 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/a 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/c 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/c 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/b 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/b 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/d/node_modules/@types 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/d/node_modules/@types 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/solution/node_modules/@types 1 undefined Project: /user/username/projects/solution/d/tsconfig.json WatchType: Type roots +Finishing updateGraphWorker: Project: /user/username/projects/solution/d/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/user/username/projects/solution/d/tsconfig.json' (Configured) + Files (5) + /a/lib/lib.d.ts + /user/username/projects/solution/a/index.ts + /user/username/projects/solution/b/index.ts + /user/username/projects/solution/c/index.ts + /user/username/projects/solution/d/index.ts + + + ../../../../../a/lib/lib.d.ts + Default library for target 'es3' + ../a/index.ts + Imported via "../a" from file 'index.ts' + Imported via "../a" from file '../c/index.ts' + Imported via "../a" from file '../b/index.ts' + ../b/index.ts + Imported via "../b" from file '../c/index.ts' + ../c/index.ts + Imported via "../c" from file 'index.ts' + index.ts + Part of 'files' list in tsconfig.json + +----------------------------------------------- +Finding references to /user/username/projects/solution/a/index.ts position 34 in project /user/username/projects/solution/c/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Finding references to /user/username/projects/solution/a/index.ts position 34 in project /user/username/projects/solution/d/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/c +For info: /user/username/projects/solution/c/index.ts :: Config file name: /user/username/projects/solution/c/tsconfig.json +Search path: /user/username/projects/solution/c +For info: /user/username/projects/solution/c/index.ts :: Config file name: /user/username/projects/solution/c/tsconfig.json +Search path: /user/username/projects/solution/c +For info: /user/username/projects/solution/c/index.ts :: Config file name: /user/username/projects/solution/c/tsconfig.json +response:{"response":{"refs":[{"file":"/user/username/projects/solution/b/index.ts","start":{"line":2,"offset":26},"end":{"line":2,"offset":27},"contextStart":{"line":2,"offset":17},"contextEnd":{"line":2,"offset":42},"lineText":" import { I } from \"../a\";","isWriteAccess":true},{"file":"/user/username/projects/solution/b/index.ts","start":{"line":4,"offset":43},"end":{"line":4,"offset":44},"lineText":" export class B implements I {","isWriteAccess":false},{"file":"/user/username/projects/solution/a/index.ts","start":{"line":2,"offset":34},"end":{"line":2,"offset":35},"contextStart":{"line":2,"offset":17},"contextEnd":{"line":4,"offset":18},"lineText":" export interface I {","isWriteAccess":true},{"file":"/user/username/projects/solution/c/index.ts","start":{"line":2,"offset":26},"end":{"line":2,"offset":27},"contextStart":{"line":2,"offset":17},"contextEnd":{"line":2,"offset":42},"lineText":" import { I } from \"../a\";","isWriteAccess":true},{"file":"/user/username/projects/solution/c/index.ts","start":{"line":5,"offset":33},"end":{"line":5,"offset":34},"lineText":" export const C: I = new B();","isWriteAccess":false},{"file":"/user/username/projects/solution/d/index.ts","start":{"line":2,"offset":26},"end":{"line":2,"offset":27},"contextStart":{"line":2,"offset":17},"contextEnd":{"line":2,"offset":42},"lineText":" import { I } from \"../a\";","isWriteAccess":true},{"file":"/user/username/projects/solution/d/index.ts","start":{"line":5,"offset":33},"end":{"line":5,"offset":34},"lineText":" export const D: I = C;","isWriteAccess":false}],"symbolName":"I","symbolStartOffset":43,"symbolDisplayString":"(alias) interface I\nimport I"},"responseRequired":true} +request:{"command":"references","arguments":{"file":"/user/username/projects/solution/b/index.ts","line":4,"offset":43},"seq":2,"type":"request"} +Finding references to /user/username/projects/solution/b/index.ts position 86 in project /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Finding references to /user/username/projects/solution/b/index.ts position 86 in project /user/username/projects/solution/c/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Finding references to /user/username/projects/solution/b/index.ts position 86 in project /user/username/projects/solution/d/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/b +For info: /user/username/projects/solution/b/index.ts :: Config file name: /user/username/projects/solution/b/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Search path: /user/username/projects/solution/a +For info: /user/username/projects/solution/a/index.ts :: Config file name: /user/username/projects/solution/a/tsconfig.json +Search path: /user/username/projects/solution/c +For info: /user/username/projects/solution/c/index.ts :: Config file name: /user/username/projects/solution/c/tsconfig.json +Search path: /user/username/projects/solution/c +For info: /user/username/projects/solution/c/index.ts :: Config file name: /user/username/projects/solution/c/tsconfig.json +Search path: /user/username/projects/solution/c +For info: /user/username/projects/solution/c/index.ts :: Config file name: /user/username/projects/solution/c/tsconfig.json +Finding references to /user/username/projects/solution/a/index.ts position 34 in project /user/username/projects/solution/a/tsconfig.json +response:{"response":{"refs":[{"file":"/user/username/projects/solution/b/index.ts","start":{"line":2,"offset":26},"end":{"line":2,"offset":27},"contextStart":{"line":2,"offset":17},"contextEnd":{"line":2,"offset":42},"lineText":" import { I } from \"../a\";","isWriteAccess":true},{"file":"/user/username/projects/solution/b/index.ts","start":{"line":4,"offset":43},"end":{"line":4,"offset":44},"lineText":" export class B implements I {","isWriteAccess":false},{"file":"/user/username/projects/solution/a/index.ts","start":{"line":2,"offset":34},"end":{"line":2,"offset":35},"contextStart":{"line":2,"offset":17},"contextEnd":{"line":4,"offset":18},"lineText":" export interface I {","isWriteAccess":true},{"file":"/user/username/projects/solution/c/index.ts","start":{"line":2,"offset":26},"end":{"line":2,"offset":27},"contextStart":{"line":2,"offset":17},"contextEnd":{"line":2,"offset":42},"lineText":" import { I } from \"../a\";","isWriteAccess":true},{"file":"/user/username/projects/solution/c/index.ts","start":{"line":5,"offset":33},"end":{"line":5,"offset":34},"lineText":" export const C: I = new B();","isWriteAccess":false},{"file":"/user/username/projects/solution/d/index.ts","start":{"line":2,"offset":26},"end":{"line":2,"offset":27},"contextStart":{"line":2,"offset":17},"contextEnd":{"line":2,"offset":42},"lineText":" import { I } from \"../a\";","isWriteAccess":true},{"file":"/user/username/projects/solution/d/index.ts","start":{"line":5,"offset":33},"end":{"line":5,"offset":34},"lineText":" export const D: I = C;","isWriteAccess":false}],"symbolName":"I","symbolStartOffset":43,"symbolDisplayString":"(alias) interface I\nimport I"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js index cba2ddff410..91ea0ec4f74 100644 --- a/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js @@ -689,4 +689,4 @@ For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config f Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js index f3a766b7f63..09c46c5d7cc 100644 --- a/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js @@ -656,11 +656,23 @@ FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/he Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect1.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect2.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nexport foo"},"responseRequired":true} @@ -982,6 +994,7 @@ Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json Creating configuration project /user/username/projects/myproject/tsconfig-indirect1.json event: {"seq":0,"type":"event","event":"projectLoadingStart","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect1.json","reason":"Creating project referenced by : /user/username/projects/myproject/tsconfig.json as it references project /user/username/projects/myproject/tsconfig-src.json"}} @@ -1054,7 +1067,12 @@ For info: /user/username/projects/myproject/src/main.ts :: Config file name: /us Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect2.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project.js b/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project.js index a823144beee..5abee9b0f29 100644 --- a/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project.js +++ b/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project.js @@ -148,5 +148,11 @@ Finding references to /user/username/projects/project/src/common/input/keyboard. Search path: /user/username/projects/project/src/common/input For info: /user/username/projects/project/src/common/input/keyboard.ts :: Config file name: /user/username/projects/project/src/common/tsconfig.json Search path: /user/username/projects/project/src/common/input +For info: /user/username/projects/project/src/common/input/keyboard.ts :: Config file name: /user/username/projects/project/src/common/tsconfig.json +Search path: /user/username/projects/project/src/common/input +For info: /user/username/projects/project/src/common/input/keyboard.test.ts :: Config file name: /user/username/projects/project/src/common/tsconfig.json +Search path: /user/username/projects/project/src/common/input +For info: /user/username/projects/project/src/common/input/keyboard.test.ts :: Config file name: /user/username/projects/project/src/common/tsconfig.json +Search path: /user/username/projects/project/src/common/input For info: /user/username/projects/project/src/common/input/keyboard.test.ts :: Config file name: /user/username/projects/project/src/common/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/project/src/common/input/keyboard.ts","start":{"line":2,"offset":17},"end":{"line":2,"offset":38},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":44},"lineText":"export function evaluateKeyboardEvent() { }","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/project/src/common/input/keyboard.test.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":31},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":63},"lineText":"import { evaluateKeyboardEvent } from 'common/input/keyboard';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/project/src/common/input/keyboard.test.ts","start":{"line":3,"offset":12},"end":{"line":3,"offset":33},"lineText":" return evaluateKeyboardEvent();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/project/src/terminal.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":31},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":63},"lineText":"import { evaluateKeyboardEvent } from 'common/input/keyboard';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/project/src/terminal.ts","start":{"line":3,"offset":12},"end":{"line":3,"offset":33},"lineText":" return evaluateKeyboardEvent();","isWriteAccess":false,"isDefinition":false}],"symbolName":"evaluateKeyboardEvent","symbolStartOffset":17,"symbolDisplayString":"function evaluateKeyboardEvent(): void"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js index 0db18dfe0b6..8d10ed845d5 100644 --- a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js +++ b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js @@ -533,6 +533,7 @@ Open files: FileName: /dummy/dummy.ts ProjectRootPath: undefined Projects: /dev/null/inferredProject1* request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/src/main.ts","line":2,"offset":10},"seq":2,"type":"request"} +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-src.json Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json @@ -544,10 +545,8 @@ Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-src.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts.map 500 undefined WatchType: Closed Script info -Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/own/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/own/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nexport foo"},"responseRequired":true} FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/main.ts 500 undefined WatchType: Closed Script info Project '/user/username/projects/myproject/tsconfig.json' (Configured) @@ -800,10 +799,16 @@ Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/own/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/own/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/own/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/own/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js index e361cbb2204..0de5a6853a3 100644 --- a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js @@ -667,6 +667,7 @@ Open files: FileName: /dummy/dummy.ts ProjectRootPath: undefined Projects: /dev/null/inferredProject1* request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/src/main.ts","line":2,"offset":10},"seq":2,"type":"request"} +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-src.json Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json @@ -714,10 +715,15 @@ Search path: /user/username/projects/myproject/indirect1 For info: /user/username/projects/myproject/indirect1/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/indirect1 For info: /user/username/projects/myproject/indirect1/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-src.json -Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-indirect1.json +Finding references to /user/username/projects/myproject/indirect1/main.ts position 9 in project /user/username/projects/myproject/tsconfig-indirect1.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Creating configuration project /user/username/projects/myproject/tsconfig-indirect2.json @@ -751,19 +757,19 @@ event: {"seq":0,"type":"event","event":"projectLoadingFinish","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect2.json"}} event: {"seq":0,"type":"event","event":"telemetry","body":{"telemetryEventName":"projectInfo","payload":{"projectId":"d9a040bddd6b85b85abd507a988a4b809b1515b5e61257ea3f8263da59589565","fileStats":{"js":0,"jsSize":0,"jsx":0,"jsxSize":0,"ts":3,"tsSize":134,"tsx":0,"tsxSize":0,"dts":1,"dtsSize":334,"deferred":0,"deferredSize":0},"compilerOptions":{"composite":true,"outDir":"","baseUrl":""},"typeAcquisition":{"enable":false,"include":false,"exclude":false},"extends":false,"files":true,"include":false,"exclude":false,"compileOnSave":false,"configFileName":"other","projectType":"configured","languageServiceEnabled":true,"version":"FakeVersion"}}} +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts 500 undefined WatchType: Closed Script info +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts.map 500 undefined WatchType: Closed Script info Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect2.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Search path: /user/username/projects/myproject/src -For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts 500 undefined WatchType: Closed Script info -FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts.map 500 undefined WatchType: Closed Script info -Finding references to /user/username/projects/myproject/indirect1/main.ts position 9 in project /user/username/projects/myproject/tsconfig-indirect1.json -Search path: /user/username/projects/myproject/src -For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nexport foo"},"responseRequired":true} FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/main.ts 500 undefined WatchType: Closed Script info Project '/user/username/projects/myproject/tsconfig.json' (Configured) @@ -1125,9 +1131,22 @@ Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/indirect1 +For info: /user/username/projects/myproject/indirect1/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Creating configuration project /user/username/projects/myproject/tsconfig-indirect1.json event: - {"seq":0,"type":"event","event":"projectLoadingStart","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect1.json","reason":"Creating project referenced by : /user/username/projects/myproject/tsconfig.json as it references project /user/username/projects/myproject/tsconfig-src.json"}} + {"seq":0,"type":"event","event":"projectLoadingStart","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect1.json","reason":"Creating project referenced in solution /user/username/projects/myproject/tsconfig.json to find possible configured project for original file: /user/username/projects/myproject/indirect1/main.ts"}} Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig-indirect1.json DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/tsconfig-indirect1.json WatchType: Type roots @@ -1153,6 +1172,22 @@ Project '/user/username/projects/myproject/tsconfig-indirect1.json' (Configured) ----------------------------------------------- event: {"seq":0,"type":"event","event":"projectLoadingFinish","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect1.json"}} +Search path: /user/username/projects/myproject/indirect1 +For info: /user/username/projects/myproject/indirect1/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/indirect1 +For info: /user/username/projects/myproject/indirect1/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json +Finding references to /user/username/projects/myproject/indirect1/main.ts position 9 in project /user/username/projects/myproject/tsconfig-indirect1.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src/helpers +For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Creating configuration project /user/username/projects/myproject/tsconfig-indirect2.json event: {"seq":0,"type":"event","event":"projectLoadingStart","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect2.json","reason":"Creating project referenced by : /user/username/projects/myproject/tsconfig.json as it references project /user/username/projects/myproject/tsconfig-src.json"}} @@ -1182,28 +1217,15 @@ Project '/user/username/projects/myproject/tsconfig-indirect2.json' (Configured) ----------------------------------------------- event: {"seq":0,"type":"event","event":"projectLoadingFinish","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect2.json"}} -Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect1.json -Search path: /user/username/projects/myproject/src/helpers -For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Search path: /user/username/projects/myproject/src/helpers -For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Search path: /user/username/projects/myproject/src -For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Search path: /user/username/projects/myproject/src -For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Search path: /user/username/projects/myproject/src -For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect2.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Search path: /user/username/projects/myproject/src -For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json -Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig.json -Search path: /user/username/projects/myproject/src -For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -Search path: /user/username/projects/myproject/indirect1 -For info: /user/username/projects/myproject/indirect1/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Search path: /user/username/projects/myproject/src +For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property-types.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property-types.js index 6e436bbfa9e..a3568e50d46 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property-types.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property-types.js @@ -107,6 +107,7 @@ Project '/user/username/projects/solution/shared/tsconfig.json' (Configured) ----------------------------------------------- Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 21 in project /user/username/projects/solution/shared/tsconfig.json Loading configured project /user/username/projects/solution/tsconfig.json Config: /user/username/projects/solution/tsconfig.json : { "rootNames": [], @@ -179,5 +180,6 @@ Project '/user/username/projects/solution/app/tsconfig.json' (Configured) Finding references to /user/username/projects/solution/shared/src/index.ts position 21 in project /user/username/projects/solution/app/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json -Finding references to /user/username/projects/solution/shared/src/index.ts position 21 in project /user/username/projects/solution/shared/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":22},"end":{"line":1,"offset":25},"contextStart":{"line":1,"offset":22},"contextEnd":{"line":1,"offset":36},"lineText":"export const foo = { bar: () => { } };","isWriteAccess":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.bar();","isWriteAccess":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.bar();","isWriteAccess":false,"isDefinition":false}],"symbolName":"bar","symbolStartOffset":12,"symbolDisplayString":"(property) bar: () => void"},"responseRequired":true} \ No newline at end of file +Search path: /user/username/projects/solution/shared/src +For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":22},"end":{"line":1,"offset":25},"contextStart":{"line":1,"offset":22},"contextEnd":{"line":1,"offset":36},"lineText":"export const foo = { bar: () => { } };","isWriteAccess":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.bar();","isWriteAccess":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.bar();","isWriteAccess":false}],"symbolName":"bar","symbolStartOffset":12,"symbolDisplayString":"(property) bar: () => void"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-assignment.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-assignment.js index 7745ab9fc6c..45ae4806505 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-assignment.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-assignment.js @@ -107,6 +107,7 @@ Project '/user/username/projects/solution/shared/tsconfig.json' (Configured) ----------------------------------------------- Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 13 in project /user/username/projects/solution/shared/tsconfig.json Loading configured project /user/username/projects/solution/tsconfig.json Config: /user/username/projects/solution/tsconfig.json : { "rootNames": [], @@ -179,5 +180,6 @@ Project '/user/username/projects/solution/app/tsconfig.json' (Configured) Finding references to /user/username/projects/solution/shared/src/index.ts position 13 in project /user/username/projects/solution/app/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json -Finding references to /user/username/projects/solution/shared/src/index.ts position 13 in project /user/username/projects/solution/shared/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"export const dog = () => { };","isWriteAccess":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":8},"end":{"line":2,"offset":11},"lineText":"shared.dog();","isWriteAccess":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":8},"end":{"line":2,"offset":11},"lineText":"shared.dog();","isWriteAccess":false,"isDefinition":false}],"symbolName":"dog","symbolStartOffset":8,"symbolDisplayString":"const dog: () => void"},"responseRequired":true} \ No newline at end of file +Search path: /user/username/projects/solution/shared/src +For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"export const dog = () => { };","isWriteAccess":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":8},"end":{"line":2,"offset":11},"lineText":"shared.dog();","isWriteAccess":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":8},"end":{"line":2,"offset":11},"lineText":"shared.dog();","isWriteAccess":false}],"symbolName":"dog","symbolStartOffset":8,"symbolDisplayString":"const dog: () => void"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-method-of-class-expression.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-method-of-class-expression.js index e3725c5adf7..1febd80d375 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-method-of-class-expression.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-method-of-class-expression.js @@ -107,6 +107,7 @@ Project '/user/username/projects/solution/shared/tsconfig.json' (Configured) ----------------------------------------------- Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 27 in project /user/username/projects/solution/shared/tsconfig.json Loading configured project /user/username/projects/solution/tsconfig.json Config: /user/username/projects/solution/tsconfig.json : { "rootNames": [], @@ -179,5 +180,6 @@ Project '/user/username/projects/solution/app/tsconfig.json' (Configured) Finding references to /user/username/projects/solution/shared/src/index.ts position 27 in project /user/username/projects/solution/app/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json -Finding references to /user/username/projects/solution/shared/src/index.ts position 27 in project /user/username/projects/solution/shared/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":28},"end":{"line":1,"offset":31},"contextStart":{"line":1,"offset":28},"contextEnd":{"line":1,"offset":36},"lineText":"export const foo = class { fly() {} };","isWriteAccess":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":13},"lineText":"instance.fly();","isWriteAccess":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":13},"lineText":"instance.fly();","isWriteAccess":false,"isDefinition":false}],"symbolName":"fly","symbolStartOffset":10,"symbolDisplayString":"(method) foo.fly(): void"},"responseRequired":true} \ No newline at end of file +Search path: /user/username/projects/solution/shared/src +For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":28},"end":{"line":1,"offset":31},"contextStart":{"line":1,"offset":28},"contextEnd":{"line":1,"offset":36},"lineText":"export const foo = class { fly() {} };","isWriteAccess":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":13},"lineText":"instance.fly();","isWriteAccess":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":13},"lineText":"instance.fly();","isWriteAccess":false}],"symbolName":"fly","symbolStartOffset":10,"symbolDisplayString":"(method) foo.fly(): void"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-object-literal-property.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-object-literal-property.js index ece94908494..4a715b6965a 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-object-literal-property.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-object-literal-property.js @@ -107,6 +107,7 @@ Project '/user/username/projects/solution/shared/tsconfig.json' (Configured) ----------------------------------------------- Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 22 in project /user/username/projects/solution/shared/tsconfig.json Loading configured project /user/username/projects/solution/tsconfig.json Config: /user/username/projects/solution/tsconfig.json : { "rootNames": [], @@ -179,5 +180,6 @@ Project '/user/username/projects/solution/app/tsconfig.json' (Configured) Finding references to /user/username/projects/solution/shared/src/index.ts position 22 in project /user/username/projects/solution/app/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json -Finding references to /user/username/projects/solution/shared/src/index.ts position 22 in project /user/username/projects/solution/shared/tsconfig.json -response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":23},"end":{"line":1,"offset":26},"contextStart":{"line":1,"offset":23},"contextEnd":{"line":1,"offset":33},"lineText":"export const foo = { baz: \"BAZ\" };","isWriteAccess":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.baz;","isWriteAccess":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.baz;","isWriteAccess":false,"isDefinition":false}],"symbolName":"baz","symbolStartOffset":12,"symbolDisplayString":"(property) baz: string"},"responseRequired":true} \ No newline at end of file +Search path: /user/username/projects/solution/shared/src +For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":23},"end":{"line":1,"offset":26},"contextStart":{"line":1,"offset":23},"contextEnd":{"line":1,"offset":33},"lineText":"export const foo = { baz: \"BAZ\" };","isWriteAccess":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.baz;","isWriteAccess":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.baz;","isWriteAccess":false}],"symbolName":"baz","symbolStartOffset":12,"symbolDisplayString":"(property) baz: string"},"responseRequired":true} \ No newline at end of file diff --git a/tests/cases/fourslash/server/isDefinitionAcrossGlobalProjects.ts b/tests/cases/fourslash/server/isDefinitionAcrossGlobalProjects.ts new file mode 100644 index 00000000000..127f59df8df --- /dev/null +++ b/tests/cases/fourslash/server/isDefinitionAcrossGlobalProjects.ts @@ -0,0 +1,92 @@ +/// + +// @Filename: /a/index.ts +////namespace NS { +//// export function /*1*/FA() { +//// FB(); +//// } +////} +//// +////interface /*2*/I { +//// /*3*/FA(); +////} +//// +////const ia: I = { +//// FA() { }, +//// FB() { }, +//// FC() { }, +//// }; + +// @Filename: /a/tsconfig.json +////{ +//// "extends": "../tsconfig.settings.json", +//// "references": [ +//// { "path": "../b" }, +//// { "path": "../c" }, +//// ], +//// "files": [ +//// "index.ts", +//// ], +////} + +// @Filename: /b/index.ts +////namespace NS { +//// export function /*4*/FB() {} +////} +//// +////interface /*5*/I { +//// /*6*/FB(); +////} +//// +////const ib: I = { FB() {} }; + +// @Filename: /b/tsconfig.json +////{ +//// "extends": "../tsconfig.settings.json", +//// "files": [ +//// "index.ts", +//// ], +////} + +// @Filename: /c/index.ts +////namespace NS { +//// export function /*7*/FC() {} +////} +//// +////interface /*8*/I { +//// /*9*/FC(); +////} +//// +////const ic: I = { FC() {} }; + +// @Filename: /c/tsconfig.json +////{ +//// "extends": "../tsconfig.settings.json", +//// "files": [ +//// "index.ts", +//// ], +////} + +// @Filename: /tsconfig.json +////{ +//// "compilerOptions": { +//// "composite": true, +//// }, +//// "references": [ +//// { "path": "a" }, +//// ], +//// "files": [] +////} + +// @Filename: /tsconfig.settings.json +////{ +//// "compilerOptions": { +//// "composite": true, +//// "skipLibCheck": true, +//// "declarationMap": true, +//// "module": "none", +//// "emitDeclarationOnly": true, +//// } +////} + +verify.baselineFindAllReferences('1', '2', '3', '4', '5', '6', '7', '8', '9'); diff --git a/tests/cases/fourslash/server/isDefinitionAcrossModuleProjects.ts b/tests/cases/fourslash/server/isDefinitionAcrossModuleProjects.ts new file mode 100644 index 00000000000..cbab02f8b80 --- /dev/null +++ b/tests/cases/fourslash/server/isDefinitionAcrossModuleProjects.ts @@ -0,0 +1,134 @@ +/// + +// @Filename: /a/index.ts +////import { NS } from "../b"; +////import { I } from "../c"; +//// +////declare module "../b" { +//// export namespace NS { +//// export function /*1*/FA(); +//// } +////} +//// +////declare module "../c" { +//// export interface /*2*/I { +//// /*3*/FA(); +//// } +////} +//// +////const ia: I = { +//// FA: NS.FA, +//// FC() { }, +////}; + +// @Filename: /a/tsconfig.json +////{ +//// "extends": "../tsconfig.settings.json", +//// "references": [ +//// { "path": "../b" }, +//// { "path": "../c" }, +//// ], +//// "files": [ +//// "index.ts", +//// ], +////} + +// @Filename: /a2/index.ts +////import { NS } from "../b"; +////import { I } from "../c"; +//// +////declare module "../b" { +//// export namespace NS { +//// export function /*4*/FA(); +//// } +////} +//// +////declare module "../c" { +//// export interface /*5*/I { +//// /*6*/FA(); +//// } +////} +//// +////const ia: I = { +//// FA: NS.FA, +//// FC() { }, +////}; + +// @Filename: /a2/tsconfig.json +////{ +//// "extends": "../tsconfig.settings.json", +//// "references": [ +//// { "path": "../b" }, +//// { "path": "../c" }, +//// ], +//// "files": [ +//// "index.ts", +//// ], +////} + +// @Filename: /b/index.ts +////export namespace NS { +//// export function /*7*/FB() {} +////} +//// +////export interface /*8*/I { +//// /*9*/FB(); +////} +//// +////const ib: I = { FB() {} }; + +// @Filename: /b/other.ts +////export const Other = 1; + +// @Filename: /b/tsconfig.json +////{ +//// "extends": "../tsconfig.settings.json", +//// "files": [ +//// "index.ts", +//// "other.ts", +//// ], +////} + +// @Filename: /c/index.ts +////export namespace NS { +//// export function /*10*/FC() {} +////} +//// +////export interface /*11*/I { +//// /*12*/FC(); +////} +//// +////const ic: I = { FC() {} }; + +// @Filename: /c/tsconfig.json +////{ +//// "extends": "../tsconfig.settings.json", +//// "files": [ +//// "index.ts", +//// ], +////} + +// @Filename: /tsconfig.json +////{ +//// "compilerOptions": { +//// "composite": true, +//// }, +//// "references": [ +//// { "path": "a" }, +//// { "path": "a2" }, +//// ], +//// "files": [] +////} + +// @Filename: /tsconfig.settings.json +////{ +//// "compilerOptions": { +//// "composite": true, +//// "skipLibCheck": true, +//// "declarationMap": true, +//// "module": "CommonJS", +//// "emitDeclarationOnly": true, +//// } +////} + +verify.baselineFindAllReferences('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'); From 5aa0053c74f0c67b2cbedf9cee6607ead3b9dc45 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Wed, 18 May 2022 17:26:55 -0700 Subject: [PATCH 58/64] Use changeCompilerHostLikeToUseCache in synchronizeHostData (#48980) * Remove unnecessary members of HostCache * Standardize on calling compiler host members in preparation for adding caching at that layer * Call changeCompilerHostLikeToUseCache to cache existence checks * Drop now-redundant HostCache * Don't make directoryExists caching contingent on createDirectory * Clear compilerHost rather than tracking state --- src/compiler/program.ts | 15 +-- src/services/services.ts | 196 +++++++++++---------------------------- 2 files changed, 62 insertions(+), 149 deletions(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 48743e93034..aa106a61873 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -282,7 +282,7 @@ namespace ts { } // directoryExists - if (originalDirectoryExists && originalCreateDirectory) { + if (originalDirectoryExists) { host.directoryExists = directory => { const key = toPath(directory); const value = directoryExistsCache.get(key); @@ -291,11 +291,14 @@ namespace ts { directoryExistsCache.set(key, !!newValue); return newValue; }; - host.createDirectory = directory => { - const key = toPath(directory); - directoryExistsCache.delete(key); - originalCreateDirectory.call(host, directory); - }; + + if (originalCreateDirectory) { + host.createDirectory = directory => { + const key = toPath(directory); + directoryExistsCache.delete(key); + originalCreateDirectory.call(host, directory); + }; + } } return { diff --git a/src/services/services.ts b/src/services/services.ts index f653390e3d8..7bf184de1f7 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -927,14 +927,6 @@ namespace ts { /// Language Service - // Information about a specific host file. - interface HostFileInformation { - hostFileName: string; - version: string; - scriptSnapshot: IScriptSnapshot; - scriptKind: ScriptKind; - } - /* @internal */ export interface DisplayPartsSymbolWriter extends EmitTextWriter { displayParts(): SymbolDisplayPart[]; @@ -988,82 +980,6 @@ namespace ts { return codefix.getSupportedErrorCodes(); } - // Either it will be file name if host doesnt have file or it will be the host's file information - type CachedHostFileInformation = HostFileInformation | string; - - // Cache host information about script Should be refreshed - // at each language service public entry point, since we don't know when - // the set of scripts handled by the host changes. - class HostCache { - private fileNameToEntry: ESMap; - private currentDirectory: string; - - constructor(private host: LanguageServiceHost, getCanonicalFileName: GetCanonicalFileName) { - // script id => script index - this.currentDirectory = host.getCurrentDirectory(); - this.fileNameToEntry = new Map(); - - // Initialize the list with the root file names - const rootFileNames = host.getScriptFileNames(); - tracing?.push(tracing.Phase.Session, "initializeHostCache", { count: rootFileNames.length }); - for (const fileName of rootFileNames) { - this.createEntry(fileName, toPath(fileName, this.currentDirectory, getCanonicalFileName)); - } - tracing?.pop(); - } - - private createEntry(fileName: string, path: Path) { - let entry: CachedHostFileInformation; - const scriptSnapshot = this.host.getScriptSnapshot(fileName); - if (scriptSnapshot) { - entry = { - hostFileName: fileName, - version: this.host.getScriptVersion(fileName), - scriptSnapshot, - scriptKind: getScriptKind(fileName, this.host) - }; - } - else { - entry = fileName; - } - - this.fileNameToEntry.set(path, entry); - return entry; - } - - public getEntryByPath(path: Path): CachedHostFileInformation | undefined { - return this.fileNameToEntry.get(path); - } - - public getHostFileInformation(path: Path): HostFileInformation | undefined { - const entry = this.fileNameToEntry.get(path); - return !isString(entry) ? entry : undefined; - } - - public getOrCreateEntryByPath(fileName: string, path: Path): HostFileInformation { - const info = this.getEntryByPath(path) || this.createEntry(fileName, path); - return isString(info) ? undefined! : info; // TODO: GH#18217 - } - - public getRootFileNames(): string[] { - const names: string[] = []; - this.fileNameToEntry.forEach(entry => { - if (isString(entry)) { - names.push(entry); - } - else { - names.push(entry.hostFileName); - } - }); - return names; - } - - public getScriptSnapshot(path: Path): IScriptSnapshot { - const file = this.getHostFileInformation(path); - return (file && file.scriptSnapshot)!; // TODO: GH#18217 - } - } - class SyntaxTreeCache { // For our syntactic only features, we also keep a cache of the syntax tree for the // currently edited file. @@ -1367,37 +1283,17 @@ namespace ts { lastTypesRootVersion = typeRootsVersion; } + const rootFileNames = host.getScriptFileNames(); + // Get a fresh cache of the host information - let hostCache: HostCache | undefined = new HostCache(host, getCanonicalFileName); - const rootFileNames = hostCache.getRootFileNames(); const newSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); const hasInvalidatedResolution: HasInvalidatedResolution = host.hasInvalidatedResolution || returnFalse; const hasChangedAutomaticTypeDirectiveNames = maybeBind(host, host.hasChangedAutomaticTypeDirectiveNames); const projectReferences = host.getProjectReferences?.(); let parsedCommandLines: ESMap | undefined; - const parseConfigHost: ParseConfigFileHost = { - useCaseSensitiveFileNames, - fileExists, - readFile, - readDirectory, - trace: maybeBind(host, host.trace), - getCurrentDirectory: () => currentDirectory, - onUnRecoverableConfigFileDiagnostic: noop, - }; - - // If the program is already up-to-date, we can reuse it - if (isProgramUptoDate(program, rootFileNames, newSettings, (_path, fileName) => host.getScriptVersion(fileName), fileExists, hasInvalidatedResolution, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) { - return; - } - - // IMPORTANT - It is critical from this moment onward that we do not check - // cancellation tokens. We are about to mutate source files from a previous program - // instance. If we cancel midway through, we may end up in an inconsistent state where - // the program points to old source files that have been invalidated because of - // incremental parsing. // Now create a new compiler - const compilerHost: CompilerHost = { + let compilerHost: CompilerHost | undefined = { getSourceFile: getOrCreateSourceFile, getSourceFileByPath: getOrCreateSourceFileByPath, getCancellationToken: () => cancellationToken, @@ -1407,8 +1303,8 @@ namespace ts { getDefaultLibFileName: options => host.getDefaultLibFileName(options), writeFile: noop, getCurrentDirectory: () => currentDirectory, - fileExists, - readFile, + fileExists: fileName => host.fileExists(fileName), + readFile: fileName => host.readFile && host.readFile(fileName), getSymlinkCache: maybeBind(host, host.getSymlinkCache), realpath: maybeBind(host, host.realpath), directoryExists: directoryName => { @@ -1417,20 +1313,54 @@ namespace ts { getDirectories: path => { return host.getDirectories ? host.getDirectories(path) : []; }, - readDirectory, + readDirectory: (path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number) => { + Debug.checkDefined(host.readDirectory, "'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"); + return host.readDirectory!(path, extensions, exclude, include, depth); + }, onReleaseOldSourceFile, onReleaseParsedCommandLine, hasInvalidatedResolution, hasChangedAutomaticTypeDirectiveNames, - trace: parseConfigHost.trace, + trace: maybeBind(host, host.trace), resolveModuleNames: maybeBind(host, host.resolveModuleNames), getModuleResolutionCache: maybeBind(host, host.getModuleResolutionCache), resolveTypeReferenceDirectives: maybeBind(host, host.resolveTypeReferenceDirectives), useSourceOfProjectReferenceRedirect: maybeBind(host, host.useSourceOfProjectReferenceRedirect), getParsedCommandLine, }; + + const originalGetSourceFile = compilerHost.getSourceFile; + + const { getSourceFileWithCache } = changeCompilerHostLikeToUseCache( + compilerHost, + fileName => toPath(fileName, currentDirectory, getCanonicalFileName), + (...args) => originalGetSourceFile.call(compilerHost, ...args) + ); + compilerHost.getSourceFile = getSourceFileWithCache!; + host.setCompilerHost?.(compilerHost); + const parseConfigHost: ParseConfigFileHost = { + useCaseSensitiveFileNames, + fileExists: fileName => compilerHost!.fileExists(fileName), + readFile: fileName => compilerHost!.readFile(fileName), + readDirectory: (...args) => compilerHost!.readDirectory!(...args), + trace: compilerHost.trace, + getCurrentDirectory: compilerHost.getCurrentDirectory, + onUnRecoverableConfigFileDiagnostic: noop, + }; + + // If the program is already up-to-date, we can reuse it + if (isProgramUptoDate(program, rootFileNames, newSettings, (_path, fileName) => host.getScriptVersion(fileName), fileName => compilerHost!.fileExists(fileName), hasInvalidatedResolution, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) { + return; + } + + // IMPORTANT - It is critical from this moment onward that we do not check + // cancellation tokens. We are about to mutate source files from a previous program + // instance. If we cancel midway through, we may end up in an inconsistent state where + // the program points to old source files that have been invalidated because of + // incremental parsing. + const documentRegistryBucketKey = documentRegistry.getKeyForCompilationSettings(newSettings); const options: CreateProgramOptions = { rootNames: rootFileNames, @@ -1441,9 +1371,9 @@ namespace ts { }; program = createProgram(options); - // hostCache is captured in the closure for 'getOrCreateSourceFile' but it should not be used past this point. - // It needs to be cleared to allow all collected snapshots to be released - hostCache = undefined; + // 'getOrCreateSourceFile' depends on caching but should be used past this point. + // After this point, the cache needs to be cleared to allow all collected snapshots to be released + compilerHost = undefined; parsedCommandLines = undefined; // We reset this cache on structure invalidation so we don't hold on to outdated files for long; however we can't use the `compilerHost` above, @@ -1492,29 +1422,6 @@ namespace ts { } } - function fileExists(fileName: string): boolean { - const path = toPath(fileName, currentDirectory, getCanonicalFileName); - const entry = hostCache && hostCache.getEntryByPath(path); - return entry ? - !isString(entry) : - (!!host.fileExists && host.fileExists(fileName)); - } - - function readFile(fileName: string) { - // stub missing host functionality - const path = toPath(fileName, currentDirectory, getCanonicalFileName); - const entry = hostCache && hostCache.getEntryByPath(path); - if (entry) { - return isString(entry) ? undefined : getSnapshotText(entry.scriptSnapshot); - } - return host.readFile && host.readFile(fileName); - } - - function readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number) { - Debug.checkDefined(host.readDirectory, "'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"); - return host.readDirectory!(path, extensions, exclude, include, depth); - } - // Release any files we have acquired in the old program but are // not part of the new program. function onReleaseOldSourceFile(oldSourceFile: SourceFile, oldOptions: CompilerOptions) { @@ -1527,15 +1434,18 @@ namespace ts { } function getOrCreateSourceFileByPath(fileName: string, path: Path, _languageVersion: ScriptTarget, _onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined { - Debug.assert(hostCache !== undefined, "getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host."); + Debug.assert(compilerHost, "getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host."); // The program is asking for this file, check first if the host can locate it. // If the host can not locate the file, then it does not exist. return undefined // to the program to allow reporting of errors for missing files. - const hostFileInformation = hostCache && hostCache.getOrCreateEntryByPath(fileName, path); - if (!hostFileInformation) { + const scriptSnapshot = host.getScriptSnapshot(fileName); + if (!scriptSnapshot) { return undefined; } + const scriptKind = getScriptKind(fileName, host); + const scriptVersion = host.getScriptVersion(fileName); + // Check if the language version has changed since we last created a program; if they are the same, // it is safe to reuse the sourceFiles; if not, then the shape of the AST can change, and the oldSourceFile // can not be reused. we have to dump all syntax trees and create new ones. @@ -1568,8 +1478,8 @@ namespace ts { // We do not support the scenario where a host can modify a registered // file's script kind, i.e. in one project some file is treated as ".ts" // and in another as ".js" - if (hostFileInformation.scriptKind === oldSourceFile.scriptKind) { - return documentRegistry.updateDocumentWithKey(fileName, path, host, documentRegistryBucketKey, hostFileInformation.scriptSnapshot, hostFileInformation.version, hostFileInformation.scriptKind); + if (scriptKind === oldSourceFile.scriptKind) { + return documentRegistry.updateDocumentWithKey(fileName, path, host, documentRegistryBucketKey, scriptSnapshot, scriptVersion, scriptKind); } else { // Release old source file and fall through to aquire new file with new script kind @@ -1581,7 +1491,7 @@ namespace ts { } // Could not find this file in the old program, create a new SourceFile for it. - return documentRegistry.acquireDocumentWithKey(fileName, path, host, documentRegistryBucketKey, hostFileInformation.scriptSnapshot, hostFileInformation.version, hostFileInformation.scriptKind); + return documentRegistry.acquireDocumentWithKey(fileName, path, host, documentRegistryBucketKey, scriptSnapshot, scriptVersion, scriptKind); } } From f6a171309e77bb2273d4518de7ee6597a8ed9358 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 May 2022 13:46:37 -0700 Subject: [PATCH 59/64] Update CONTRIBUTING.md to mention issue claiming and force pushing (#49090) * Update contributing to mention issue claiming and force pushing * Update cookie licking section to draft * Update CONTRIBUTING.md --- CONTRIBUTING.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 741f329d86d..0867225fe1b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -97,6 +97,14 @@ TypeScript is currently accepting contributions in the form of bug fixes. A bug Features (things that add new or improved functionality to TypeScript) may be accepted, but will need to first be approved (labelled ["help wanted"](https://github.com/Microsoft/TypeScript/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or in the "Backlog" milestone) by a TypeScript project maintainer in the suggestion issue. Features with language design impact, or that are adequately satisfied with external tools, will not be accepted. +## Issue claiming + +If you intend to work on an issue, please avoid leaving comments like "I'm going to work on this". There are a few reasons for this. These comments tend to [discourage anyone from working in the area](https://devblogs.microsoft.com/oldnewthing/20091201-00/?p=15843), yet many issues are much more difficult than they first appear, and you might find yourself trying to fix several issues before finding one that can be completed. Many issues have a long trail of people indicating that they're going to try to fix it, but no PR. + +Conversely, you do not need to ask anyone's permission before starting work on an issue marked as "help wanted". It's always fine to try! We ask that you choose issues tagged in the "Backlog" milestone as these are issues that we've identified as needing fixes / implementations. + +The sheer quantity of open issues, combined with their general difficulty, makes it extremely unlikely that you and another contributor are a) working on the same issue and b) both going to find a solution. + ## Legal You will need to complete a Contributor License Agreement (CLA). Briefly, this agreement testifies that you are granting us permission to use the submitted change according to the terms of the project's license, and that the work being submitted is under appropriate copyright. Upon submitting a pull request, you will automatically be given instructions on how to sign the CLA. @@ -114,6 +122,10 @@ Your pull request should: * Follow the code conventions described in [Coding guidelines](https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines) * To avoid line ending issues, set `autocrlf = input` and `whitespace = cr-at-eol` in your git configuration +## Force-pushing + +Avoid force-pushing your changes, especially when updating your PR based on review feedback. Force-pushed changes are not easily viewable on GitHub, and not at all viewable if a force-push also rebases against main. TypeScript PRs are squash merged, so the specific commits on your PR branch do not matter, only the PR title itself. Don't worry about having a perfect commit history; instead focus on making your changes as easy to review and merge as possible. + ## Contributing `lib.d.ts` fixes There are three relevant locations to be aware of when it comes to TypeScript's library declaration files: From 0921eac6dc9eba0be6319dff10b85d60c90155ea Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Thu, 19 May 2022 14:33:46 -0700 Subject: [PATCH 60/64] Fix path completions for typesVersions (#49154) * Fix path completions for typesVersions * Add more tests * Fix case when * is a fragment of a path component * Once a path pattern matches, only return completions from that pattern and higher priority ones * Fix iteration order issue * Aesthetics --- src/compiler/core.ts | 2 +- src/services/stringCompletions.ts | 84 +++++++++++++------ ...tionForStringLiteralNonrelativeImport13.ts | 2 +- .../completionsPaths_pathMapping_topLevel.ts | 2 +- .../pathCompletionsTypesVersionsWildcard1.ts | 42 ++++++++++ .../pathCompletionsTypesVersionsWildcard2.ts | 34 ++++++++ .../pathCompletionsTypesVersionsWildcard3.ts | 48 +++++++++++ .../pathCompletionsTypesVersionsWildcard4.ts | 41 +++++++++ .../pathCompletionsTypesVersionsWildcard5.ts | 54 ++++++++++++ .../pathCompletionsTypesVersionsWildcard6.ts | 57 +++++++++++++ 10 files changed, 339 insertions(+), 27 deletions(-) create mode 100644 tests/cases/fourslash/pathCompletionsTypesVersionsWildcard1.ts create mode 100644 tests/cases/fourslash/pathCompletionsTypesVersionsWildcard2.ts create mode 100644 tests/cases/fourslash/pathCompletionsTypesVersionsWildcard3.ts create mode 100644 tests/cases/fourslash/pathCompletionsTypesVersionsWildcard4.ts create mode 100644 tests/cases/fourslash/pathCompletionsTypesVersionsWildcard5.ts create mode 100644 tests/cases/fourslash/pathCompletionsTypesVersionsWildcard6.ts diff --git a/src/compiler/core.ts b/src/compiler/core.ts index a3be6f976cd..d0eaa7fc0dc 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -2299,7 +2299,7 @@ namespace ts { return startsWith(getCanonicalFileName(str), getCanonicalFileName(prefix)) ? str.substring(prefix.length) : undefined; } - function isPatternMatch({ prefix, suffix }: Pattern, candidate: string) { + export function isPatternMatch({ prefix, suffix }: Pattern, candidate: string) { return candidate.length >= prefix.length + suffix.length && startsWith(candidate, prefix) && endsWith(candidate, suffix); diff --git a/src/services/stringCompletions.ts b/src/services/stringCompletions.ts index 604a8337426..39ae23fe4b4 100644 --- a/src/services/stringCompletions.ts +++ b/src/services/stringCompletions.ts @@ -448,10 +448,28 @@ namespace ts.Completions.StringCompletions { fragment = ensureTrailingDirectorySeparator(fragment); - // const absolutePath = normalizeAndPreserveTrailingSlash(isRootedDiskPath(fragment) ? fragment : combinePaths(scriptPath, fragment)); // TODO(rbuckton): should use resolvePaths const absolutePath = resolvePath(scriptPath, fragment); const baseDirectory = hasTrailingDirectorySeparator(absolutePath) ? absolutePath : getDirectoryPath(absolutePath); + // check for a version redirect + const packageJsonPath = findPackageJson(baseDirectory, host); + if (packageJsonPath) { + const packageJson = readJson(packageJsonPath, host as { readFile: (filename: string) => string | undefined }); + const typesVersions = (packageJson as any).typesVersions; + if (typeof typesVersions === "object") { + const versionPaths = getPackageJsonTypesVersionsPaths(typesVersions)?.paths; + if (versionPaths) { + const packageDirectory = getDirectoryPath(packageJsonPath); + const pathInPackage = absolutePath.slice(ensureTrailingDirectorySeparator(packageDirectory).length); + if (addCompletionEntriesFromPaths(result, pathInPackage, packageDirectory, extensions, versionPaths, host)) { + // A true result means one of the `versionPaths` was matched, which will block relative resolution + // to files and folders from here. All reachable paths given the pattern match are already added. + return result; + } + } + } + } + const ignoreCase = !(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames()); if (!tryDirectoryExists(host, baseDirectory)) return result; @@ -505,37 +523,51 @@ namespace ts.Completions.StringCompletions { } } - // check for a version redirect - const packageJsonPath = findPackageJson(baseDirectory, host); - if (packageJsonPath) { - const packageJson = readJson(packageJsonPath, host as { readFile: (filename: string) => string | undefined }); - const typesVersions = (packageJson as any).typesVersions; - if (typeof typesVersions === "object") { - const versionResult = getPackageJsonTypesVersionsPaths(typesVersions); - const versionPaths = versionResult && versionResult.paths; - const rest = absolutePath.slice(ensureTrailingDirectorySeparator(baseDirectory).length); - if (versionPaths) { - addCompletionEntriesFromPaths(result, rest, baseDirectory, extensions, versionPaths, host); - } - } - } - return result; } + /** @returns whether `fragment` was a match for any `paths` (which should indicate whether any other path completions should be offered) */ function addCompletionEntriesFromPaths(result: NameAndKind[], fragment: string, baseDirectory: string, fileExtensions: readonly string[], paths: MapLike, host: LanguageServiceHost) { + let pathResults: { results: NameAndKind[], matchedPattern: boolean }[] = []; + let matchedPathPrefixLength = -1; for (const path in paths) { if (!hasProperty(paths, path)) continue; const patterns = paths[path]; if (patterns) { - for (const { name, kind, extension } of getCompletionsForPathMapping(path, patterns, fragment, baseDirectory, fileExtensions, host)) { - // Path mappings may provide a duplicate way to get to something we've already added, so don't add again. - if (!result.some(entry => entry.name === name)) { - result.push(nameAndKind(name, kind, extension)); - } + const pathPattern = tryParsePattern(path); + if (!pathPattern) continue; + const isMatch = typeof pathPattern === "object" && isPatternMatch(pathPattern, fragment); + const isLongestMatch = isMatch && (matchedPathPrefixLength === undefined || pathPattern.prefix.length > matchedPathPrefixLength); + if (isLongestMatch) { + // If this is a higher priority match than anything we've seen so far, previous results from matches are invalid, e.g. + // for `import {} from "some-package/|"` with a typesVersions: + // { + // "bar/*": ["bar/*"], // <-- 1. We add 'bar', but 'bar/*' doesn't match yet. + // "*": ["dist/*"], // <-- 2. We match here and add files from dist. 'bar' is still ok because it didn't come from a match. + // "foo/*": ["foo/*"] // <-- 3. We matched '*' earlier and added results from dist, but if 'foo/*' also matched, + // } results in dist would not be visible. 'bar' still stands because it didn't come from a match. + // This is especially important if `dist/foo` is a folder, because if we fail to clear results + // added by the '*' match, after typing `"some-package/foo/|"` we would get file results from both + // ./dist/foo and ./foo, when only the latter will actually be resolvable. + // See pathCompletionsTypesVersionsWildcard6.ts. + matchedPathPrefixLength = pathPattern.prefix.length; + pathResults = pathResults.filter(r => !r.matchedPattern); + } + if (typeof pathPattern === "string" || matchedPathPrefixLength === undefined || pathPattern.prefix.length >= matchedPathPrefixLength) { + pathResults.push({ + matchedPattern: isMatch, + results: getCompletionsForPathMapping(path, patterns, fragment, baseDirectory, fileExtensions, host) + .map(({ name, kind, extension }) => nameAndKind(name, kind, extension)), + }); } } } + + const equatePaths = host.useCaseSensitiveFileNames?.() ? equateStringsCaseSensitive : equateStringsCaseInsensitive; + const equateResults: EqualityComparer = (a, b) => equatePaths(a.name, b.name); + pathResults.forEach(pathResult => pathResult.results.forEach(pathResult => pushIfUnique(result, pathResult, equateResults))); + + return matchedPathPrefixLength > -1; } /** @@ -659,11 +691,15 @@ namespace ts.Completions.StringCompletions { const pathPrefix = path.slice(0, path.length - 1); const remainingFragment = tryRemovePrefix(fragment, pathPrefix); - return remainingFragment === undefined ? justPathMappingName(pathPrefix) : flatMap(patterns, pattern => - getModulesForPathsPattern(remainingFragment, baseUrl, pattern, fileExtensions, host)); + if (remainingFragment === undefined) { + const starIsFullPathComponent = path[path.length - 2] === "/"; + return starIsFullPathComponent ? justPathMappingName(pathPrefix) : flatMap(patterns, pattern => + getModulesForPathsPattern("", baseUrl, pattern, fileExtensions, host)?.map(({ name, ...rest }) => ({ name: pathPrefix + name, ...rest }))); + } + return flatMap(patterns, pattern => getModulesForPathsPattern(remainingFragment, baseUrl, pattern, fileExtensions, host)); function justPathMappingName(name: string): readonly NameAndKind[] { - return startsWith(name, fragment) ? [directoryResult(name)] : emptyArray; + return startsWith(name, fragment) ? [directoryResult(removeTrailingDirectorySeparator(name))] : emptyArray; } } diff --git a/tests/cases/fourslash/completionForStringLiteralNonrelativeImport13.ts b/tests/cases/fourslash/completionForStringLiteralNonrelativeImport13.ts index 59b2d7a9539..90cfe1ebb3c 100644 --- a/tests/cases/fourslash/completionForStringLiteralNonrelativeImport13.ts +++ b/tests/cases/fourslash/completionForStringLiteralNonrelativeImport13.ts @@ -31,6 +31,6 @@ verify.completions({ marker: test.markerNames(), - exact: ["aaa", "index", "ts3.1", "zzz"], + exact: ["index", "zzz"], isNewIdentifierLocation: true, }); diff --git a/tests/cases/fourslash/completionsPaths_pathMapping_topLevel.ts b/tests/cases/fourslash/completionsPaths_pathMapping_topLevel.ts index a448abe2dff..1450247b97f 100644 --- a/tests/cases/fourslash/completionsPaths_pathMapping_topLevel.ts +++ b/tests/cases/fourslash/completionsPaths_pathMapping_topLevel.ts @@ -15,6 +15,6 @@ verify.completions({ marker: "", - exact: ["src", "foo/"].map(name => ({ name, kind: "directory" })), + exact: ["src", "foo"].map(name => ({ name, kind: "directory" })), isNewIdentifierLocation: true, }); diff --git a/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard1.ts b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard1.ts new file mode 100644 index 00000000000..bc3d30d715c --- /dev/null +++ b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard1.ts @@ -0,0 +1,42 @@ +/// + +// @module: commonjs + +// @Filename: /node_modules/foo/package.json +//// { +//// "types": "index.d.ts", +//// "typesVersions": { +//// "*": { +//// "*": ["dist/*"] +//// } +//// } +//// } + +// @Filename: /node_modules/foo/nope.d.ts +//// export const nope = 0; + +// @Filename: /node_modules/foo/dist/index.d.ts +//// export const index = 0; + +// @Filename: /node_modules/foo/dist/blah.d.ts +//// export const blah = 0; + +// @Filename: /node_modules/foo/dist/subfolder/one.d.ts +//// export const one = 0; + +// @Filename: /a.ts +//// import { } from "foo//**/"; + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + exact: ["blah", "index", "subfolder"], +}); + +edit.insert("subfolder/"); + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + exact: ["one"], +}); diff --git a/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard2.ts b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard2.ts new file mode 100644 index 00000000000..8c607bf1e0d --- /dev/null +++ b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard2.ts @@ -0,0 +1,34 @@ +/// + +// @module: commonjs + +// @Filename: /node_modules/foo/package.json +//// { +//// "types": "index.d.ts", +//// "typesVersions": { +//// "<=3.4.1": { +//// "*": ["ts-old/*"] +//// } +//// } +//// } + +// @Filename: /node_modules/foo/nope.d.ts +//// export const nope = 0; + +// @Filename: /node_modules/foo/ts-old/index.d.ts +//// export const index = 0; + +// @Filename: /node_modules/foo/ts-old/blah.d.ts +//// export const blah = 0; + +// @Filename: /node_modules/foo/ts-old/subfolder/one.d.ts +//// export const one = 0; + +// @Filename: /a.ts +//// import { } from "foo//**/"; + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + exact: ["nope", "ts-old"], +}); diff --git a/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard3.ts b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard3.ts new file mode 100644 index 00000000000..0d6d704b14a --- /dev/null +++ b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard3.ts @@ -0,0 +1,48 @@ +/// + +// @module: commonjs + +// @Filename: /node_modules/foo/package.json +//// { +//// "types": "index.d.ts", +//// "typesVersions": { +//// ">=4.3.5": { +//// "browser/*": ["dist/*"] +//// } +//// } +//// } + +// @Filename: /node_modules/foo/nope.d.ts +//// export const nope = 0; + +// @Filename: /node_modules/foo/dist/index.d.ts +//// export const index = 0; + +// @Filename: /node_modules/foo/dist/blah.d.ts +//// export const blah = 0; + +// @Filename: /node_modules/foo/dist/subfolder/one.d.ts +//// export const one = 0; + +// @Filename: /a.ts +//// import { } from "foo//**/"; + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + exact: ["browser", "nope", "dist"], +}); + +edit.insert("browser/"); + +verify.completions({ + isNewIdentifierLocation: true, + exact: ["blah", "index", "subfolder"], +}); + +edit.insert("subfolder/"); + +verify.completions({ + isNewIdentifierLocation: true, + exact: ["one"], +}); diff --git a/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard4.ts b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard4.ts new file mode 100644 index 00000000000..038bda22ac1 --- /dev/null +++ b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard4.ts @@ -0,0 +1,41 @@ +/// + +// @module: commonjs + +// @Filename: /node_modules/foo/package.json +//// { +//// "types": "index.d.ts", +//// "typesVersions": { +//// ">=4.3.5": { +//// "component-*": ["cjs/components/*"] +//// } +//// } +//// } + +// @Filename: /node_modules/foo/nope.d.ts +//// export const nope = 0; + +// @Filename: /node_modules/foo/cjs/components/index.d.ts +//// export const index = 0; + +// @Filename: /node_modules/foo/cjs/components/blah.d.ts +//// export const blah = 0; + +// @Filename: /node_modules/foo/cjs/components/subfolder/one.d.ts +//// export const one = 0; + +// @Filename: /a.ts +//// import { } from "foo//**/"; + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + exact: ["component-blah", "component-index", "component-subfolder", "nope", "cjs"], +}); + +edit.insert("component-subfolder/"); + +verify.completions({ + isNewIdentifierLocation: true, + exact: ["one"], +}); diff --git a/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard5.ts b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard5.ts new file mode 100644 index 00000000000..a7e8f49dad1 --- /dev/null +++ b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard5.ts @@ -0,0 +1,54 @@ +/// + +// @module: commonjs + +// @Filename: /node_modules/foo/package.json +//// { +//// "types": "index.d.ts", +//// "typesVersions": { +//// "*": { +//// "*": ["dist/*"], +//// "foo/*": ["dist/*"], +//// "bar/*": ["dist/*"], +//// "exact-match": ["dist/index.d.ts"] +//// } +//// } +//// } + +// @Filename: /node_modules/foo/nope.d.ts +//// export const nope = 0; + +// @Filename: /node_modules/foo/dist/index.d.ts +//// export const index = 0; + +// @Filename: /node_modules/foo/dist/blah.d.ts +//// export const blah = 0; + +// @Filename: /node_modules/foo/dist/foo/onlyInFooFolder.d.ts +//// export const foo = 0; + +// @Filename: /node_modules/foo/dist/subfolder/one.d.ts +//// export const one = 0; + +// @Filename: /a.ts +//// import { } from "foo//**/"; + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + exact: ["blah", "index", "foo", "subfolder", "bar", "exact-match"], +}); + +edit.insert("foo/"); + +verify.completions({ + isNewIdentifierLocation: true, + exact: ["blah", "index", "foo", "subfolder"], +}); + +edit.insert("foo/"); + +verify.completions({ + isNewIdentifierLocation: true, + exact: ["onlyInFooFolder"], +}); diff --git a/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard6.ts b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard6.ts new file mode 100644 index 00000000000..c3f89a4fa6c --- /dev/null +++ b/tests/cases/fourslash/pathCompletionsTypesVersionsWildcard6.ts @@ -0,0 +1,57 @@ +/// + +// This is the same test as pathCompletionsTypesVersionsWildcard5, but +// with the path patterns shuffled to ensure iteration order doesn't matter. + +// @module: commonjs + +// @Filename: /node_modules/foo/package.json +//// { +//// "types": "index.d.ts", +//// "typesVersions": { +//// "*": { +//// "bar/*": ["dist/*"], +//// "exact-match": ["dist/index.d.ts"], +//// "foo/*": ["dist/*"], +//// "*": ["dist/*"] +//// } +//// } +//// } + +// @Filename: /node_modules/foo/nope.d.ts +//// export const nope = 0; + +// @Filename: /node_modules/foo/dist/index.d.ts +//// export const index = 0; + +// @Filename: /node_modules/foo/dist/blah.d.ts +//// export const blah = 0; + +// @Filename: /node_modules/foo/dist/foo/onlyInFooFolder.d.ts +//// export const foo = 0; + +// @Filename: /node_modules/foo/dist/subfolder/one.d.ts +//// export const one = 0; + +// @Filename: /a.ts +//// import { } from "foo//**/"; + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + exact: ["bar", "exact-match", "foo", "blah", "index", "subfolder"], +}); + +edit.insert("foo/"); + +verify.completions({ + isNewIdentifierLocation: true, + exact: ["blah", "index", "foo", "subfolder"], +}); + +edit.insert("foo/"); + +verify.completions({ + isNewIdentifierLocation: true, + exact: ["onlyInFooFolder"], +}); From 408c760fae66080104bc85c449282c2d207dfe8e Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Fri, 20 May 2022 06:06:36 +0000 Subject: [PATCH 61/64] Update package-lock.json --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9168ccb330d..428aac313b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -638,9 +638,9 @@ "dev": true }, "@types/node": { - "version": "17.0.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.34.tgz", - "integrity": "sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", + "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==", "dev": true }, "@types/node-fetch": { From 006ae339bf7bb7ec88bf148a8e2612bf9419260a Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Fri, 20 May 2022 11:04:34 -0700 Subject: [PATCH 62/64] Add es2018.intl ref to es2020.intl (#49152) * Add es2018.intl ref to es2020.intl es2020.intl refers to NumberFormatPartTypes declared in es2018.intl as of #46508. I'm not sure how to test this; it repros on Definitely Typed in types/ndarray, but when I copy the same files into a compiler test it passes without a problem. * Add a test that shows the change works It doesn't actually show that the original bug has been fixed, though. --- src/lib/es2020.intl.d.ts | 1 + tests/baselines/reference/es2020IntlAPIs.errors.txt | 8 ++++---- .../esnext.bigintIncludesNumberFormatPartTypes.js | 8 ++++++++ .../esnext.bigintIncludesNumberFormatPartTypes.symbols | 7 +++++++ .../esnext.bigintIncludesNumberFormatPartTypes.types | 6 ++++++ .../esnext.bigintIncludesNumberFormatPartTypes.ts | 3 +++ 6 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.js create mode 100644 tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.symbols create mode 100644 tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.types create mode 100644 tests/cases/compiler/esnext.bigintIncludesNumberFormatPartTypes.ts diff --git a/src/lib/es2020.intl.d.ts b/src/lib/es2020.intl.d.ts index c74f0566ca0..bae2790eecb 100644 --- a/src/lib/es2020.intl.d.ts +++ b/src/lib/es2020.intl.d.ts @@ -1,3 +1,4 @@ +/// declare namespace Intl { /** diff --git a/tests/baselines/reference/es2020IntlAPIs.errors.txt b/tests/baselines/reference/es2020IntlAPIs.errors.txt index cdd0156581a..de13c37357d 100644 --- a/tests/baselines/reference/es2020IntlAPIs.errors.txt +++ b/tests/baselines/reference/es2020IntlAPIs.errors.txt @@ -53,22 +53,22 @@ tests/cases/conformance/es2020/es2020IntlAPIs.ts(50,29): error TS2345: Argument new Intl.Locale(); // should error ~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 1-2 arguments, but got 0. -!!! related TS6210 /.ts/lib.es2020.intl.d.ts:335:14: An argument for 'tag' was not provided. +!!! related TS6210 /.ts/lib.es2020.intl.d.ts:336:14: An argument for 'tag' was not provided. new Intl.Locale(new Intl.Locale('en-US')); new Intl.DisplayNames(); // TypeError: invalid_argument ~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 2 arguments, but got 0. -!!! related TS6210 /.ts/lib.es2020.intl.d.ts:414:13: An argument for 'locales' was not provided. +!!! related TS6210 /.ts/lib.es2020.intl.d.ts:415:13: An argument for 'locales' was not provided. new Intl.DisplayNames('en'); // TypeError: invalid_argument ~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2554: Expected 2 arguments, but got 1. -!!! related TS6210 /.ts/lib.es2020.intl.d.ts:414:39: An argument for 'options' was not provided. +!!! related TS6210 /.ts/lib.es2020.intl.d.ts:415:39: An argument for 'options' was not provided. new Intl.DisplayNames('en', {}); // TypeError: invalid_argument ~~ !!! error TS2345: Argument of type '{}' is not assignable to parameter of type 'DisplayNamesOptions'. !!! error TS2345: Property 'type' is missing in type '{}' but required in type 'DisplayNamesOptions'. -!!! related TS2728 /.ts/lib.es2020.intl.d.ts:357:9: 'type' is declared here. +!!! related TS2728 /.ts/lib.es2020.intl.d.ts:358:9: 'type' is declared here. console.log((new Intl.DisplayNames(undefined, {type: 'language'})).of('en-GB')); // "British English" const localesArg = ["es-ES", new Intl.Locale("en-US")]; diff --git a/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.js b/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.js new file mode 100644 index 00000000000..46674cdc4ee --- /dev/null +++ b/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.js @@ -0,0 +1,8 @@ +//// [esnext.bigintIncludesNumberFormatPartTypes.ts] +/// +var t: Intl.NumberFormatPartTypes + + +//// [esnext.bigintIncludesNumberFormatPartTypes.js] +/// +var t; diff --git a/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.symbols b/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.symbols new file mode 100644 index 00000000000..7a2e0fa6069 --- /dev/null +++ b/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/esnext.bigintIncludesNumberFormatPartTypes.ts === +/// +var t: Intl.NumberFormatPartTypes +>t : Symbol(t, Decl(esnext.bigintIncludesNumberFormatPartTypes.ts, 1, 3)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>NumberFormatPartTypes : Symbol(Intl.NumberFormatPartTypes, Decl(lib.es2018.intl.d.ts, --, --)) + diff --git a/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.types b/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.types new file mode 100644 index 00000000000..b1cd31d0b10 --- /dev/null +++ b/tests/baselines/reference/esnext.bigintIncludesNumberFormatPartTypes.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/esnext.bigintIncludesNumberFormatPartTypes.ts === +/// +var t: Intl.NumberFormatPartTypes +>t : Intl.NumberFormatPartTypes +>Intl : any + diff --git a/tests/cases/compiler/esnext.bigintIncludesNumberFormatPartTypes.ts b/tests/cases/compiler/esnext.bigintIncludesNumberFormatPartTypes.ts new file mode 100644 index 00000000000..7e2aae31ea4 --- /dev/null +++ b/tests/cases/compiler/esnext.bigintIncludesNumberFormatPartTypes.ts @@ -0,0 +1,3 @@ +// @lib: es6 +/// +var t: Intl.NumberFormatPartTypes From c592ee781db66638da3e680974d99369ad546e0f Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 23 May 2022 11:07:33 -0700 Subject: [PATCH 63/64] Instantiate original target type in substituteIndexedMappedType (#49205) --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ec43221b1f7..7bcc6f5bdc6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -15798,7 +15798,7 @@ namespace ts { function substituteIndexedMappedType(objectType: MappedType, index: Type) { const mapper = createTypeMapper([getTypeParameterFromMappedType(objectType)], [index]); const templateMapper = combineTypeMappers(objectType.mapper, mapper); - return instantiateType(getTemplateTypeFromMappedType(objectType), templateMapper); + return instantiateType(getTemplateTypeFromMappedType(objectType.target as MappedType || objectType), templateMapper); } function getIndexedAccessType(objectType: Type, indexType: Type, accessFlags = AccessFlags.None, accessNode?: ElementAccessExpression | IndexedAccessTypeNode | PropertyName | BindingName | SyntheticExpression, aliasSymbol?: Symbol, aliasTypeArguments?: readonly Type[]): Type { From 7c6521e8fb8f24a31f28e00e92838ad1b975fbb3 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 23 May 2022 11:40:57 -0700 Subject: [PATCH 64/64] When building projects in watch mode, only schedule projects that need build or need update to bundle (#48865) * Handle timesouts to reflect the time it was set with * Remove unused internal calls from solution builder * If the project doesnt need building or updating bundle, dont schedule it but do it right away * Reduce the time between project builds to 100ms * Some tests for projects building * Schedule builds such that when change is not detected 5 projects are built at a time * Fix tests in main --- src/compiler/tsbuildPublic.ts | 116 +- src/harness/virtualFileSystemWithWatch.ts | 49 +- src/testRunner/tsconfig.json | 1 + src/testRunner/unittests/tsbuild/sample.ts | 4 +- src/testRunner/unittests/tsbuildWatch/demo.ts | 4 +- .../tsbuildWatch/moduleResolution.ts | 3 +- .../unittests/tsbuildWatch/programUpdates.ts | 41 +- .../tsbuildWatch/projectsBuilding.ts | 185 + .../unittests/tsbuildWatch/publicApi.ts | 3 +- .../unittests/tsbuildWatch/reexport.ts | 18 +- .../tsbuildWatch/watchEnvironment.ts | 12 +- .../reports-syntax-errors-in-config-file.js | 4 +- ...t-correctly-with-cts-and-mts-extensions.js | 8 +- ...mit-any-files-on-error-with-incremental.js | 28 +- .../does-not-emit-any-files-on-error.js | 28 +- ...le-is-added,-and-its-subsequent-updates.js | 102 +- ...hanges-and-reports-found-errors-message.js | 231 +- ...not-start-build-of-referencing-projects.js | 71 +- ...le-is-added,-and-its-subsequent-updates.js | 102 +- ...hanges-and-reports-found-errors-message.js | 231 +- ...not-start-build-of-referencing-projects.js | 71 +- .../works-with-extended-source-files.js | 16 +- ...hen-there-are-23-projects-in-a-solution.js | 6877 +++++++++++++++++ ...when-there-are-3-projects-in-a-solution.js | 649 ++ ...when-there-are-5-projects-in-a-solution.js | 919 +++ ...when-there-are-8-projects-in-a-solution.js | 2040 +++++ ...e-projects-with-single-watcher-per-file.js | 4 +- .../same-file-in-multiple-projects.js | 4 +- ...-to-date-with-the-reference-map-changes.js | 8 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../default/with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../defaultAndD/with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../incremental/default/with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../defaultAndD/with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../isolatedModules/with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../isolatedModulesAndD/with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../isolatedModules/with-noEmitOnError.js | 12 +- .../with-noEmitOnError-with-incremental.js | 12 +- .../isolatedModulesAndD/with-noEmitOnError.js | 12 +- .../extended-source-files-are-watched.js | 4 +- ...on-emit-is-disabled-in-compiler-options.js | 4 +- ...file-is-added-to-the-referenced-project.js | 4 +- ...ibCheck-and-skipDefaultLibCheck-changes.js | 12 +- ...-different-folders-with-no-files-clause.js | 20 +- ...nsitive-references-in-different-folders.js | 20 +- .../on-transitive-references.js | 20 +- ...-no-notification-from-fs-for-index-file.js | 4 +- ...ing-useSourceOfProjectReferenceRedirect.js | 4 +- ...ory-with-outDir-and-declaration-enabled.js | 4 +- .../with-non-synchronous-watch-directory.js | 4 +- .../using-dynamic-priority-polling.js | 4 +- .../using-fixed-chunk-size-polling.js | 4 +- 66 files changed, 11243 insertions(+), 982 deletions(-) create mode 100644 src/testRunner/unittests/tsbuildWatch/projectsBuilding.ts create mode 100644 tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-23-projects-in-a-solution.js create mode 100644 tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-3-projects-in-a-solution.js create mode 100644 tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-5-projects-in-a-solution.js create mode 100644 tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-8-projects-in-a-solution.js diff --git a/src/compiler/tsbuildPublic.ts b/src/compiler/tsbuildPublic.ts index 280ebfcd267..7bbc26feb10 100644 --- a/src/compiler/tsbuildPublic.ts +++ b/src/compiler/tsbuildPublic.ts @@ -145,8 +145,6 @@ namespace ts { // Testing only /*@internal*/ getUpToDateStatusOfProject(project: string): UpToDateStatus; /*@internal*/ invalidateProject(configFilePath: ResolvedConfigFilePath, reloadLevel?: ConfigFileProgramReloadLevel): void; - /*@internal*/ buildNextInvalidatedProject(): void; - /*@internal*/ getAllParsedConfigs(): readonly ParsedCommandLine[]; /*@internal*/ close(): void; } @@ -250,7 +248,6 @@ namespace ts { allProjectBuildPending: boolean; needsSummary: boolean; watchAllProjectsPending: boolean; - currentInvalidatedProject: InvalidatedProject | undefined; // Watch state readonly watch: boolean; @@ -332,7 +329,6 @@ namespace ts { allProjectBuildPending: true, needsSummary: true, watchAllProjectsPending: watch, - currentInvalidatedProject: undefined, // Watch state watch, @@ -684,7 +680,6 @@ namespace ts { projectPath: ResolvedConfigFilePath ) { state.projectPendingBuild.delete(projectPath); - state.currentInvalidatedProject = undefined; return state.diagnostics.has(projectPath) ? ExitStatus.DiagnosticsPresent_OutputsSkipped : ExitStatus.Success; @@ -1171,19 +1166,22 @@ namespace ts { !isIncrementalCompilation(config.options); } - function getNextInvalidatedProject( + interface InvalidateProjectCreateInfo { + kind: InvalidatedProjectKind; + status: UpToDateStatus; + project: ResolvedConfigFileName; + projectPath: ResolvedConfigFilePath; + projectIndex: number; + config: ParsedCommandLine; + } + + function getNextInvalidatedProjectCreateInfo( state: SolutionBuilderState, buildOrder: AnyBuildOrder, reportQueue: boolean - ): InvalidatedProject | undefined { + ): InvalidateProjectCreateInfo | undefined { if (!state.projectPendingBuild.size) return undefined; if (isCircularBuildOrder(buildOrder)) return undefined; - if (state.currentInvalidatedProject) { - // Only if same buildOrder the currentInvalidated project can be sent again - return arrayIsEqualTo(state.currentInvalidatedProject.buildOrder, buildOrder) ? - state.currentInvalidatedProject : - undefined; - } const { options, projectPendingBuild } = state; for (let projectIndex = 0; projectIndex < buildOrder.length; projectIndex++) { @@ -1220,9 +1218,9 @@ namespace ts { } const status = getUpToDateStatus(state, config, projectPath); - verboseReportProjectStatus(state, project, status); if (!options.force) { if (status.type === UpToDateStatusType.UpToDate) { + verboseReportProjectStatus(state, project, status); reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); projectPendingBuild.delete(projectPath); // Up to date, skip @@ -1235,17 +1233,19 @@ namespace ts { if (status.type === UpToDateStatusType.UpToDateWithUpstreamTypes) { reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); - return createUpdateOutputFileStampsProject( - state, + return { + kind: InvalidatedProjectKind.UpdateOutputFileStamps, + status, project, projectPath, - config, - buildOrder - ); + projectIndex, + config + }; } } if (status.type === UpToDateStatusType.UpstreamBlocked) { + verboseReportProjectStatus(state, project, status); reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); projectPendingBuild.delete(projectPath); if (options.verbose) { @@ -1262,28 +1262,63 @@ namespace ts { } if (status.type === UpToDateStatusType.ContainerOnly) { + verboseReportProjectStatus(state, project, status); reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config)); projectPendingBuild.delete(projectPath); // Do nothing continue; } - return createBuildOrUpdateInvalidedProject( - needsBuild(state, status, config) ? + return { + kind: needsBuild(state, status, config) ? InvalidatedProjectKind.Build : InvalidatedProjectKind.UpdateBundle, - state, + status, project, projectPath, projectIndex, config, - buildOrder, - ); + }; } return undefined; } + function createInvalidatedProjectWithInfo( + state: SolutionBuilderState, + info: InvalidateProjectCreateInfo, + buildOrder: AnyBuildOrder, + ) { + verboseReportProjectStatus(state, info.project, info.status); + return info.kind !== InvalidatedProjectKind.UpdateOutputFileStamps ? + createBuildOrUpdateInvalidedProject( + info.kind, + state, + info.project, + info.projectPath, + info.projectIndex, + info.config, + buildOrder as BuildOrder, + ) : + createUpdateOutputFileStampsProject( + state, + info.project, + info.projectPath, + info.config, + buildOrder as BuildOrder + ); + } + + function getNextInvalidatedProject( + state: SolutionBuilderState, + buildOrder: AnyBuildOrder, + reportQueue: boolean + ): InvalidatedProject | undefined { + const info = getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue); + if (!info) return info; + return createInvalidatedProjectWithInfo(state, info, buildOrder); + } + function listEmittedFile({ write }: SolutionBuilderState, proj: ParsedCommandLine, file: string) { if (write && proj.options.listEmittedFiles) { write(`TSFILE: ${file}`); @@ -1769,10 +1804,10 @@ namespace ts { function invalidateProjectAndScheduleBuilds(state: SolutionBuilderState, resolvedPath: ResolvedConfigFilePath, reloadLevel: ConfigFileProgramReloadLevel) { state.reportFileChangeDetected = true; invalidateProject(state, resolvedPath, reloadLevel); - scheduleBuildInvalidatedProject(state); + scheduleBuildInvalidatedProject(state, 250, /*changeDetected*/ true); } - function scheduleBuildInvalidatedProject(state: SolutionBuilderState) { + function scheduleBuildInvalidatedProject(state: SolutionBuilderState, time: number, changeDetected: boolean) { const { hostWithWatch } = state; if (!hostWithWatch.setTimeout || !hostWithWatch.clearTimeout) { return; @@ -1780,26 +1815,36 @@ namespace ts { if (state.timerToBuildInvalidatedProject) { hostWithWatch.clearTimeout(state.timerToBuildInvalidatedProject); } - state.timerToBuildInvalidatedProject = hostWithWatch.setTimeout(buildNextInvalidatedProject, 250, state); + state.timerToBuildInvalidatedProject = hostWithWatch.setTimeout(buildNextInvalidatedProject, time, state, changeDetected); } - function buildNextInvalidatedProject(state: SolutionBuilderState) { + function buildNextInvalidatedProject(state: SolutionBuilderState, changeDetected: boolean) { state.timerToBuildInvalidatedProject = undefined; if (state.reportFileChangeDetected) { state.reportFileChangeDetected = false; state.projectErrorsReported.clear(); reportWatchStatus(state, Diagnostics.File_change_detected_Starting_incremental_compilation); } + let projectsBuilt = 0; const buildOrder = getBuildOrder(state); const invalidatedProject = getNextInvalidatedProject(state, buildOrder, /*reportQueue*/ false); if (invalidatedProject) { invalidatedProject.done(); - if (state.projectPendingBuild.size) { - // Schedule next project for build - if (state.watch && !state.timerToBuildInvalidatedProject) { - scheduleBuildInvalidatedProject(state); + projectsBuilt++; + while (state.projectPendingBuild.size) { + // If already scheduled, skip + if (state.timerToBuildInvalidatedProject) return; + // Before scheduling check if the next project needs build + const info = getNextInvalidatedProjectCreateInfo(state, buildOrder, /*reportQueue*/ false); + if (!info) break; // Nothing to build any more + if (info.kind !== InvalidatedProjectKind.UpdateOutputFileStamps && (changeDetected || projectsBuilt === 5)) { + // Schedule next project for build + scheduleBuildInvalidatedProject(state, 100, /*changeDetected*/ false); + return; } - return; + const project = createInvalidatedProjectWithInfo(state, info, buildOrder); + project.done(); + if (info.kind !== InvalidatedProjectKind.UpdateOutputFileStamps) projectsBuilt++; } } disableCache(state); @@ -1961,11 +2006,6 @@ namespace ts { return getUpToDateStatus(state, parseConfigFile(state, configFileName, configFilePath), configFilePath); }, invalidateProject: (configFilePath, reloadLevel) => invalidateProject(state, configFilePath, reloadLevel || ConfigFileProgramReloadLevel.None), - buildNextInvalidatedProject: () => buildNextInvalidatedProject(state), - getAllParsedConfigs: () => arrayFrom(mapDefinedIterator( - state.configFileCache.values(), - config => isParsedCommandLine(config) ? config : undefined - )), close: () => stopWatching(state), }; } diff --git a/src/harness/virtualFileSystemWithWatch.ts b/src/harness/virtualFileSystemWithWatch.ts index 24640a8fc51..95fa5fa6c36 100644 --- a/src/harness/virtualFileSystemWithWatch.ts +++ b/src/harness/virtualFileSystemWithWatch.ts @@ -279,18 +279,27 @@ interface Array { length: number; [n: number]: T; }` } } + interface CallbackData { + cb: TimeOutCallback; + args: any[]; + ms: number | undefined; + time: number; + } class Callbacks { - private map: TimeOutCallback[] = []; + private map: { cb: TimeOutCallback; args: any[]; ms: number | undefined; time: number; }[] = []; private nextId = 1; + constructor(private host: TestServerHost) { + } + getNextId() { return this.nextId; } - register(cb: (...args: any[]) => void, args: any[]) { + register(cb: TimeOutCallback, args: any[], ms?: number) { const timeoutId = this.nextId; this.nextId++; - this.map[timeoutId] = cb.bind(/*this*/ undefined, ...args); + this.map[timeoutId] = { cb, args, ms, time: this.host.getTime() }; return timeoutId; } @@ -308,9 +317,19 @@ interface Array { length: number; [n: number]: T; }` return n; } + private invokeCallback({ cb, args, ms, time }: CallbackData) { + if (ms !== undefined) { + const newTime = ms + time; + if (this.host.getTime() < newTime) { + this.host.setTime(newTime); + } + } + cb(...args); + } + invoke(invokeKey?: number) { if (invokeKey) { - this.map[invokeKey](); + this.invokeCallback(this.map[invokeKey]); delete this.map[invokeKey]; return; } @@ -319,13 +338,13 @@ interface Array { length: number; [n: number]: T; }` // so do not clear the entire callback list regardless. Only remove the // ones we have invoked. for (const key in this.map) { - this.map[key](); + this.invokeCallback(this.map[key]); delete this.map[key]; } } } - type TimeOutCallback = () => any; + type TimeOutCallback = (...args: any[]) => void; export interface TestFileWatcher { cb: FileWatcherCallback; @@ -380,8 +399,8 @@ interface Array { length: number; [n: number]: T; }` private time = timeIncrements; getCanonicalFileName: (s: string) => string; private toPath: (f: string) => Path; - private timeoutCallbacks = new Callbacks(); - private immediateCallbacks = new Callbacks(); + private timeoutCallbacks = new Callbacks(this); + private immediateCallbacks = new Callbacks(this); readonly screenClears: number[] = []; readonly watchedFiles = createMultiMap(); @@ -478,6 +497,14 @@ interface Array { length: number; [n: number]: T; }` return new Date(this.time); } + getTime() { + return this.time; + } + + setTime(time: number) { + this.time = time; + } + private reloadFS(fileOrFolderOrSymLinkList: readonly FileOrFolderOrSymLink[], options?: Partial) { Debug.assert(this.fs.size === 0); fileOrFolderOrSymLinkList = fileOrFolderOrSymLinkList.concat(this.withSafeList ? safeList : []); @@ -935,8 +962,8 @@ interface Array { length: number; [n: number]: T; }` } // TOOD: record and invoke callbacks to simulate timer events - setTimeout(callback: TimeOutCallback, _time: number, ...args: any[]) { - return this.timeoutCallbacks.register(callback, args); + setTimeout(callback: TimeOutCallback, ms: number, ...args: any[]) { + return this.timeoutCallbacks.register(callback, args, ms); } getNextTimeoutId() { @@ -980,7 +1007,7 @@ interface Array { length: number; [n: number]: T; }` this.immediateCallbacks.invoke(); } - setImmediate(callback: TimeOutCallback, _time: number, ...args: any[]) { + setImmediate(callback: TimeOutCallback, ...args: any[]) { return this.immediateCallbacks.register(callback, args); } diff --git a/src/testRunner/tsconfig.json b/src/testRunner/tsconfig.json index 619d3f245c7..b5025099154 100644 --- a/src/testRunner/tsconfig.json +++ b/src/testRunner/tsconfig.json @@ -146,6 +146,7 @@ "unittests/tsbuildWatch/noEmit.ts", "unittests/tsbuildWatch/noEmitOnError.ts", "unittests/tsbuildWatch/programUpdates.ts", + "unittests/tsbuildWatch/projectsBuilding.ts", "unittests/tsbuildWatch/publicApi.ts", "unittests/tsbuildWatch/reexport.ts", "unittests/tsbuildWatch/watchEnvironment.ts", diff --git a/src/testRunner/unittests/tsbuild/sample.ts b/src/testRunner/unittests/tsbuild/sample.ts index 2178c422ab9..81ce16da82d 100644 --- a/src/testRunner/unittests/tsbuild/sample.ts +++ b/src/testRunner/unittests/tsbuild/sample.ts @@ -338,11 +338,11 @@ namespace ts { function verifyInvalidation(heading: string) { // Rebuild this project builder.invalidateProject(logicConfig.path as ResolvedConfigFilePath); - builder.buildNextInvalidatedProject(); + builder.getNextInvalidatedProject()?.done(); baselineState(`${heading}:: After rebuilding logicConfig`); // Build downstream projects should update 'tests', but not 'core' - builder.buildNextInvalidatedProject(); + builder.getNextInvalidatedProject()?.done(); baselineState(`${heading}:: After building next project`); } diff --git a/src/testRunner/unittests/tsbuildWatch/demo.ts b/src/testRunner/unittests/tsbuildWatch/demo.ts index a648f084cd0..76dff70b29d 100644 --- a/src/testRunner/unittests/tsbuildWatch/demo.ts +++ b/src/testRunner/unittests/tsbuildWatch/demo.ts @@ -48,9 +48,7 @@ namespace ts.tscWatch { change: sys => sys.writeFile(coreFiles[0].path, coreFiles[0].content), timeouts: sys => { sys.checkTimeoutQueueLengthAndRun(1); // build core - sys.checkTimeoutQueueLengthAndRun(1); // build animals - sys.checkTimeoutQueueLengthAndRun(1); // build zoo - sys.checkTimeoutQueueLengthAndRun(1); // build solution + sys.checkTimeoutQueueLengthAndRun(1); // build animals, zoo and solution sys.checkTimeoutQueueLength(0); }, } diff --git a/src/testRunner/unittests/tsbuildWatch/moduleResolution.ts b/src/testRunner/unittests/tsbuildWatch/moduleResolution.ts index d68e63a5c4e..2ac7ecb3727 100644 --- a/src/testRunner/unittests/tsbuildWatch/moduleResolution.ts +++ b/src/testRunner/unittests/tsbuildWatch/moduleResolution.ts @@ -45,8 +45,7 @@ namespace ts.tscWatch { caption: "Append text", change: sys => sys.appendFile(`${projectRoot}/project1/index.ts`, "const bar = 10;"), timeouts: sys => { - sys.checkTimeoutQueueLengthAndRun(1); // build project1 - sys.checkTimeoutQueueLengthAndRun(1); // Solution + sys.checkTimeoutQueueLengthAndRun(1); // build project1 and solution sys.checkTimeoutQueueLength(0); } }, diff --git a/src/testRunner/unittests/tsbuildWatch/programUpdates.ts b/src/testRunner/unittests/tsbuildWatch/programUpdates.ts index e6ba2f0e93e..58d912b30c5 100644 --- a/src/testRunner/unittests/tsbuildWatch/programUpdates.ts +++ b/src/testRunner/unittests/tsbuildWatch/programUpdates.ts @@ -89,13 +89,6 @@ namespace ts.tscWatch { }); }); - const buildTests: TscWatchCompileChange = { - caption: "Build Tests", - change: noop, - // Build tests - timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout, - }; - describe("validates the changes and watched files", () => { const newFileWithoutExtension = "newFile"; const newFile: File = { @@ -104,10 +97,10 @@ namespace ts.tscWatch { }; function verifyProjectChanges(subScenario: string, allFilesGetter: () => readonly File[]) { - const buildLogicOrUpdateTimeStamps: TscWatchCompileChange = { - caption: "Build logic or update time stamps", + const buildLogicAndTests: TscWatchCompileChange = { + caption: "Build logic and tests", change: noop, - timeouts: checkSingleTimeoutQueueLengthAndRun, // Builds logic or updates timestamps + timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout, }; verifyTscWatch({ @@ -121,12 +114,10 @@ namespace ts.tscWatch { changes: [ changeCore(() => `${core[1].content} export class someClass { }`, "Make change to core"), - buildLogicOrUpdateTimeStamps, - buildTests, + buildLogicAndTests, // Another change requeues and builds it changeCore(() => core[1].content, "Revert core file"), - buildLogicOrUpdateTimeStamps, - buildTests, + buildLogicAndTests, { caption: "Make two changes", change: sys => { @@ -140,8 +131,7 @@ export class someClass2 { }`); }, timeouts: checkSingleTimeoutQueueLengthAndRun, // Builds core }, - buildLogicOrUpdateTimeStamps, - buildTests, + buildLogicAndTests, ] }); @@ -156,8 +146,6 @@ export class someClass2 { }`); changes: [ changeCore(() => `${core[1].content} function foo() { }`, "Make local change to core"), - buildLogicOrUpdateTimeStamps, - buildTests ] }); @@ -174,12 +162,10 @@ function foo() { }`, "Make local change to core"), ), changes: [ changeNewFile(newFile.content), - buildLogicOrUpdateTimeStamps, - buildTests, + buildLogicAndTests, changeNewFile(`${newFile.content} export class someClass2 { }`), - buildLogicOrUpdateTimeStamps, - buildTests + buildLogicAndTests, ] }); } @@ -223,7 +209,12 @@ export class someClass2 { }`), change: sys => sys.writeFile(logic[0].path, logic[0].content), timeouts: checkSingleTimeoutQueueLengthAndRun, // Builds logic }, - buildTests + { + caption: "Build Tests", + change: noop, + // Build tests + timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout, + } ] }); @@ -488,8 +479,8 @@ let x: string = 10;`), change: sys => sys.writeFile(logic[1].path, `${logic[1].content} function someFn() { }`), timeouts: sys => { - sys.checkTimeoutQueueLengthAndRun(1); // build logic - sys.checkTimeoutQueueLengthAndRun(1); // build tests + sys.checkTimeoutQueueLengthAndRun(1); // build logic and updates tests + sys.checkTimeoutQueueLength(0); }, }, { diff --git a/src/testRunner/unittests/tsbuildWatch/projectsBuilding.ts b/src/testRunner/unittests/tsbuildWatch/projectsBuilding.ts new file mode 100644 index 00000000000..51f54742c79 --- /dev/null +++ b/src/testRunner/unittests/tsbuildWatch/projectsBuilding.ts @@ -0,0 +1,185 @@ +namespace ts.tscWatch { + describe("unittests:: tsbuildWatch:: watchMode:: projectsBuilding", () => { + function pkgs(cb: (index: number) => T, count: number, startIndex?: number): T[] { + const result: T[] = []; + for (let index = startIndex || 0; count > 0; index++, count--) { + result.push(cb(index)); + } + return result; + } + function createPkgReference(index: number) { + return { path: `./pkg${index}` }; + } + function pkgFiles(index: number): File[] { + return [ + { + path: `${projectRoot}/pkg${index}/index.ts`, + content: `export const pkg${index} = ${index};` + }, + { + path: `${projectRoot}/pkg${index}/tsconfig.json`, + content: JSON.stringify({ + compilerOptions: { composite: true }, + references: index === 0 ? + undefined : + [{ path: `../pkg0` }] + }) + } + ]; + } + function solution(maxPkgs: number): File { + return { + path: `${projectRoot}/tsconfig.json`, + content: JSON.stringify({ + references: pkgs(createPkgReference, maxPkgs), + files: [], + }) + }; + } + function checkBuildPkg(startIndex: number, count: number): TscWatchCompileChange { + return { + caption: `build ${pkgs(index => `pkg${index}`, count, startIndex).join(",")}`, + change: noop, + timeouts: checkSingleTimeoutQueueLengthAndRun, + }; + } + verifyTscWatch({ + scenario: "projectsBuilding", + subScenario: `when there are 3 projects in a solution`, + commandLineArgs: ["-b", "-w", "-v"], + sys: () => createWatchedSystem( + [libFile, ...flatMap(pkgs(pkgFiles, 3), identity), solution(3)], + { currentDirectory: projectRoot } + ), + changes: [ + { + caption: "dts doesn't change", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `const someConst2 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun, // Build pkg0 and update timestamps + }, + noopChange, + { + caption: "dts change", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `export const someConst = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(1, 2), + noopChange, + ] + }); + verifyTscWatch({ + scenario: "projectsBuilding", + subScenario: `when there are 5 projects in a solution`, + commandLineArgs: ["-b", "-w", "-v"], + sys: () => createWatchedSystem( + [libFile, ...flatMap(pkgs(pkgFiles, 5), identity), solution(5)], + { currentDirectory: projectRoot } + ), + changes: [ + { + caption: "dts doesn't change", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `const someConst2 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun, // Build pkg0 and update timestamps + }, + noopChange, + { + caption: "dts change", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `export const someConst = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(1, 4), + noopChange, + ] + }); + verifyTscWatch({ + scenario: "projectsBuilding", + subScenario: `when there are 8 projects in a solution`, + commandLineArgs: ["-b", "-w", "-v"], + sys: () => createWatchedSystem( + [libFile, ...flatMap(pkgs(pkgFiles, 8), identity), solution(8)], + { currentDirectory: projectRoot } + ), + changes: [ + { + caption: "dts doesn't change", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `const someConst2 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun, // Build pkg0 and update timestamps + }, + noopChange, + { + caption: "dts change", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `export const someConst = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(1, 5), + checkBuildPkg(6, 2), + noopChange, + { + caption: "dts change2", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `export const someConst3 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(1, 5), + { + caption: "change while building", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `const someConst4 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(6, 2), + noopChange, + ] + }); + verifyTscWatch({ + scenario: "projectsBuilding", + subScenario: `when there are 23 projects in a solution`, + commandLineArgs: ["-b", "-w", "-v"], + sys: () => createWatchedSystem( + [libFile, ...flatMap(pkgs(pkgFiles, 23), identity), solution(23)], + { currentDirectory: projectRoot } + ), + changes: [ + { + caption: "dts doesn't change", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `const someConst2 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun, // Build pkg0 and update timestamps + }, + noopChange, + { + caption: "dts change", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `export const someConst = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(1, 5), + checkBuildPkg(6, 5), + checkBuildPkg(11, 5), + checkBuildPkg(16, 5), + checkBuildPkg(21, 3), + noopChange, + { + caption: "dts change2", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `export const someConst3 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(1, 5), + checkBuildPkg(6, 5), + { + caption: "change while building", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `const someConst4 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(11, 5), + { + caption: "change while building: dts changes", + change: sys => sys.appendFile(`${projectRoot}/pkg0/index.ts`, `export const someConst5 = 10;`), + timeouts: checkSingleTimeoutQueueLengthAndRun // Build pkg0 + }, + checkBuildPkg(1, 5), + checkBuildPkg(6, 5), + checkBuildPkg(11, 5), + checkBuildPkg(16, 5), + checkBuildPkg(21, 3), + noopChange, + ] + }); + }); +} \ No newline at end of file diff --git a/src/testRunner/unittests/tsbuildWatch/publicApi.ts b/src/testRunner/unittests/tsbuildWatch/publicApi.ts index 21ccf2948c5..83964c6a257 100644 --- a/src/testRunner/unittests/tsbuildWatch/publicApi.ts +++ b/src/testRunner/unittests/tsbuildWatch/publicApi.ts @@ -59,8 +59,7 @@ export function f22() { } // trailing` change: sys => sys.prependFile(sharedIndex.path, "export function fooBar() {}"), timeouts: sys => { sys.checkTimeoutQueueLengthAndRun(1); // Shared - sys.checkTimeoutQueueLengthAndRun(1); // webpack - sys.checkTimeoutQueueLengthAndRun(1); // solution + sys.checkTimeoutQueueLengthAndRun(1); // webpack and solution sys.checkTimeoutQueueLength(0); } } diff --git a/src/testRunner/unittests/tsbuildWatch/reexport.ts b/src/testRunner/unittests/tsbuildWatch/reexport.ts index d105bd0fcf0..f7c5861f45c 100644 --- a/src/testRunner/unittests/tsbuildWatch/reexport.ts +++ b/src/testRunner/unittests/tsbuildWatch/reexport.ts @@ -1,11 +1,5 @@ namespace ts.tscWatch { describe("unittests:: tsbuildWatch:: watchMode:: with reexport when referenced project reexports definitions from another file", () => { - function build(sys: WatchedSystem) { - sys.checkTimeoutQueueLengthAndRun(1); // build src/pure - sys.checkTimeoutQueueLengthAndRun(1); // build src/main - sys.checkTimeoutQueueLengthAndRun(1); // build src - sys.checkTimeoutQueueLength(0); - } verifyTscWatch({ scenario: "reexport", subScenario: "Reports errors correctly", @@ -26,12 +20,20 @@ namespace ts.tscWatch { { caption: "Introduce error", change: sys => replaceFileText(sys, `${TestFSWithWatch.tsbuildProjectsLocation}/reexport/src/pure/session.ts`, "// ", ""), - timeouts: build, + timeouts: sys => { + sys.checkTimeoutQueueLengthAndRun(1); // build src/pure + sys.checkTimeoutQueueLengthAndRun(1); // build src/main and src + sys.checkTimeoutQueueLength(0); + }, }, { caption: "Fix error", change: sys => replaceFileText(sys, `${TestFSWithWatch.tsbuildProjectsLocation}/reexport/src/pure/session.ts`, "bar: ", "// bar: "), - timeouts: build + timeouts: sys => { + sys.checkTimeoutQueueLengthAndRun(1); // build src/pure + sys.checkTimeoutQueueLengthAndRun(1); // build src/main and src + sys.checkTimeoutQueueLength(0); + }, } ] }); diff --git a/src/testRunner/unittests/tsbuildWatch/watchEnvironment.ts b/src/testRunner/unittests/tsbuildWatch/watchEnvironment.ts index a01b35f5a98..24902756eef 100644 --- a/src/testRunner/unittests/tsbuildWatch/watchEnvironment.ts +++ b/src/testRunner/unittests/tsbuildWatch/watchEnvironment.ts @@ -40,7 +40,10 @@ namespace ts.tscWatch { { caption: "modify typing file", change: sys => sys.writeFile(typing.path, `${typing.content}export const typing1 = 10;`), - timeouts: sys => pkgs(() => sys.checkTimeoutQueueLengthAndRun(1)) + timeouts: sys => { + sys.checkTimeoutQueueLengthAndRun(1); + checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout(sys); + } }, { // Make change @@ -54,7 +57,10 @@ namespace ts.tscWatch { { caption: "modify typing file", change: sys => sys.writeFile(typing.path, typing.content), - timeouts: sys => pkgs(() => sys.checkTimeoutQueueLengthAndRun(1)) + timeouts: sys => { + sys.checkTimeoutQueueLengthAndRun(1); + checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout(sys); + } }, { // Make change to remove all watches @@ -68,7 +74,7 @@ namespace ts.tscWatch { { caption: "modify typing file", change: sys => sys.writeFile(typing.path, `${typing.content}export const typing1 = 10;`), - timeouts: sys => pkgs(() => sys.checkTimeoutQueueLengthAndRun(1)) + timeouts: sys => sys.checkTimeoutQueueLength(0), }, ], watchOrSolution: solutionBuilder diff --git a/tests/baselines/reference/tsbuildWatch/configFileErrors/reports-syntax-errors-in-config-file.js b/tests/baselines/reference/tsbuildWatch/configFileErrors/reports-syntax-errors-in-config-file.js index 9d3742581c1..108d7b07396 100644 --- a/tests/baselines/reference/tsbuildWatch/configFileErrors/reports-syntax-errors-in-config-file.js +++ b/tests/baselines/reference/tsbuildWatch/configFileErrors/reports-syntax-errors-in-config-file.js @@ -228,9 +228,9 @@ Input:: Output:: >> Screen clear -[12:00:43 AM] File change detected. Starting incremental compilation... +[12:00:44 AM] File change detected. Starting incremental compilation... -[12:00:56 AM] Found 0 errors. Watching for file changes. +[12:00:57 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tsbuildWatch/moduleResolution/resolves-specifier-in-output-declaration-file-from-referenced-project-correctly-with-cts-and-mts-extensions.js b/tests/baselines/reference/tsbuildWatch/moduleResolution/resolves-specifier-in-output-declaration-file-from-referenced-project-correctly-with-cts-and-mts-extensions.js index 69047ec74b8..e1dbd29ed53 100644 --- a/tests/baselines/reference/tsbuildWatch/moduleResolution/resolves-specifier-in-output-declaration-file-from-referenced-project-correctly-with-cts-and-mts-extensions.js +++ b/tests/baselines/reference/tsbuildWatch/moduleResolution/resolves-specifier-in-output-declaration-file-from-referenced-project-correctly-with-cts-and-mts-extensions.js @@ -624,11 +624,11 @@ export type { TheNum } from './const.cjs'; Output:: >> Screen clear -[12:01:38 AM] File change detected. Starting incremental compilation... +[12:01:39 AM] File change detected. Starting incremental compilation... -[12:01:39 AM] Project 'packages/pkg2/tsconfig.json' is out of date because oldest output 'packages/pkg2/build/const.cjs' is older than newest input 'packages/pkg2/index.cts' +[12:01:40 AM] Project 'packages/pkg2/tsconfig.json' is out of date because oldest output 'packages/pkg2/build/const.cjs' is older than newest input 'packages/pkg2/index.cts' -[12:01:40 AM] Building project '/user/username/projects/myproject/packages/pkg2/tsconfig.json'... +[12:01:41 AM] Building project '/user/username/projects/myproject/packages/pkg2/tsconfig.json'... ======== Resolving module './const.cjs' from '/user/username/projects/myproject/packages/pkg2/index.cts'. ======== Module resolution kind is not specified, using 'Node16'. @@ -642,7 +642,7 @@ File '/user/username/projects/myproject/packages/pkg2/const.cts' exist - use it File '/a/lib/package.json' does not exist. File '/a/package.json' does not exist. File '/package.json' does not exist. -[12:01:49 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/packages/pkg2/tsconfig.json'... +[12:01:50 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/packages/pkg2/tsconfig.json'... diff --git a/tests/baselines/reference/tsbuildWatch/noEmitOnError/does-not-emit-any-files-on-error-with-incremental.js b/tests/baselines/reference/tsbuildWatch/noEmitOnError/does-not-emit-any-files-on-error-with-incremental.js index 8c147b7dba4..678c94c0ac5 100644 --- a/tests/baselines/reference/tsbuildWatch/noEmitOnError/does-not-emit-any-files-on-error-with-incremental.js +++ b/tests/baselines/reference/tsbuildWatch/noEmitOnError/does-not-emit-any-files-on-error-with-incremental.js @@ -425,18 +425,18 @@ Input:: Output:: >> Screen clear -[12:01:26 AM] File change detected. Starting incremental compilation... +[12:01:27 AM] File change detected. Starting incremental compilation... -[12:01:27 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' +[12:01:28 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' -[12:01:28 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:29 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:29 AM] Found 1 error. Watching for file changes. +[12:01:30 AM] Found 1 error. Watching for file changes. @@ -482,15 +482,15 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:33 AM] File change detected. Starting incremental compilation... +[12:01:34 AM] File change detected. Starting incremental compilation... -[12:01:34 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' +[12:01:35 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' -[12:01:35 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:36 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... -[12:01:43 AM] Updating unchanged output timestamps of project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:44 AM] Updating unchanged output timestamps of project '/user/username/projects/noEmitOnError/tsconfig.json'... -[12:01:47 AM] Found 0 errors. Watching for file changes. +[12:01:48 AM] Found 0 errors. Watching for file changes. @@ -600,15 +600,15 @@ Input:: Output:: >> Screen clear -[12:01:51 AM] File change detected. Starting incremental compilation... +[12:01:52 AM] File change detected. Starting incremental compilation... -[12:01:52 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' +[12:01:53 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' -[12:01:53 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:54 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... -[12:01:55 AM] Updating unchanged output timestamps of project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:56 AM] Updating unchanged output timestamps of project '/user/username/projects/noEmitOnError/tsconfig.json'... -[12:01:56 AM] Found 0 errors. Watching for file changes. +[12:01:57 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tsbuildWatch/noEmitOnError/does-not-emit-any-files-on-error.js b/tests/baselines/reference/tsbuildWatch/noEmitOnError/does-not-emit-any-files-on-error.js index dd26029f8f5..ecf4043b569 100644 --- a/tests/baselines/reference/tsbuildWatch/noEmitOnError/does-not-emit-any-files-on-error.js +++ b/tests/baselines/reference/tsbuildWatch/noEmitOnError/does-not-emit-any-files-on-error.js @@ -293,18 +293,18 @@ Input:: Output:: >> Screen clear -[12:01:16 AM] File change detected. Starting incremental compilation... +[12:01:17 AM] File change detected. Starting incremental compilation... -[12:01:17 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' +[12:01:18 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' -[12:01:18 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:19 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:19 AM] Found 1 error. Watching for file changes. +[12:01:20 AM] Found 1 error. Watching for file changes. @@ -350,15 +350,15 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:23 AM] File change detected. Starting incremental compilation... +[12:01:24 AM] File change detected. Starting incremental compilation... -[12:01:24 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' +[12:01:25 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' -[12:01:25 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:26 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... -[12:01:30 AM] Updating unchanged output timestamps of project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:31 AM] Updating unchanged output timestamps of project '/user/username/projects/noEmitOnError/tsconfig.json'... -[12:01:31 AM] Found 0 errors. Watching for file changes. +[12:01:32 AM] Found 0 errors. Watching for file changes. @@ -411,15 +411,15 @@ Input:: Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' +[12:01:37 AM] Project 'tsconfig.json' is out of date because oldest output 'dev-build/shared/types/db.js' is older than newest input 'src/main.ts' -[12:01:37 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:38 AM] Building project '/user/username/projects/noEmitOnError/tsconfig.json'... -[12:01:39 AM] Updating unchanged output timestamps of project '/user/username/projects/noEmitOnError/tsconfig.json'... +[12:01:40 AM] Updating unchanged output timestamps of project '/user/username/projects/noEmitOnError/tsconfig.json'... -[12:01:40 AM] Found 0 errors. Watching for file changes. +[12:01:41 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/builds-when-new-file-is-added,-and-its-subsequent-updates.js b/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/builds-when-new-file-is-added,-and-its-subsequent-updates.js index 47c6be2b396..afb16d142e8 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/builds-when-new-file-is-added,-and-its-subsequent-updates.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/builds-when-new-file-is-added,-and-its-subsequent-updates.js @@ -553,11 +553,14 @@ export declare const newFileConst = 30; -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:01:27 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -572,48 +575,6 @@ Semantic diagnostics in builder refreshed for:: No shapes updated in the builder:: -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} -/user/username/projects/sample1/core/newfile.ts: - {"fileName":"/user/username/projects/sample1/core/newfile.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - -//// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time -//// [/user/username/projects/sample1/logic/index.js] file changed its modified time -//// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time -//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time - -Change:: Build Tests - -Input:: - -Output:: -[12:01:27 AM] Found 0 errors. Watching for file changes. - - - Program root files: ["/user/username/projects/sample1/tests/index.ts"] Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} Program structureReused: Not @@ -656,6 +617,10 @@ FsWatchesRecursive:: exitCode:: ExitStatus.undefined +//// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time +//// [/user/username/projects/sample1/logic/index.js] file changed its modified time +//// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time +//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time //// [/user/username/projects/sample1/tests/index.js] file changed its modified time //// [/user/username/projects/sample1/tests/index.d.ts] file changed its modified time //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] file changed its modified time @@ -789,11 +754,14 @@ export declare class someClass2 { -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:01:47 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -808,48 +776,6 @@ Semantic diagnostics in builder refreshed for:: No shapes updated in the builder:: -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} -/user/username/projects/sample1/core/newfile.ts: - {"fileName":"/user/username/projects/sample1/core/newfile.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - -//// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time -//// [/user/username/projects/sample1/logic/index.js] file changed its modified time -//// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time -//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time - -Change:: Build Tests - -Input:: - -Output:: -[12:01:47 AM] Found 0 errors. Watching for file changes. - - - Program root files: ["/user/username/projects/sample1/tests/index.ts"] Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} Program structureReused: Not @@ -892,6 +818,10 @@ FsWatchesRecursive:: exitCode:: ExitStatus.undefined +//// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time +//// [/user/username/projects/sample1/logic/index.js] file changed its modified time +//// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time +//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time //// [/user/username/projects/sample1/tests/index.js] file changed its modified time //// [/user/username/projects/sample1/tests/index.d.ts] file changed its modified time //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] file changed its modified time diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/change-builds-changes-and-reports-found-errors-message.js b/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/change-builds-changes-and-reports-found-errors-message.js index c75488ba556..79cf20fb915 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/change-builds-changes-and-reports-found-errors-message.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/change-builds-changes-and-reports-found-errors-message.js @@ -560,11 +560,14 @@ export declare class someClass { } -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:01:55 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -583,6 +586,24 @@ Shape signatures in builder refreshed for:: /user/username/projects/sample1/core/index.d.ts (used version) /user/username/projects/sample1/logic/index.ts (computed .d.ts) +Program root files: ["/user/username/projects/sample1/tests/index.ts"] +Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/core/anotherModule.d.ts +/user/username/projects/sample1/logic/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts (used version) +/user/username/projects/sample1/tests/index.ts (computed .d.ts) + WatchedFiles:: /user/username/projects/sample1/core/tsconfig.json: {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} @@ -680,60 +701,6 @@ exitCode:: ExitStatus.undefined "size": 1431 } - -Change:: Build Tests - -Input:: - -Output:: -[12:01:55 AM] Found 0 errors. Watching for file changes. - - - -Program root files: ["/user/username/projects/sample1/tests/index.ts"] -Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} -Program structureReused: Not -Program files:: -/a/lib/lib.d.ts -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/core/anotherModule.d.ts -/user/username/projects/sample1/logic/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Semantic diagnostics in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Shape signatures in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts (used version) -/user/username/projects/sample1/tests/index.ts (computed .d.ts) - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/tests/index.js] file written with same contents //// [/user/username/projects/sample1/tests/index.d.ts] file written with same contents //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] @@ -936,11 +903,14 @@ export declare function multiply(a: number, b: number): number; } -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:02:40 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -959,6 +929,24 @@ Shape signatures in builder refreshed for:: /user/username/projects/sample1/core/index.d.ts (used version) /user/username/projects/sample1/logic/index.ts (computed .d.ts) +Program root files: ["/user/username/projects/sample1/tests/index.ts"] +Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/core/anotherModule.d.ts +/user/username/projects/sample1/logic/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts (used version) +/user/username/projects/sample1/tests/index.ts (computed .d.ts) + WatchedFiles:: /user/username/projects/sample1/core/tsconfig.json: {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} @@ -1056,60 +1044,6 @@ exitCode:: ExitStatus.undefined "size": 1394 } - -Change:: Build Tests - -Input:: - -Output:: -[12:02:40 AM] Found 0 errors. Watching for file changes. - - - -Program root files: ["/user/username/projects/sample1/tests/index.ts"] -Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} -Program structureReused: Not -Program files:: -/a/lib/lib.d.ts -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/core/anotherModule.d.ts -/user/username/projects/sample1/logic/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Semantic diagnostics in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Shape signatures in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts (used version) -/user/username/projects/sample1/tests/index.ts (computed .d.ts) - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/tests/index.js] file written with same contents //// [/user/username/projects/sample1/tests/index.d.ts] file written with same contents //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] @@ -1330,11 +1264,14 @@ export declare class someClass2 { } -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:03:29 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -1353,6 +1290,24 @@ Shape signatures in builder refreshed for:: /user/username/projects/sample1/core/index.d.ts (used version) /user/username/projects/sample1/logic/index.ts (computed .d.ts) +Program root files: ["/user/username/projects/sample1/tests/index.ts"] +Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/core/anotherModule.d.ts +/user/username/projects/sample1/logic/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts (used version) +/user/username/projects/sample1/tests/index.ts (computed .d.ts) + WatchedFiles:: /user/username/projects/sample1/core/tsconfig.json: {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} @@ -1450,60 +1405,6 @@ exitCode:: ExitStatus.undefined "size": 1469 } - -Change:: Build Tests - -Input:: - -Output:: -[12:03:28 AM] Found 0 errors. Watching for file changes. - - - -Program root files: ["/user/username/projects/sample1/tests/index.ts"] -Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} -Program structureReused: Not -Program files:: -/a/lib/lib.d.ts -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/core/anotherModule.d.ts -/user/username/projects/sample1/logic/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Semantic diagnostics in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Shape signatures in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts (used version) -/user/username/projects/sample1/tests/index.ts (computed .d.ts) - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/tests/index.js] file written with same contents //// [/user/username/projects/sample1/tests/index.d.ts] file written with same contents //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/non-local-change-does-not-start-build-of-referencing-projects.js b/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/non-local-change-does-not-start-build-of-referencing-projects.js index 3d6e66045df..1bdf005e30d 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/non-local-change-does-not-start-build-of-referencing-projects.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/with-circular-project-reference/non-local-change-does-not-start-build-of-referencing-projects.js @@ -448,6 +448,8 @@ Output:: >> Screen clear [12:01:14 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] Found 0 errors. Watching for file changes. + Program root files: ["/user/username/projects/sample1/core/anotherModule.ts","/user/username/projects/sample1/core/index.ts"] @@ -547,79 +549,10 @@ function foo() { } "size": 1225 } - -Change:: Build logic or update time stamps - -Input:: - -Output:: - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time //// [/user/username/projects/sample1/logic/index.js] file changed its modified time //// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time //// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time - -Change:: Build Tests - -Input:: - -Output:: -[12:01:30 AM] Found 0 errors. Watching for file changes. - - - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/tests/index.js] file changed its modified time //// [/user/username/projects/sample1/tests/index.d.ts] file changed its modified time //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] file changed its modified time diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/builds-when-new-file-is-added,-and-its-subsequent-updates.js b/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/builds-when-new-file-is-added,-and-its-subsequent-updates.js index 6aafabd4097..61e484c683e 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/builds-when-new-file-is-added,-and-its-subsequent-updates.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/builds-when-new-file-is-added,-and-its-subsequent-updates.js @@ -594,11 +594,14 @@ export declare const newFileConst = 30; //# sourceMappingURL=newfile.d.ts.map -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:01:39 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -613,48 +616,6 @@ Semantic diagnostics in builder refreshed for:: No shapes updated in the builder:: -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} -/user/username/projects/sample1/core/newfile.ts: - {"fileName":"/user/username/projects/sample1/core/newfile.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - -//// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time -//// [/user/username/projects/sample1/logic/index.js] file changed its modified time -//// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time -//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time - -Change:: Build Tests - -Input:: - -Output:: -[12:01:39 AM] Found 0 errors. Watching for file changes. - - - Program root files: ["/user/username/projects/sample1/tests/index.ts"] Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} Program structureReused: Not @@ -697,6 +658,10 @@ FsWatchesRecursive:: exitCode:: ExitStatus.undefined +//// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time +//// [/user/username/projects/sample1/logic/index.js] file changed its modified time +//// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time +//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time //// [/user/username/projects/sample1/tests/index.js] file changed its modified time //// [/user/username/projects/sample1/tests/index.d.ts] file changed its modified time //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] file changed its modified time @@ -837,11 +802,14 @@ export declare class someClass2 { //# sourceMappingURL=newfile.d.ts.map -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:02:02 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -856,48 +824,6 @@ Semantic diagnostics in builder refreshed for:: No shapes updated in the builder:: -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} -/user/username/projects/sample1/core/newfile.ts: - {"fileName":"/user/username/projects/sample1/core/newfile.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - -//// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time -//// [/user/username/projects/sample1/logic/index.js] file changed its modified time -//// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time -//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time - -Change:: Build Tests - -Input:: - -Output:: -[12:02:02 AM] Found 0 errors. Watching for file changes. - - - Program root files: ["/user/username/projects/sample1/tests/index.ts"] Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} Program structureReused: Not @@ -940,6 +866,10 @@ FsWatchesRecursive:: exitCode:: ExitStatus.undefined +//// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time +//// [/user/username/projects/sample1/logic/index.js] file changed its modified time +//// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time +//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time //// [/user/username/projects/sample1/tests/index.js] file changed its modified time //// [/user/username/projects/sample1/tests/index.d.ts] file changed its modified time //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] file changed its modified time diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/change-builds-changes-and-reports-found-errors-message.js b/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/change-builds-changes-and-reports-found-errors-message.js index d8fc2592bbe..30f33c73fc7 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/change-builds-changes-and-reports-found-errors-message.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/change-builds-changes-and-reports-found-errors-message.js @@ -600,11 +600,14 @@ export declare class someClass { } -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:02:08 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -623,6 +626,24 @@ Shape signatures in builder refreshed for:: /user/username/projects/sample1/core/index.d.ts (used version) /user/username/projects/sample1/logic/index.ts (computed .d.ts) +Program root files: ["/user/username/projects/sample1/tests/index.ts"] +Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/core/anotherModule.d.ts +/user/username/projects/sample1/logic/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts (used version) +/user/username/projects/sample1/tests/index.ts (computed .d.ts) + WatchedFiles:: /user/username/projects/sample1/core/tsconfig.json: {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} @@ -720,60 +741,6 @@ exitCode:: ExitStatus.undefined "size": 1509 } - -Change:: Build Tests - -Input:: - -Output:: -[12:02:08 AM] Found 0 errors. Watching for file changes. - - - -Program root files: ["/user/username/projects/sample1/tests/index.ts"] -Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} -Program structureReused: Not -Program files:: -/a/lib/lib.d.ts -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/core/anotherModule.d.ts -/user/username/projects/sample1/logic/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Semantic diagnostics in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Shape signatures in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts (used version) -/user/username/projects/sample1/tests/index.ts (computed .d.ts) - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/tests/index.js] file written with same contents //// [/user/username/projects/sample1/tests/index.d.ts] file written with same contents //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] @@ -982,11 +949,14 @@ export declare function multiply(a: number, b: number): number; } -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:02:56 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -1005,6 +975,24 @@ Shape signatures in builder refreshed for:: /user/username/projects/sample1/core/index.d.ts (used version) /user/username/projects/sample1/logic/index.ts (computed .d.ts) +Program root files: ["/user/username/projects/sample1/tests/index.ts"] +Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/core/anotherModule.d.ts +/user/username/projects/sample1/logic/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts (used version) +/user/username/projects/sample1/tests/index.ts (computed .d.ts) + WatchedFiles:: /user/username/projects/sample1/core/tsconfig.json: {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} @@ -1102,60 +1090,6 @@ exitCode:: ExitStatus.undefined "size": 1472 } - -Change:: Build Tests - -Input:: - -Output:: -[12:02:56 AM] Found 0 errors. Watching for file changes. - - - -Program root files: ["/user/username/projects/sample1/tests/index.ts"] -Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} -Program structureReused: Not -Program files:: -/a/lib/lib.d.ts -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/core/anotherModule.d.ts -/user/username/projects/sample1/logic/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Semantic diagnostics in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Shape signatures in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts (used version) -/user/username/projects/sample1/tests/index.ts (computed .d.ts) - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/tests/index.js] file written with same contents //// [/user/username/projects/sample1/tests/index.d.ts] file written with same contents //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] @@ -1382,11 +1316,14 @@ export declare class someClass2 { } -Change:: Build logic or update time stamps +Change:: Build logic and tests Input:: Output:: +[12:03:48 AM] Found 0 errors. Watching for file changes. + + Program root files: ["/user/username/projects/sample1/logic/index.ts"] Program options: {"composite":true,"declaration":true,"sourceMap":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/logic/tsconfig.json"} @@ -1405,6 +1342,24 @@ Shape signatures in builder refreshed for:: /user/username/projects/sample1/core/index.d.ts (used version) /user/username/projects/sample1/logic/index.ts (computed .d.ts) +Program root files: ["/user/username/projects/sample1/tests/index.ts"] +Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/core/anotherModule.d.ts +/user/username/projects/sample1/logic/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts +/user/username/projects/sample1/tests/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/sample1/core/index.d.ts (used version) +/user/username/projects/sample1/tests/index.ts (computed .d.ts) + WatchedFiles:: /user/username/projects/sample1/core/tsconfig.json: {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} @@ -1502,60 +1457,6 @@ exitCode:: ExitStatus.undefined "size": 1547 } - -Change:: Build Tests - -Input:: - -Output:: -[12:03:47 AM] Found 0 errors. Watching for file changes. - - - -Program root files: ["/user/username/projects/sample1/tests/index.ts"] -Program options: {"composite":true,"declaration":true,"forceConsistentCasingInFileNames":true,"skipDefaultLibCheck":true,"watch":true,"configFilePath":"/user/username/projects/sample1/tests/tsconfig.json"} -Program structureReused: Not -Program files:: -/a/lib/lib.d.ts -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/core/anotherModule.d.ts -/user/username/projects/sample1/logic/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Semantic diagnostics in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts -/user/username/projects/sample1/tests/index.ts - -Shape signatures in builder refreshed for:: -/user/username/projects/sample1/core/index.d.ts (used version) -/user/username/projects/sample1/tests/index.ts (computed .d.ts) - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/tests/index.js] file written with same contents //// [/user/username/projects/sample1/tests/index.d.ts] file written with same contents //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/non-local-change-does-not-start-build-of-referencing-projects.js b/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/non-local-change-does-not-start-build-of-referencing-projects.js index bfe1294d290..1d741ef1bbc 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/non-local-change-does-not-start-build-of-referencing-projects.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/with-simple-project-reference-graph/non-local-change-does-not-start-build-of-referencing-projects.js @@ -482,6 +482,8 @@ Output:: >> Screen clear [12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:43 AM] Found 0 errors. Watching for file changes. + Program root files: ["/user/username/projects/sample1/core/anotherModule.ts","/user/username/projects/sample1/core/index.ts"] @@ -585,79 +587,10 @@ function foo() { } "size": 1274 } - -Change:: Build logic or update time stamps - -Input:: - -Output:: - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/logic/index.js.map] file changed its modified time //// [/user/username/projects/sample1/logic/index.js] file changed its modified time //// [/user/username/projects/sample1/logic/index.d.ts] file changed its modified time //// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] file changed its modified time - -Change:: Build Tests - -Input:: - -Output:: -[12:01:43 AM] Found 0 errors. Watching for file changes. - - - -WatchedFiles:: -/user/username/projects/sample1/core/tsconfig.json: - {"fileName":"/user/username/projects/sample1/core/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/core/anothermodule.ts: - {"fileName":"/user/username/projects/sample1/core/anotherModule.ts","pollingInterval":250} -/user/username/projects/sample1/core/index.ts: - {"fileName":"/user/username/projects/sample1/core/index.ts","pollingInterval":250} -/user/username/projects/sample1/logic/tsconfig.json: - {"fileName":"/user/username/projects/sample1/logic/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/logic/index.ts: - {"fileName":"/user/username/projects/sample1/logic/index.ts","pollingInterval":250} -/user/username/projects/sample1/tests/tsconfig.json: - {"fileName":"/user/username/projects/sample1/tests/tsconfig.json","pollingInterval":250} -/user/username/projects/sample1/tests/index.ts: - {"fileName":"/user/username/projects/sample1/tests/index.ts","pollingInterval":250} - -FsWatches:: - -FsWatchesRecursive:: -/user/username/projects/sample1/core: - {"directoryName":"/user/username/projects/sample1/core","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} -/user/username/projects/sample1/logic: - {"directoryName":"/user/username/projects/sample1/logic","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} - -exitCode:: ExitStatus.undefined - //// [/user/username/projects/sample1/tests/index.js] file changed its modified time //// [/user/username/projects/sample1/tests/index.d.ts] file changed its modified time //// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo] file changed its modified time diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/works-with-extended-source-files.js b/tests/baselines/reference/tsbuildWatch/programUpdates/works-with-extended-source-files.js index abb8acaffde..d09ac630961 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/works-with-extended-source-files.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/works-with-extended-source-files.js @@ -478,13 +478,13 @@ Input:: Output:: >> Screen clear -[12:01:33 AM] File change detected. Starting incremental compilation... +[12:01:34 AM] File change detected. Starting incremental compilation... -[12:01:34 AM] Project 'project1.tsconfig.json' is out of date because oldest output 'commonFile1.d.ts' is older than newest input 'alpha.tsconfig.json' +[12:01:35 AM] Project 'project1.tsconfig.json' is out of date because oldest output 'commonFile1.d.ts' is older than newest input 'alpha.tsconfig.json' -[12:01:35 AM] Building project '/a/b/project1.tsconfig.json'... +[12:01:36 AM] Building project '/a/b/project1.tsconfig.json'... -[12:01:37 AM] Updating unchanged output timestamps of project '/a/b/project1.tsconfig.json'... +[12:01:38 AM] Updating unchanged output timestamps of project '/a/b/project1.tsconfig.json'... @@ -538,13 +538,13 @@ Change:: Build project 2 Input:: Output:: -[12:01:38 AM] Project 'project2.tsconfig.json' is out of date because oldest output 'other.js' is older than newest input 'alpha.tsconfig.json' +[12:01:39 AM] Project 'project2.tsconfig.json' is out of date because oldest output 'other.js' is older than newest input 'alpha.tsconfig.json' -[12:01:39 AM] Building project '/a/b/project2.tsconfig.json'... +[12:01:40 AM] Building project '/a/b/project2.tsconfig.json'... -[12:01:41 AM] Updating unchanged output timestamps of project '/a/b/project2.tsconfig.json'... +[12:01:42 AM] Updating unchanged output timestamps of project '/a/b/project2.tsconfig.json'... -[12:01:42 AM] Found 0 errors. Watching for file changes. +[12:01:43 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-23-projects-in-a-solution.js b/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-23-projects-in-a-solution.js new file mode 100644 index 00000000000..71921f40ec2 --- /dev/null +++ b/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-23-projects-in-a-solution.js @@ -0,0 +1,6877 @@ +Input:: +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0; + +//// [/user/username/projects/myproject/pkg0/tsconfig.json] +{"compilerOptions":{"composite":true}} + +//// [/user/username/projects/myproject/pkg1/index.ts] +export const pkg1 = 1; + +//// [/user/username/projects/myproject/pkg1/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg2/index.ts] +export const pkg2 = 2; + +//// [/user/username/projects/myproject/pkg2/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg3/index.ts] +export const pkg3 = 3; + +//// [/user/username/projects/myproject/pkg3/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg4/index.ts] +export const pkg4 = 4; + +//// [/user/username/projects/myproject/pkg4/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg5/index.ts] +export const pkg5 = 5; + +//// [/user/username/projects/myproject/pkg5/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg6/index.ts] +export const pkg6 = 6; + +//// [/user/username/projects/myproject/pkg6/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg7/index.ts] +export const pkg7 = 7; + +//// [/user/username/projects/myproject/pkg7/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg8/index.ts] +export const pkg8 = 8; + +//// [/user/username/projects/myproject/pkg8/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg9/index.ts] +export const pkg9 = 9; + +//// [/user/username/projects/myproject/pkg9/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg10/index.ts] +export const pkg10 = 10; + +//// [/user/username/projects/myproject/pkg10/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg11/index.ts] +export const pkg11 = 11; + +//// [/user/username/projects/myproject/pkg11/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg12/index.ts] +export const pkg12 = 12; + +//// [/user/username/projects/myproject/pkg12/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg13/index.ts] +export const pkg13 = 13; + +//// [/user/username/projects/myproject/pkg13/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg14/index.ts] +export const pkg14 = 14; + +//// [/user/username/projects/myproject/pkg14/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg15/index.ts] +export const pkg15 = 15; + +//// [/user/username/projects/myproject/pkg15/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg16/index.ts] +export const pkg16 = 16; + +//// [/user/username/projects/myproject/pkg16/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg17/index.ts] +export const pkg17 = 17; + +//// [/user/username/projects/myproject/pkg17/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg18/index.ts] +export const pkg18 = 18; + +//// [/user/username/projects/myproject/pkg18/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg19/index.ts] +export const pkg19 = 19; + +//// [/user/username/projects/myproject/pkg19/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg20/index.ts] +export const pkg20 = 20; + +//// [/user/username/projects/myproject/pkg20/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg21/index.ts] +export const pkg21 = 21; + +//// [/user/username/projects/myproject/pkg21/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg22/index.ts] +export const pkg22 = 22; + +//// [/user/username/projects/myproject/pkg22/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/tsconfig.json] +{"references":[{"path":"./pkg0"},{"path":"./pkg1"},{"path":"./pkg2"},{"path":"./pkg3"},{"path":"./pkg4"},{"path":"./pkg5"},{"path":"./pkg6"},{"path":"./pkg7"},{"path":"./pkg8"},{"path":"./pkg9"},{"path":"./pkg10"},{"path":"./pkg11"},{"path":"./pkg12"},{"path":"./pkg13"},{"path":"./pkg14"},{"path":"./pkg15"},{"path":"./pkg16"},{"path":"./pkg17"},{"path":"./pkg18"},{"path":"./pkg19"},{"path":"./pkg20"},{"path":"./pkg21"},{"path":"./pkg22"}],"files":[]} + + +/a/lib/tsc.js -b -w -v +Output:: +>> Screen clear +[12:02:37 AM] Starting compilation in watch mode... + +[12:02:38 AM] Projects in this build: + * pkg0/tsconfig.json + * pkg1/tsconfig.json + * pkg2/tsconfig.json + * pkg3/tsconfig.json + * pkg4/tsconfig.json + * pkg5/tsconfig.json + * pkg6/tsconfig.json + * pkg7/tsconfig.json + * pkg8/tsconfig.json + * pkg9/tsconfig.json + * pkg10/tsconfig.json + * pkg11/tsconfig.json + * pkg12/tsconfig.json + * pkg13/tsconfig.json + * pkg14/tsconfig.json + * pkg15/tsconfig.json + * pkg16/tsconfig.json + * pkg17/tsconfig.json + * pkg18/tsconfig.json + * pkg19/tsconfig.json + * pkg20/tsconfig.json + * pkg21/tsconfig.json + * pkg22/tsconfig.json + * tsconfig.json + +[12:02:39 AM] Project 'pkg0/tsconfig.json' is out of date because output file 'pkg0/index.js' does not exist + +[12:02:40 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:02:49 AM] Project 'pkg1/tsconfig.json' is out of date because output file 'pkg1/index.js' does not exist + +[12:02:50 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:02:59 AM] Project 'pkg2/tsconfig.json' is out of date because output file 'pkg2/index.js' does not exist + +[12:03:00 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:03:09 AM] Project 'pkg3/tsconfig.json' is out of date because output file 'pkg3/index.js' does not exist + +[12:03:10 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:03:19 AM] Project 'pkg4/tsconfig.json' is out of date because output file 'pkg4/index.js' does not exist + +[12:03:20 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:03:29 AM] Project 'pkg5/tsconfig.json' is out of date because output file 'pkg5/index.js' does not exist + +[12:03:30 AM] Building project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:03:39 AM] Project 'pkg6/tsconfig.json' is out of date because output file 'pkg6/index.js' does not exist + +[12:03:40 AM] Building project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:03:49 AM] Project 'pkg7/tsconfig.json' is out of date because output file 'pkg7/index.js' does not exist + +[12:03:50 AM] Building project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:03:59 AM] Project 'pkg8/tsconfig.json' is out of date because output file 'pkg8/index.js' does not exist + +[12:04:00 AM] Building project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:04:09 AM] Project 'pkg9/tsconfig.json' is out of date because output file 'pkg9/index.js' does not exist + +[12:04:10 AM] Building project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:04:19 AM] Project 'pkg10/tsconfig.json' is out of date because output file 'pkg10/index.js' does not exist + +[12:04:20 AM] Building project '/user/username/projects/myproject/pkg10/tsconfig.json'... + +[12:04:29 AM] Project 'pkg11/tsconfig.json' is out of date because output file 'pkg11/index.js' does not exist + +[12:04:30 AM] Building project '/user/username/projects/myproject/pkg11/tsconfig.json'... + +[12:04:39 AM] Project 'pkg12/tsconfig.json' is out of date because output file 'pkg12/index.js' does not exist + +[12:04:40 AM] Building project '/user/username/projects/myproject/pkg12/tsconfig.json'... + +[12:04:49 AM] Project 'pkg13/tsconfig.json' is out of date because output file 'pkg13/index.js' does not exist + +[12:04:50 AM] Building project '/user/username/projects/myproject/pkg13/tsconfig.json'... + +[12:04:59 AM] Project 'pkg14/tsconfig.json' is out of date because output file 'pkg14/index.js' does not exist + +[12:05:00 AM] Building project '/user/username/projects/myproject/pkg14/tsconfig.json'... + +[12:05:09 AM] Project 'pkg15/tsconfig.json' is out of date because output file 'pkg15/index.js' does not exist + +[12:05:10 AM] Building project '/user/username/projects/myproject/pkg15/tsconfig.json'... + +[12:05:19 AM] Project 'pkg16/tsconfig.json' is out of date because output file 'pkg16/index.js' does not exist + +[12:05:20 AM] Building project '/user/username/projects/myproject/pkg16/tsconfig.json'... + +[12:05:29 AM] Project 'pkg17/tsconfig.json' is out of date because output file 'pkg17/index.js' does not exist + +[12:05:30 AM] Building project '/user/username/projects/myproject/pkg17/tsconfig.json'... + +[12:05:39 AM] Project 'pkg18/tsconfig.json' is out of date because output file 'pkg18/index.js' does not exist + +[12:05:40 AM] Building project '/user/username/projects/myproject/pkg18/tsconfig.json'... + +[12:05:49 AM] Project 'pkg19/tsconfig.json' is out of date because output file 'pkg19/index.js' does not exist + +[12:05:50 AM] Building project '/user/username/projects/myproject/pkg19/tsconfig.json'... + +[12:05:59 AM] Project 'pkg20/tsconfig.json' is out of date because output file 'pkg20/index.js' does not exist + +[12:06:00 AM] Building project '/user/username/projects/myproject/pkg20/tsconfig.json'... + +[12:06:09 AM] Project 'pkg21/tsconfig.json' is out of date because output file 'pkg21/index.js' does not exist + +[12:06:10 AM] Building project '/user/username/projects/myproject/pkg21/tsconfig.json'... + +[12:06:19 AM] Project 'pkg22/tsconfig.json' is out of date because output file 'pkg22/index.js' does not exist + +[12:06:20 AM] Building project '/user/username/projects/myproject/pkg22/tsconfig.json'... + +[12:06:29 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg1/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg2/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg3/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg4/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg5/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg5/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg5/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg6/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg6/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg6/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg7/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg7/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg7/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg8/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg8/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg8/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg8/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg8/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg9/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg9/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg9/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg9/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg9/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg10/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg10/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg10/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg10/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg10/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg11/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg11/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg11/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg11/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg11/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg12/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg12/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg12/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg12/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg12/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg13/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg13/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg13/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg13/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg13/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg14/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg14/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg14/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg14/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg14/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg15/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg15/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg15/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg15/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg15/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg16/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg16/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg16/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg16/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg16/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg17/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg17/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg17/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg17/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg17/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg18/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg18/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg18/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg18/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg18/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg19/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg19/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg19/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg19/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg19/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg20/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg20/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg20/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg20/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg20/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg21/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg21/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg21/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg21/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg21/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg22/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg22/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg22/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg22/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg22/index.ts (computed .d.ts during emit) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg0 = void 0; +exports.pkg0 = 0; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10197922616-export const pkg0 = 0;","signature":"-4821832606-export declare const pkg0 = 0;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10197922616-export const pkg0 = 0;", + "signature": "-4821832606-export declare const pkg0 = 0;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg1/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg1 = void 0; +exports.pkg1 = 1; + + +//// [/user/username/projects/myproject/pkg1/index.d.ts] +export declare const pkg1 = 1; + + +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10158787190-export const pkg1 = 1;","signature":"-3530363548-export declare const pkg1 = 1;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10158787190-export const pkg1 = 1;", + "signature": "-3530363548-export declare const pkg1 = 1;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg2/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg2 = void 0; +exports.pkg2 = 2; + + +//// [/user/username/projects/myproject/pkg2/index.d.ts] +export declare const pkg2 = 2; + + +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14414619060-export const pkg2 = 2;","signature":"-6533861786-export declare const pkg2 = 2;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14414619060-export const pkg2 = 2;", + "signature": "-6533861786-export declare const pkg2 = 2;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg3/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg3 = void 0; +exports.pkg3 = 3; + + +//// [/user/username/projects/myproject/pkg3/index.d.ts] +export declare const pkg3 = 3; + + +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14375483634-export const pkg3 = 3;","signature":"-5242392728-export declare const pkg3 = 3;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14375483634-export const pkg3 = 3;", + "signature": "-5242392728-export declare const pkg3 = 3;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg4/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg4 = void 0; +exports.pkg4 = 4; + + +//// [/user/username/projects/myproject/pkg4/index.d.ts] +export declare const pkg4 = 4; + + +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14336348208-export const pkg4 = 4;","signature":"-3950923670-export declare const pkg4 = 4;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14336348208-export const pkg4 = 4;", + "signature": "-3950923670-export declare const pkg4 = 4;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg5/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg5 = void 0; +exports.pkg5 = 5; + + +//// [/user/username/projects/myproject/pkg5/index.d.ts] +export declare const pkg5 = 5; + + +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14297212782-export const pkg5 = 5;","signature":"-2659454612-export declare const pkg5 = 5;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14297212782-export const pkg5 = 5;", + "signature": "-2659454612-export declare const pkg5 = 5;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg6/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg6 = void 0; +exports.pkg6 = 6; + + +//// [/user/username/projects/myproject/pkg6/index.d.ts] +export declare const pkg6 = 6; + + +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14258077356-export const pkg6 = 6;","signature":"-5662952850-export declare const pkg6 = 6;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14258077356-export const pkg6 = 6;", + "signature": "-5662952850-export declare const pkg6 = 6;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg7/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg7 = void 0; +exports.pkg7 = 7; + + +//// [/user/username/projects/myproject/pkg7/index.d.ts] +export declare const pkg7 = 7; + + +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14218941930-export const pkg7 = 7;","signature":"-4371483792-export declare const pkg7 = 7;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14218941930-export const pkg7 = 7;", + "signature": "-4371483792-export declare const pkg7 = 7;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg8/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg8 = void 0; +exports.pkg8 = 8; + + +//// [/user/username/projects/myproject/pkg8/index.d.ts] +export declare const pkg8 = 8; + + +//// [/user/username/projects/myproject/pkg8/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14179806504-export const pkg8 = 8;","signature":"-3080014734-export declare const pkg8 = 8;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg8/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14179806504-export const pkg8 = 8;", + "signature": "-3080014734-export declare const pkg8 = 8;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg9/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg9 = void 0; +exports.pkg9 = 9; + + +//// [/user/username/projects/myproject/pkg9/index.d.ts] +export declare const pkg9 = 9; + + +//// [/user/username/projects/myproject/pkg9/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14140671078-export const pkg9 = 9;","signature":"-6083512972-export declare const pkg9 = 9;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg9/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14140671078-export const pkg9 = 9;", + "signature": "-6083512972-export declare const pkg9 = 9;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg10/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg10 = void 0; +exports.pkg10 = 10; + + +//// [/user/username/projects/myproject/pkg10/index.d.ts] +export declare const pkg10 = 10; + + +//// [/user/username/projects/myproject/pkg10/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-9585933846-export const pkg10 = 10;","signature":"-3553269308-export declare const pkg10 = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg10/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-9585933846-export const pkg10 = 10;", + "signature": "-3553269308-export declare const pkg10 = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 730 +} + +//// [/user/username/projects/myproject/pkg11/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg11 = void 0; +exports.pkg11 = 11; + + +//// [/user/username/projects/myproject/pkg11/index.d.ts] +export declare const pkg11 = 11; + + +//// [/user/username/projects/myproject/pkg11/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-8294465844-export const pkg11 = 11;","signature":"410469094-export declare const pkg11 = 11;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg11/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-8294465844-export const pkg11 = 11;", + "signature": "410469094-export declare const pkg11 = 11;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 728 +} + +//// [/user/username/projects/myproject/pkg12/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg12 = void 0; +exports.pkg12 = 12; + + +//// [/user/username/projects/myproject/pkg12/index.d.ts] +export declare const pkg12 = 12; + + +//// [/user/username/projects/myproject/pkg12/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-7002997842-export const pkg12 = 12;","signature":"-4215727096-export declare const pkg12 = 12;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg12/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-7002997842-export const pkg12 = 12;", + "signature": "-4215727096-export declare const pkg12 = 12;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 730 +} + +//// [/user/username/projects/myproject/pkg13/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg13 = void 0; +exports.pkg13 = 13; + + +//// [/user/username/projects/myproject/pkg13/index.d.ts] +export declare const pkg13 = 13; + + +//// [/user/username/projects/myproject/pkg13/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10006497136-export const pkg13 = 13;","signature":"-4546955990-export declare const pkg13 = 13;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg13/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10006497136-export const pkg13 = 13;", + "signature": "-4546955990-export declare const pkg13 = 13;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 731 +} + +//// [/user/username/projects/myproject/pkg14/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg14 = void 0; +exports.pkg14 = 14; + + +//// [/user/username/projects/myproject/pkg14/index.d.ts] +export declare const pkg14 = 14; + + +//// [/user/username/projects/myproject/pkg14/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-8715029134-export const pkg14 = 14;","signature":"-583217588-export declare const pkg14 = 14;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg14/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-8715029134-export const pkg14 = 14;", + "signature": "-583217588-export declare const pkg14 = 14;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 729 +} + +//// [/user/username/projects/myproject/pkg15/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg15 = void 0; +exports.pkg15 = 15; + + +//// [/user/username/projects/myproject/pkg15/index.d.ts] +export declare const pkg15 = 15; + + +//// [/user/username/projects/myproject/pkg15/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-7423561132-export const pkg15 = 15;","signature":"-5209413778-export declare const pkg15 = 15;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg15/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-7423561132-export const pkg15 = 15;", + "signature": "-5209413778-export declare const pkg15 = 15;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 730 +} + +//// [/user/username/projects/myproject/pkg16/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg16 = void 0; +exports.pkg16 = 16; + + +//// [/user/username/projects/myproject/pkg16/index.d.ts] +export declare const pkg16 = 16; + + +//// [/user/username/projects/myproject/pkg16/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-6132093130-export const pkg16 = 16;","signature":"-1245675376-export declare const pkg16 = 16;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg16/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-6132093130-export const pkg16 = 16;", + "signature": "-1245675376-export declare const pkg16 = 16;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 730 +} + +//// [/user/username/projects/myproject/pkg17/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg17 = void 0; +exports.pkg17 = 17; + + +//// [/user/username/projects/myproject/pkg17/index.d.ts] +export declare const pkg17 = 17; + + +//// [/user/username/projects/myproject/pkg17/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-17725527016-export const pkg17 = 17;","signature":"-1576904270-export declare const pkg17 = 17;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg17/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-17725527016-export const pkg17 = 17;", + "signature": "-1576904270-export declare const pkg17 = 17;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 731 +} + +//// [/user/username/projects/myproject/pkg18/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg18 = void 0; +exports.pkg18 = 18; + + +//// [/user/username/projects/myproject/pkg18/index.d.ts] +export declare const pkg18 = 18; + + +//// [/user/username/projects/myproject/pkg18/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-16434059014-export const pkg18 = 18;","signature":"-1908133164-export declare const pkg18 = 18;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg18/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-16434059014-export const pkg18 = 18;", + "signature": "-1908133164-export declare const pkg18 = 18;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 731 +} + +//// [/user/username/projects/myproject/pkg19/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg19 = void 0; +exports.pkg19 = 19; + + +//// [/user/username/projects/myproject/pkg19/index.d.ts] +export declare const pkg19 = 19; + + +//// [/user/username/projects/myproject/pkg19/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-15142591012-export const pkg19 = 19;","signature":"-2239362058-export declare const pkg19 = 19;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg19/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-15142591012-export const pkg19 = 19;", + "signature": "-2239362058-export declare const pkg19 = 19;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 731 +} + +//// [/user/username/projects/myproject/pkg20/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg20 = void 0; +exports.pkg20 = 20; + + +//// [/user/username/projects/myproject/pkg20/index.d.ts] +export declare const pkg20 = 20; + + +//// [/user/username/projects/myproject/pkg20/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14212130036-export const pkg20 = 20;","signature":"-5893888218-export declare const pkg20 = 20;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg20/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14212130036-export const pkg20 = 20;", + "signature": "-5893888218-export declare const pkg20 = 20;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 731 +} + +//// [/user/username/projects/myproject/pkg21/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg21 = void 0; +exports.pkg21 = 21; + + +//// [/user/username/projects/myproject/pkg21/index.d.ts] +export declare const pkg21 = 21; + + +//// [/user/username/projects/myproject/pkg21/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-17215629330-export const pkg21 = 21;","signature":"-6225117112-export declare const pkg21 = 21;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg21/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-17215629330-export const pkg21 = 21;", + "signature": "-6225117112-export declare const pkg21 = 21;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 731 +} + +//// [/user/username/projects/myproject/pkg22/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg22 = void 0; +exports.pkg22 = 22; + + +//// [/user/username/projects/myproject/pkg22/index.d.ts] +export declare const pkg22 = 22; + + +//// [/user/username/projects/myproject/pkg22/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-15924161328-export const pkg22 = 22;","signature":"-6556346006-export declare const pkg22 = 22;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg22/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-15924161328-export const pkg22 = 22;", + "signature": "-6556346006-export declare const pkg22 = 22;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 731 +} + + +Change:: dts doesn't change + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10; + + +Output:: +>> Screen clear +[12:06:32 AM] File change detected. Starting incremental compilation... + +[12:06:33 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:06:34 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:06:47 AM] Project 'pkg1/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:06:49 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:06:50 AM] Project 'pkg2/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:06:52 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:06:53 AM] Project 'pkg3/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:06:55 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:06:56 AM] Project 'pkg4/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:06:58 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:06:59 AM] Project 'pkg5/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:01 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:07:02 AM] Project 'pkg6/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:04 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:07:05 AM] Project 'pkg7/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:07 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:07:08 AM] Project 'pkg8/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:10 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:07:11 AM] Project 'pkg9/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:13 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:07:14 AM] Project 'pkg10/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:16 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg10/tsconfig.json'... + +[12:07:17 AM] Project 'pkg11/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:19 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg11/tsconfig.json'... + +[12:07:20 AM] Project 'pkg12/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:22 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg12/tsconfig.json'... + +[12:07:23 AM] Project 'pkg13/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:25 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg13/tsconfig.json'... + +[12:07:26 AM] Project 'pkg14/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:28 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg14/tsconfig.json'... + +[12:07:29 AM] Project 'pkg15/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:31 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg15/tsconfig.json'... + +[12:07:32 AM] Project 'pkg16/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:34 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg16/tsconfig.json'... + +[12:07:35 AM] Project 'pkg17/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:37 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg17/tsconfig.json'... + +[12:07:38 AM] Project 'pkg18/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:40 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg18/tsconfig.json'... + +[12:07:41 AM] Project 'pkg19/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:43 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg19/tsconfig.json'... + +[12:07:44 AM] Project 'pkg20/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:46 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg20/tsconfig.json'... + +[12:07:47 AM] Project 'pkg21/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:49 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg21/tsconfig.json'... + +[12:07:50 AM] Project 'pkg22/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:07:52 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg22/tsconfig.json'... + +[12:07:53 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] file written with same contents +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-7839887915-export const pkg0 = 0;const someConst2 = 10;","signature":"-4821832606-export declare const pkg0 = 0;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-7839887915-export const pkg0 = 0;const someConst2 = 10;", + "signature": "-4821832606-export declare const pkg0 = 0;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 748 +} + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg8/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg9/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg10/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg11/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg11/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg11/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg12/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg12/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg12/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg13/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg13/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg13/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg14/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg14/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg14/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg15/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg15/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg15/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg16/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg16/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg16/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg17/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg17/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg17/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg18/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg18/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg18/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg19/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg19/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg19/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg20/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg20/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg20/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg21/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg21/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg21/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg22/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg22/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg22/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + + +Change:: dts change + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10; + + +Output:: +>> Screen clear +[12:07:56 AM] File change detected. Starting incremental compilation... + +[12:07:57 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:07:58 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; +export declare const someConst = 10; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"1748855762-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;","signature":"-6216230055-export declare const pkg0 = 0;\nexport declare const someConst = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "1748855762-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;", + "signature": "-6216230055-export declare const pkg0 = 0;\nexport declare const someConst = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 813 +} + + +Change:: build pkg1,pkg2,pkg3,pkg4,pkg5 + +Input:: + +Output:: +[12:08:11 AM] Project 'pkg1/tsconfig.json' is out of date because oldest output 'pkg1/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:12 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:08:14 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:08:15 AM] Project 'pkg2/tsconfig.json' is out of date because oldest output 'pkg2/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:16 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:08:18 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:08:19 AM] Project 'pkg3/tsconfig.json' is out of date because oldest output 'pkg3/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:20 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:08:22 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:08:23 AM] Project 'pkg4/tsconfig.json' is out of date because oldest output 'pkg4/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:24 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:08:26 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:08:27 AM] Project 'pkg5/tsconfig.json' is out of date because oldest output 'pkg5/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:28 AM] Building project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:08:30 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg5/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg5/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg6,pkg7,pkg8,pkg9,pkg10 + +Input:: + +Output:: +[12:08:31 AM] Project 'pkg6/tsconfig.json' is out of date because oldest output 'pkg6/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:32 AM] Building project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:08:34 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:08:35 AM] Project 'pkg7/tsconfig.json' is out of date because oldest output 'pkg7/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:36 AM] Building project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:08:38 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:08:39 AM] Project 'pkg8/tsconfig.json' is out of date because oldest output 'pkg8/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:40 AM] Building project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:08:42 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:08:43 AM] Project 'pkg9/tsconfig.json' is out of date because oldest output 'pkg9/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:44 AM] Building project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:08:46 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:08:47 AM] Project 'pkg10/tsconfig.json' is out of date because oldest output 'pkg10/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:48 AM] Building project '/user/username/projects/myproject/pkg10/tsconfig.json'... + +[12:08:50 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg10/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg6/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg6/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg7/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg7/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg8/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg8/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg8/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg9/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg9/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg9/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg10/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg10/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg10/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg6/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg8/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg9/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg10/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg11,pkg12,pkg13,pkg14,pkg15 + +Input:: + +Output:: +[12:08:51 AM] Project 'pkg11/tsconfig.json' is out of date because oldest output 'pkg11/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:52 AM] Building project '/user/username/projects/myproject/pkg11/tsconfig.json'... + +[12:08:54 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg11/tsconfig.json'... + +[12:08:55 AM] Project 'pkg12/tsconfig.json' is out of date because oldest output 'pkg12/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:08:56 AM] Building project '/user/username/projects/myproject/pkg12/tsconfig.json'... + +[12:08:58 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg12/tsconfig.json'... + +[12:08:59 AM] Project 'pkg13/tsconfig.json' is out of date because oldest output 'pkg13/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:00 AM] Building project '/user/username/projects/myproject/pkg13/tsconfig.json'... + +[12:09:02 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg13/tsconfig.json'... + +[12:09:03 AM] Project 'pkg14/tsconfig.json' is out of date because oldest output 'pkg14/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:04 AM] Building project '/user/username/projects/myproject/pkg14/tsconfig.json'... + +[12:09:06 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg14/tsconfig.json'... + +[12:09:07 AM] Project 'pkg15/tsconfig.json' is out of date because oldest output 'pkg15/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:08 AM] Building project '/user/username/projects/myproject/pkg15/tsconfig.json'... + +[12:09:10 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg15/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg11/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg11/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg11/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg12/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg12/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg12/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg13/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg13/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg13/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg14/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg14/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg14/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg15/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg15/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg15/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg11/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg11/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg11/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg12/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg12/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg12/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg13/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg13/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg13/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg14/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg14/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg14/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg15/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg15/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg15/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg16,pkg17,pkg18,pkg19,pkg20 + +Input:: + +Output:: +[12:09:11 AM] Project 'pkg16/tsconfig.json' is out of date because oldest output 'pkg16/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:12 AM] Building project '/user/username/projects/myproject/pkg16/tsconfig.json'... + +[12:09:14 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg16/tsconfig.json'... + +[12:09:15 AM] Project 'pkg17/tsconfig.json' is out of date because oldest output 'pkg17/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:16 AM] Building project '/user/username/projects/myproject/pkg17/tsconfig.json'... + +[12:09:18 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg17/tsconfig.json'... + +[12:09:19 AM] Project 'pkg18/tsconfig.json' is out of date because oldest output 'pkg18/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:20 AM] Building project '/user/username/projects/myproject/pkg18/tsconfig.json'... + +[12:09:22 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg18/tsconfig.json'... + +[12:09:23 AM] Project 'pkg19/tsconfig.json' is out of date because oldest output 'pkg19/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:24 AM] Building project '/user/username/projects/myproject/pkg19/tsconfig.json'... + +[12:09:26 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg19/tsconfig.json'... + +[12:09:27 AM] Project 'pkg20/tsconfig.json' is out of date because oldest output 'pkg20/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:28 AM] Building project '/user/username/projects/myproject/pkg20/tsconfig.json'... + +[12:09:30 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg20/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg16/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg16/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg16/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg17/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg17/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg17/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg18/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg18/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg18/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg19/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg19/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg19/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg20/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg20/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg20/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg16/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg16/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg16/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg17/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg17/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg17/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg18/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg18/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg18/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg19/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg19/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg19/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg20/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg20/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg20/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg21,pkg22,pkg23 + +Input:: + +Output:: +[12:09:32 AM] Project 'pkg21/tsconfig.json' is out of date because oldest output 'pkg21/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:33 AM] Building project '/user/username/projects/myproject/pkg21/tsconfig.json'... + +[12:09:35 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg21/tsconfig.json'... + +[12:09:36 AM] Project 'pkg22/tsconfig.json' is out of date because oldest output 'pkg22/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:37 AM] Building project '/user/username/projects/myproject/pkg22/tsconfig.json'... + +[12:09:39 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg22/tsconfig.json'... + +[12:09:40 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg21/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg21/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg21/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg22/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg22/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg22/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg21/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg21/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg21/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg22/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg22/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg22/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + + +Change:: dts change2 + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10; + + +Output:: +>> Screen clear +[12:09:43 AM] File change detected. Starting incremental compilation... + +[12:09:44 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:09:45 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst3 = exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; +exports.someConst3 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; +export declare const someConst = 10; +export declare const someConst3 = 10; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"10857255042-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;","signature":"-13679921373-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "10857255042-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;", + "signature": "-13679921373-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 883 +} + + +Change:: build pkg1,pkg2,pkg3,pkg4,pkg5 + +Input:: + +Output:: +[12:09:58 AM] Project 'pkg1/tsconfig.json' is out of date because oldest output 'pkg1/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:09:59 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:10:01 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:10:02 AM] Project 'pkg2/tsconfig.json' is out of date because oldest output 'pkg2/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:03 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:10:05 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:10:06 AM] Project 'pkg3/tsconfig.json' is out of date because oldest output 'pkg3/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:07 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:10:09 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:10:10 AM] Project 'pkg4/tsconfig.json' is out of date because oldest output 'pkg4/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:11 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:10:13 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:10:14 AM] Project 'pkg5/tsconfig.json' is out of date because oldest output 'pkg5/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:15 AM] Building project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:10:17 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg5/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg5/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg6,pkg7,pkg8,pkg9,pkg10 + +Input:: + +Output:: +[12:10:18 AM] Project 'pkg6/tsconfig.json' is out of date because oldest output 'pkg6/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:19 AM] Building project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:10:21 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:10:22 AM] Project 'pkg7/tsconfig.json' is out of date because oldest output 'pkg7/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:23 AM] Building project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:10:25 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:10:26 AM] Project 'pkg8/tsconfig.json' is out of date because oldest output 'pkg8/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:27 AM] Building project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:10:29 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:10:30 AM] Project 'pkg9/tsconfig.json' is out of date because oldest output 'pkg9/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:31 AM] Building project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:10:33 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:10:34 AM] Project 'pkg10/tsconfig.json' is out of date because oldest output 'pkg10/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:10:35 AM] Building project '/user/username/projects/myproject/pkg10/tsconfig.json'... + +[12:10:37 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg10/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg6/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg6/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg7/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg7/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg8/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg8/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg8/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg9/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg9/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg9/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg10/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg10/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg10/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg6/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg8/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg9/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg10/tsconfig.tsbuildinfo] file changed its modified time + +Change:: change while building + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10; + + +Output:: +>> Screen clear +[12:10:40 AM] File change detected. Starting incremental compilation... + +[12:10:41 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:10:42 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:10:55 AM] Project 'pkg1/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:10:57 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:10:58 AM] Project 'pkg2/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:00 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:11:01 AM] Project 'pkg3/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:03 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:11:04 AM] Project 'pkg4/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:06 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:11:07 AM] Project 'pkg5/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:09 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:11:10 AM] Project 'pkg6/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:12 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:11:13 AM] Project 'pkg7/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:15 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:11:16 AM] Project 'pkg8/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:18 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:11:19 AM] Project 'pkg9/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:21 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:11:22 AM] Project 'pkg10/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:11:24 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg10/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst3 = exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; +exports.someConst3 = 10; +var someConst4 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] file written with same contents +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"27277091473-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10;","signature":"-13679921373-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "27277091473-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10;", + "signature": "-13679921373-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 905 +} + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg8/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg9/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg10/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg11,pkg12,pkg13,pkg14,pkg15 + +Input:: + +Output:: +[12:11:25 AM] Project 'pkg11/tsconfig.json' is out of date because oldest output 'pkg11/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:11:26 AM] Building project '/user/username/projects/myproject/pkg11/tsconfig.json'... + +[12:11:28 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg11/tsconfig.json'... + +[12:11:29 AM] Project 'pkg12/tsconfig.json' is out of date because oldest output 'pkg12/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:11:30 AM] Building project '/user/username/projects/myproject/pkg12/tsconfig.json'... + +[12:11:32 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg12/tsconfig.json'... + +[12:11:33 AM] Project 'pkg13/tsconfig.json' is out of date because oldest output 'pkg13/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:11:34 AM] Building project '/user/username/projects/myproject/pkg13/tsconfig.json'... + +[12:11:36 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg13/tsconfig.json'... + +[12:11:37 AM] Project 'pkg14/tsconfig.json' is out of date because oldest output 'pkg14/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:11:38 AM] Building project '/user/username/projects/myproject/pkg14/tsconfig.json'... + +[12:11:40 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg14/tsconfig.json'... + +[12:11:41 AM] Project 'pkg15/tsconfig.json' is out of date because oldest output 'pkg15/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:11:42 AM] Building project '/user/username/projects/myproject/pkg15/tsconfig.json'... + +[12:11:44 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg15/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg11/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg11/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg11/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg12/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg12/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg12/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg13/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg13/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg13/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg14/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg14/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg14/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg15/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg15/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg15/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg11/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg11/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg11/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg12/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg12/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg12/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg13/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg13/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg13/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg14/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg14/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg14/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg15/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg15/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg15/tsconfig.tsbuildinfo] file changed its modified time + +Change:: change while building: dts changes + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10;export const someConst5 = 10; + + +Output:: +>> Screen clear +[12:11:48 AM] File change detected. Starting incremental compilation... + +[12:11:49 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:11:50 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst5 = exports.someConst3 = exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; +exports.someConst3 = 10; +var someConst4 = 10; +exports.someConst5 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; +export declare const someConst = 10; +export declare const someConst3 = 10; +export declare const someConst5 = 10; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"14710086947-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10;export const someConst5 = 10;","signature":"4956132399-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\nexport declare const someConst5 = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "14710086947-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10;export const someConst5 = 10;", + "signature": "4956132399-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\nexport declare const someConst5 = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 971 +} + + +Change:: build pkg1,pkg2,pkg3,pkg4,pkg5 + +Input:: + +Output:: +[12:12:03 AM] Project 'pkg1/tsconfig.json' is out of date because oldest output 'pkg1/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:04 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:12:06 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:12:07 AM] Project 'pkg2/tsconfig.json' is out of date because oldest output 'pkg2/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:08 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:12:10 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:12:11 AM] Project 'pkg3/tsconfig.json' is out of date because oldest output 'pkg3/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:12 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:12:14 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:12:15 AM] Project 'pkg4/tsconfig.json' is out of date because oldest output 'pkg4/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:16 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:12:18 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:12:19 AM] Project 'pkg5/tsconfig.json' is out of date because oldest output 'pkg5/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:20 AM] Building project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:12:22 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg5/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg5/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg6,pkg7,pkg8,pkg9,pkg10 + +Input:: + +Output:: +[12:12:23 AM] Project 'pkg6/tsconfig.json' is out of date because oldest output 'pkg6/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:24 AM] Building project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:12:26 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:12:27 AM] Project 'pkg7/tsconfig.json' is out of date because oldest output 'pkg7/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:28 AM] Building project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:12:30 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:12:31 AM] Project 'pkg8/tsconfig.json' is out of date because oldest output 'pkg8/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:32 AM] Building project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:12:34 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg8/tsconfig.json'... + +[12:12:35 AM] Project 'pkg9/tsconfig.json' is out of date because oldest output 'pkg9/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:36 AM] Building project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:12:38 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg9/tsconfig.json'... + +[12:12:39 AM] Project 'pkg10/tsconfig.json' is out of date because oldest output 'pkg10/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:40 AM] Building project '/user/username/projects/myproject/pkg10/tsconfig.json'... + +[12:12:42 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg10/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg6/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg6/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg7/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg7/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg8/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg8/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg8/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg9/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg9/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg9/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg10/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg10/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg10/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg6/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg8/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg8/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg9/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg9/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg10/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg10/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg11,pkg12,pkg13,pkg14,pkg15 + +Input:: + +Output:: +[12:12:43 AM] Project 'pkg11/tsconfig.json' is out of date because oldest output 'pkg11/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:44 AM] Building project '/user/username/projects/myproject/pkg11/tsconfig.json'... + +[12:12:46 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg11/tsconfig.json'... + +[12:12:47 AM] Project 'pkg12/tsconfig.json' is out of date because oldest output 'pkg12/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:48 AM] Building project '/user/username/projects/myproject/pkg12/tsconfig.json'... + +[12:12:50 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg12/tsconfig.json'... + +[12:12:51 AM] Project 'pkg13/tsconfig.json' is out of date because oldest output 'pkg13/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:52 AM] Building project '/user/username/projects/myproject/pkg13/tsconfig.json'... + +[12:12:54 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg13/tsconfig.json'... + +[12:12:55 AM] Project 'pkg14/tsconfig.json' is out of date because oldest output 'pkg14/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:12:56 AM] Building project '/user/username/projects/myproject/pkg14/tsconfig.json'... + +[12:12:58 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg14/tsconfig.json'... + +[12:12:59 AM] Project 'pkg15/tsconfig.json' is out of date because oldest output 'pkg15/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:13:00 AM] Building project '/user/username/projects/myproject/pkg15/tsconfig.json'... + +[12:13:02 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg15/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg11/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg11/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg11/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg12/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg12/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg12/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg13/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg13/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg13/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg14/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg14/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg14/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg15/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg15/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg15/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg11/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg11/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg11/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg12/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg12/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg12/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg13/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg13/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg13/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg14/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg14/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg14/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg15/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg15/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg15/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg16,pkg17,pkg18,pkg19,pkg20 + +Input:: + +Output:: +[12:13:03 AM] Project 'pkg16/tsconfig.json' is out of date because oldest output 'pkg16/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:13:04 AM] Building project '/user/username/projects/myproject/pkg16/tsconfig.json'... + +[12:13:06 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg16/tsconfig.json'... + +[12:13:07 AM] Project 'pkg17/tsconfig.json' is out of date because oldest output 'pkg17/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:13:08 AM] Building project '/user/username/projects/myproject/pkg17/tsconfig.json'... + +[12:13:10 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg17/tsconfig.json'... + +[12:13:11 AM] Project 'pkg18/tsconfig.json' is out of date because oldest output 'pkg18/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:13:12 AM] Building project '/user/username/projects/myproject/pkg18/tsconfig.json'... + +[12:13:14 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg18/tsconfig.json'... + +[12:13:15 AM] Project 'pkg19/tsconfig.json' is out of date because oldest output 'pkg19/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:13:16 AM] Building project '/user/username/projects/myproject/pkg19/tsconfig.json'... + +[12:13:18 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg19/tsconfig.json'... + +[12:13:19 AM] Project 'pkg20/tsconfig.json' is out of date because oldest output 'pkg20/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:13:20 AM] Building project '/user/username/projects/myproject/pkg20/tsconfig.json'... + +[12:13:22 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg20/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg16/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg16/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg16/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg17/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg17/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg17/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg18/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg18/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg18/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg19/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg19/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg19/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg20/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg20/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg20/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg16/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg16/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg16/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg17/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg17/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg17/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg18/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg18/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg18/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg19/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg19/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg19/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg20/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg20/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg20/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg21,pkg22,pkg23 + +Input:: + +Output:: +[12:13:23 AM] Project 'pkg21/tsconfig.json' is out of date because oldest output 'pkg21/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:13:24 AM] Building project '/user/username/projects/myproject/pkg21/tsconfig.json'... + +[12:13:26 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg21/tsconfig.json'... + +[12:13:27 AM] Project 'pkg22/tsconfig.json' is out of date because oldest output 'pkg22/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:13:28 AM] Building project '/user/username/projects/myproject/pkg22/tsconfig.json'... + +[12:13:30 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg22/tsconfig.json'... + +[12:13:31 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg21/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg21/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg21/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg22/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg22/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg22/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg21/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg21/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg21/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg22/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg22/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg22/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg8/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg8/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg8/index.ts: + {"fileName":"/user/username/projects/myproject/pkg8/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg9/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg9/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg9/index.ts: + {"fileName":"/user/username/projects/myproject/pkg9/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg10/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg10/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg10/index.ts: + {"fileName":"/user/username/projects/myproject/pkg10/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg11/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg11/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg11/index.ts: + {"fileName":"/user/username/projects/myproject/pkg11/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg12/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg12/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg12/index.ts: + {"fileName":"/user/username/projects/myproject/pkg12/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg13/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg13/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg13/index.ts: + {"fileName":"/user/username/projects/myproject/pkg13/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg14/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg14/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg14/index.ts: + {"fileName":"/user/username/projects/myproject/pkg14/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg15/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg15/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg15/index.ts: + {"fileName":"/user/username/projects/myproject/pkg15/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg16/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg16/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg16/index.ts: + {"fileName":"/user/username/projects/myproject/pkg16/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg17/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg17/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg17/index.ts: + {"fileName":"/user/username/projects/myproject/pkg17/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg18/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg18/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg18/index.ts: + {"fileName":"/user/username/projects/myproject/pkg18/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg19/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg19/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg19/index.ts: + {"fileName":"/user/username/projects/myproject/pkg19/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg20/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg20/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg20/index.ts: + {"fileName":"/user/username/projects/myproject/pkg20/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg21/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg21/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg21/index.ts: + {"fileName":"/user/username/projects/myproject/pkg21/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg22/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg22/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg22/index.ts: + {"fileName":"/user/username/projects/myproject/pkg22/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg8: + {"directoryName":"/user/username/projects/myproject/pkg8","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg9: + {"directoryName":"/user/username/projects/myproject/pkg9","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg10: + {"directoryName":"/user/username/projects/myproject/pkg10","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg11: + {"directoryName":"/user/username/projects/myproject/pkg11","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg12: + {"directoryName":"/user/username/projects/myproject/pkg12","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg13: + {"directoryName":"/user/username/projects/myproject/pkg13","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg14: + {"directoryName":"/user/username/projects/myproject/pkg14","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg15: + {"directoryName":"/user/username/projects/myproject/pkg15","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg16: + {"directoryName":"/user/username/projects/myproject/pkg16","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg17: + {"directoryName":"/user/username/projects/myproject/pkg17","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg18: + {"directoryName":"/user/username/projects/myproject/pkg18","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg19: + {"directoryName":"/user/username/projects/myproject/pkg19","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg20: + {"directoryName":"/user/username/projects/myproject/pkg20","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg21: + {"directoryName":"/user/username/projects/myproject/pkg21","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg22: + {"directoryName":"/user/username/projects/myproject/pkg22","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + diff --git a/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-3-projects-in-a-solution.js b/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-3-projects-in-a-solution.js new file mode 100644 index 00000000000..0212ba40880 --- /dev/null +++ b/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-3-projects-in-a-solution.js @@ -0,0 +1,649 @@ +Input:: +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0; + +//// [/user/username/projects/myproject/pkg0/tsconfig.json] +{"compilerOptions":{"composite":true}} + +//// [/user/username/projects/myproject/pkg1/index.ts] +export const pkg1 = 1; + +//// [/user/username/projects/myproject/pkg1/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg2/index.ts] +export const pkg2 = 2; + +//// [/user/username/projects/myproject/pkg2/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/tsconfig.json] +{"references":[{"path":"./pkg0"},{"path":"./pkg1"},{"path":"./pkg2"}],"files":[]} + + +/a/lib/tsc.js -b -w -v +Output:: +>> Screen clear +[12:00:37 AM] Starting compilation in watch mode... + +[12:00:38 AM] Projects in this build: + * pkg0/tsconfig.json + * pkg1/tsconfig.json + * pkg2/tsconfig.json + * tsconfig.json + +[12:00:39 AM] Project 'pkg0/tsconfig.json' is out of date because output file 'pkg0/index.js' does not exist + +[12:00:40 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:00:49 AM] Project 'pkg1/tsconfig.json' is out of date because output file 'pkg1/index.js' does not exist + +[12:00:50 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:00:59 AM] Project 'pkg2/tsconfig.json' is out of date because output file 'pkg2/index.js' does not exist + +[12:01:00 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:01:09 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg1/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg2/index.ts (computed .d.ts during emit) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg0 = void 0; +exports.pkg0 = 0; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10197922616-export const pkg0 = 0;","signature":"-4821832606-export declare const pkg0 = 0;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10197922616-export const pkg0 = 0;", + "signature": "-4821832606-export declare const pkg0 = 0;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg1/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg1 = void 0; +exports.pkg1 = 1; + + +//// [/user/username/projects/myproject/pkg1/index.d.ts] +export declare const pkg1 = 1; + + +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10158787190-export const pkg1 = 1;","signature":"-3530363548-export declare const pkg1 = 1;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10158787190-export const pkg1 = 1;", + "signature": "-3530363548-export declare const pkg1 = 1;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg2/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg2 = void 0; +exports.pkg2 = 2; + + +//// [/user/username/projects/myproject/pkg2/index.d.ts] +export declare const pkg2 = 2; + + +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14414619060-export const pkg2 = 2;","signature":"-6533861786-export declare const pkg2 = 2;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14414619060-export const pkg2 = 2;", + "signature": "-6533861786-export declare const pkg2 = 2;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + + +Change:: dts doesn't change + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10; + + +Output:: +>> Screen clear +[12:01:12 AM] File change detected. Starting incremental compilation... + +[12:01:13 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:01:14 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:01:27 AM] Project 'pkg1/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:01:29 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:01:30 AM] Project 'pkg2/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:01:32 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:01:33 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] file written with same contents +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-7839887915-export const pkg0 = 0;const someConst2 = 10;","signature":"-4821832606-export declare const pkg0 = 0;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-7839887915-export const pkg0 = 0;const someConst2 = 10;", + "signature": "-4821832606-export declare const pkg0 = 0;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 748 +} + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + + +Change:: dts change + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10; + + +Output:: +>> Screen clear +[12:01:36 AM] File change detected. Starting incremental compilation... + +[12:01:37 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:01:38 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; +export declare const someConst = 10; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"1748855762-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;","signature":"-6216230055-export declare const pkg0 = 0;\nexport declare const someConst = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "1748855762-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;", + "signature": "-6216230055-export declare const pkg0 = 0;\nexport declare const someConst = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 813 +} + + +Change:: build pkg1,pkg2 + +Input:: + +Output:: +[12:01:51 AM] Project 'pkg1/tsconfig.json' is out of date because oldest output 'pkg1/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:01:52 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:01:54 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:01:55 AM] Project 'pkg2/tsconfig.json' is out of date because oldest output 'pkg2/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:01:56 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:01:58 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:01:59 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + diff --git a/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-5-projects-in-a-solution.js b/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-5-projects-in-a-solution.js new file mode 100644 index 00000000000..62a0184820e --- /dev/null +++ b/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-5-projects-in-a-solution.js @@ -0,0 +1,919 @@ +Input:: +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0; + +//// [/user/username/projects/myproject/pkg0/tsconfig.json] +{"compilerOptions":{"composite":true}} + +//// [/user/username/projects/myproject/pkg1/index.ts] +export const pkg1 = 1; + +//// [/user/username/projects/myproject/pkg1/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg2/index.ts] +export const pkg2 = 2; + +//// [/user/username/projects/myproject/pkg2/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg3/index.ts] +export const pkg3 = 3; + +//// [/user/username/projects/myproject/pkg3/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg4/index.ts] +export const pkg4 = 4; + +//// [/user/username/projects/myproject/pkg4/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/tsconfig.json] +{"references":[{"path":"./pkg0"},{"path":"./pkg1"},{"path":"./pkg2"},{"path":"./pkg3"},{"path":"./pkg4"}],"files":[]} + + +/a/lib/tsc.js -b -w -v +Output:: +>> Screen clear +[12:00:49 AM] Starting compilation in watch mode... + +[12:00:50 AM] Projects in this build: + * pkg0/tsconfig.json + * pkg1/tsconfig.json + * pkg2/tsconfig.json + * pkg3/tsconfig.json + * pkg4/tsconfig.json + * tsconfig.json + +[12:00:51 AM] Project 'pkg0/tsconfig.json' is out of date because output file 'pkg0/index.js' does not exist + +[12:00:52 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:01:01 AM] Project 'pkg1/tsconfig.json' is out of date because output file 'pkg1/index.js' does not exist + +[12:01:02 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:01:11 AM] Project 'pkg2/tsconfig.json' is out of date because output file 'pkg2/index.js' does not exist + +[12:01:12 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:01:21 AM] Project 'pkg3/tsconfig.json' is out of date because output file 'pkg3/index.js' does not exist + +[12:01:22 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:01:31 AM] Project 'pkg4/tsconfig.json' is out of date because output file 'pkg4/index.js' does not exist + +[12:01:32 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:01:41 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg1/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg2/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg3/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg4/index.ts (computed .d.ts during emit) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg0 = void 0; +exports.pkg0 = 0; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10197922616-export const pkg0 = 0;","signature":"-4821832606-export declare const pkg0 = 0;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10197922616-export const pkg0 = 0;", + "signature": "-4821832606-export declare const pkg0 = 0;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg1/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg1 = void 0; +exports.pkg1 = 1; + + +//// [/user/username/projects/myproject/pkg1/index.d.ts] +export declare const pkg1 = 1; + + +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10158787190-export const pkg1 = 1;","signature":"-3530363548-export declare const pkg1 = 1;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10158787190-export const pkg1 = 1;", + "signature": "-3530363548-export declare const pkg1 = 1;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg2/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg2 = void 0; +exports.pkg2 = 2; + + +//// [/user/username/projects/myproject/pkg2/index.d.ts] +export declare const pkg2 = 2; + + +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14414619060-export const pkg2 = 2;","signature":"-6533861786-export declare const pkg2 = 2;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14414619060-export const pkg2 = 2;", + "signature": "-6533861786-export declare const pkg2 = 2;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg3/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg3 = void 0; +exports.pkg3 = 3; + + +//// [/user/username/projects/myproject/pkg3/index.d.ts] +export declare const pkg3 = 3; + + +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14375483634-export const pkg3 = 3;","signature":"-5242392728-export declare const pkg3 = 3;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14375483634-export const pkg3 = 3;", + "signature": "-5242392728-export declare const pkg3 = 3;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg4/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg4 = void 0; +exports.pkg4 = 4; + + +//// [/user/username/projects/myproject/pkg4/index.d.ts] +export declare const pkg4 = 4; + + +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14336348208-export const pkg4 = 4;","signature":"-3950923670-export declare const pkg4 = 4;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14336348208-export const pkg4 = 4;", + "signature": "-3950923670-export declare const pkg4 = 4;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + + +Change:: dts doesn't change + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10; + + +Output:: +>> Screen clear +[12:01:44 AM] File change detected. Starting incremental compilation... + +[12:01:45 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:01:46 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:01:59 AM] Project 'pkg1/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:02:01 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:02:02 AM] Project 'pkg2/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:02:04 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:02:05 AM] Project 'pkg3/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:02:07 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:02:08 AM] Project 'pkg4/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:02:10 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:02:11 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] file written with same contents +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-7839887915-export const pkg0 = 0;const someConst2 = 10;","signature":"-4821832606-export declare const pkg0 = 0;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-7839887915-export const pkg0 = 0;const someConst2 = 10;", + "signature": "-4821832606-export declare const pkg0 = 0;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 748 +} + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + + +Change:: dts change + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10; + + +Output:: +>> Screen clear +[12:02:14 AM] File change detected. Starting incremental compilation... + +[12:02:15 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:02:16 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; +export declare const someConst = 10; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"1748855762-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;","signature":"-6216230055-export declare const pkg0 = 0;\nexport declare const someConst = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "1748855762-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;", + "signature": "-6216230055-export declare const pkg0 = 0;\nexport declare const someConst = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 813 +} + + +Change:: build pkg1,pkg2,pkg3,pkg4 + +Input:: + +Output:: +[12:02:29 AM] Project 'pkg1/tsconfig.json' is out of date because oldest output 'pkg1/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:02:30 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:02:32 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:02:33 AM] Project 'pkg2/tsconfig.json' is out of date because oldest output 'pkg2/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:02:34 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:02:36 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:02:37 AM] Project 'pkg3/tsconfig.json' is out of date because oldest output 'pkg3/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:02:38 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:02:40 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:02:41 AM] Project 'pkg4/tsconfig.json' is out of date because oldest output 'pkg4/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:02:42 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:02:44 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:02:45 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + diff --git a/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-8-projects-in-a-solution.js b/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-8-projects-in-a-solution.js new file mode 100644 index 00000000000..7fb285198da --- /dev/null +++ b/tests/baselines/reference/tsbuildWatch/projectsBuilding/when-there-are-8-projects-in-a-solution.js @@ -0,0 +1,2040 @@ +Input:: +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0; + +//// [/user/username/projects/myproject/pkg0/tsconfig.json] +{"compilerOptions":{"composite":true}} + +//// [/user/username/projects/myproject/pkg1/index.ts] +export const pkg1 = 1; + +//// [/user/username/projects/myproject/pkg1/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg2/index.ts] +export const pkg2 = 2; + +//// [/user/username/projects/myproject/pkg2/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg3/index.ts] +export const pkg3 = 3; + +//// [/user/username/projects/myproject/pkg3/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg4/index.ts] +export const pkg4 = 4; + +//// [/user/username/projects/myproject/pkg4/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg5/index.ts] +export const pkg5 = 5; + +//// [/user/username/projects/myproject/pkg5/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg6/index.ts] +export const pkg6 = 6; + +//// [/user/username/projects/myproject/pkg6/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/pkg7/index.ts] +export const pkg7 = 7; + +//// [/user/username/projects/myproject/pkg7/tsconfig.json] +{"compilerOptions":{"composite":true},"references":[{"path":"../pkg0"}]} + +//// [/user/username/projects/myproject/tsconfig.json] +{"references":[{"path":"./pkg0"},{"path":"./pkg1"},{"path":"./pkg2"},{"path":"./pkg3"},{"path":"./pkg4"},{"path":"./pkg5"},{"path":"./pkg6"},{"path":"./pkg7"}],"files":[]} + + +/a/lib/tsc.js -b -w -v +Output:: +>> Screen clear +[12:01:07 AM] Starting compilation in watch mode... + +[12:01:08 AM] Projects in this build: + * pkg0/tsconfig.json + * pkg1/tsconfig.json + * pkg2/tsconfig.json + * pkg3/tsconfig.json + * pkg4/tsconfig.json + * pkg5/tsconfig.json + * pkg6/tsconfig.json + * pkg7/tsconfig.json + * tsconfig.json + +[12:01:09 AM] Project 'pkg0/tsconfig.json' is out of date because output file 'pkg0/index.js' does not exist + +[12:01:10 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:01:19 AM] Project 'pkg1/tsconfig.json' is out of date because output file 'pkg1/index.js' does not exist + +[12:01:20 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:01:29 AM] Project 'pkg2/tsconfig.json' is out of date because output file 'pkg2/index.js' does not exist + +[12:01:30 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:01:39 AM] Project 'pkg3/tsconfig.json' is out of date because output file 'pkg3/index.js' does not exist + +[12:01:40 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:01:49 AM] Project 'pkg4/tsconfig.json' is out of date because output file 'pkg4/index.js' does not exist + +[12:01:50 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:01:59 AM] Project 'pkg5/tsconfig.json' is out of date because output file 'pkg5/index.js' does not exist + +[12:02:00 AM] Building project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:02:09 AM] Project 'pkg6/tsconfig.json' is out of date because output file 'pkg6/index.js' does not exist + +[12:02:10 AM] Building project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:02:19 AM] Project 'pkg7/tsconfig.json' is out of date because output file 'pkg7/index.js' does not exist + +[12:02:20 AM] Building project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:02:29 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg1/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg2/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg3/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg4/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg5/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg5/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg5/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg6/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg6/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg6/index.ts (computed .d.ts during emit) + +Program root files: ["/user/username/projects/myproject/pkg7/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg7/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/pkg7/index.ts (computed .d.ts during emit) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg0 = void 0; +exports.pkg0 = 0; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10197922616-export const pkg0 = 0;","signature":"-4821832606-export declare const pkg0 = 0;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10197922616-export const pkg0 = 0;", + "signature": "-4821832606-export declare const pkg0 = 0;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg1/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg1 = void 0; +exports.pkg1 = 1; + + +//// [/user/username/projects/myproject/pkg1/index.d.ts] +export declare const pkg1 = 1; + + +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-10158787190-export const pkg1 = 1;","signature":"-3530363548-export declare const pkg1 = 1;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-10158787190-export const pkg1 = 1;", + "signature": "-3530363548-export declare const pkg1 = 1;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg2/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg2 = void 0; +exports.pkg2 = 2; + + +//// [/user/username/projects/myproject/pkg2/index.d.ts] +export declare const pkg2 = 2; + + +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14414619060-export const pkg2 = 2;","signature":"-6533861786-export declare const pkg2 = 2;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14414619060-export const pkg2 = 2;", + "signature": "-6533861786-export declare const pkg2 = 2;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg3/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg3 = void 0; +exports.pkg3 = 3; + + +//// [/user/username/projects/myproject/pkg3/index.d.ts] +export declare const pkg3 = 3; + + +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14375483634-export const pkg3 = 3;","signature":"-5242392728-export declare const pkg3 = 3;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14375483634-export const pkg3 = 3;", + "signature": "-5242392728-export declare const pkg3 = 3;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg4/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg4 = void 0; +exports.pkg4 = 4; + + +//// [/user/username/projects/myproject/pkg4/index.d.ts] +export declare const pkg4 = 4; + + +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14336348208-export const pkg4 = 4;","signature":"-3950923670-export declare const pkg4 = 4;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14336348208-export const pkg4 = 4;", + "signature": "-3950923670-export declare const pkg4 = 4;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg5/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg5 = void 0; +exports.pkg5 = 5; + + +//// [/user/username/projects/myproject/pkg5/index.d.ts] +export declare const pkg5 = 5; + + +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14297212782-export const pkg5 = 5;","signature":"-2659454612-export declare const pkg5 = 5;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14297212782-export const pkg5 = 5;", + "signature": "-2659454612-export declare const pkg5 = 5;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg6/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg6 = void 0; +exports.pkg6 = 6; + + +//// [/user/username/projects/myproject/pkg6/index.d.ts] +export declare const pkg6 = 6; + + +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14258077356-export const pkg6 = 6;","signature":"-5662952850-export declare const pkg6 = 6;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14258077356-export const pkg6 = 6;", + "signature": "-5662952850-export declare const pkg6 = 6;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + +//// [/user/username/projects/myproject/pkg7/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg7 = void 0; +exports.pkg7 = 7; + + +//// [/user/username/projects/myproject/pkg7/index.d.ts] +export declare const pkg7 = 7; + + +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-14218941930-export const pkg7 = 7;","signature":"-4371483792-export declare const pkg7 = 7;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14218941930-export const pkg7 = 7;", + "signature": "-4371483792-export declare const pkg7 = 7;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 727 +} + + +Change:: dts doesn't change + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10; + + +Output:: +>> Screen clear +[12:02:32 AM] File change detected. Starting incremental compilation... + +[12:02:33 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:02:34 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:02:47 AM] Project 'pkg1/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:02:49 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:02:50 AM] Project 'pkg2/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:02:52 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:02:53 AM] Project 'pkg3/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:02:55 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:02:56 AM] Project 'pkg4/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:02:58 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:02:59 AM] Project 'pkg5/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:03:01 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:03:02 AM] Project 'pkg6/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:03:04 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:03:05 AM] Project 'pkg7/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:03:07 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:03:08 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] file written with same contents +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"-7839887915-export const pkg0 = 0;const someConst2 = 10;","signature":"-4821832606-export declare const pkg0 = 0;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-7839887915-export const pkg0 = 0;const someConst2 = 10;", + "signature": "-4821832606-export declare const pkg0 = 0;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 748 +} + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + + +Change:: dts change + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10; + + +Output:: +>> Screen clear +[12:03:11 AM] File change detected. Starting incremental compilation... + +[12:03:12 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:03:13 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; +export declare const someConst = 10; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"1748855762-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;","signature":"-6216230055-export declare const pkg0 = 0;\nexport declare const someConst = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "1748855762-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;", + "signature": "-6216230055-export declare const pkg0 = 0;\nexport declare const someConst = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 813 +} + + +Change:: build pkg1,pkg2,pkg3,pkg4,pkg5 + +Input:: + +Output:: +[12:03:26 AM] Project 'pkg1/tsconfig.json' is out of date because oldest output 'pkg1/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:03:27 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:03:29 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:03:30 AM] Project 'pkg2/tsconfig.json' is out of date because oldest output 'pkg2/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:03:31 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:03:33 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:03:34 AM] Project 'pkg3/tsconfig.json' is out of date because oldest output 'pkg3/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:03:35 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:03:37 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:03:38 AM] Project 'pkg4/tsconfig.json' is out of date because oldest output 'pkg4/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:03:39 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:03:41 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:03:42 AM] Project 'pkg5/tsconfig.json' is out of date because oldest output 'pkg5/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:03:43 AM] Building project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:03:45 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg5/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg5/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg6,pkg7 + +Input:: + +Output:: +[12:03:46 AM] Project 'pkg6/tsconfig.json' is out of date because oldest output 'pkg6/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:03:47 AM] Building project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:03:49 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:03:50 AM] Project 'pkg7/tsconfig.json' is out of date because oldest output 'pkg7/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:03:51 AM] Building project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:03:53 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:03:54 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg6/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg6/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg7/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg7/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg6/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + + +Change:: dts change2 + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10; + + +Output:: +>> Screen clear +[12:03:57 AM] File change detected. Starting incremental compilation... + +[12:03:58 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:03:59 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst3 = exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; +exports.someConst3 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] +export declare const pkg0 = 0; +export declare const someConst = 10; +export declare const someConst3 = 10; + + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"10857255042-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;","signature":"-13679921373-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "10857255042-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;", + "signature": "-13679921373-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 883 +} + + +Change:: build pkg1,pkg2,pkg3,pkg4,pkg5 + +Input:: + +Output:: +[12:04:13 AM] Project 'pkg1/tsconfig.json' is out of date because oldest output 'pkg1/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:04:14 AM] Building project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:04:16 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:04:17 AM] Project 'pkg2/tsconfig.json' is out of date because oldest output 'pkg2/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:04:18 AM] Building project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:04:20 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:04:21 AM] Project 'pkg3/tsconfig.json' is out of date because oldest output 'pkg3/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:04:22 AM] Building project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:04:24 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:04:25 AM] Project 'pkg4/tsconfig.json' is out of date because oldest output 'pkg4/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:04:26 AM] Building project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:04:28 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:04:29 AM] Project 'pkg5/tsconfig.json' is out of date because oldest output 'pkg5/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:04:30 AM] Building project '/user/username/projects/myproject/pkg5/tsconfig.json'... + +[12:04:32 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg1/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg1/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg1/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg2/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg2/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg2/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg3/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg3/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg3/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg4/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg4/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg4/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg5/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg5/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg5/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time + +Change:: change while building + +Input:: +//// [/user/username/projects/myproject/pkg0/index.ts] +export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10; + + +Output:: +>> Screen clear +[12:04:35 AM] File change detected. Starting incremental compilation... + +[12:04:36 AM] Project 'pkg0/tsconfig.json' is out of date because oldest output 'pkg0/index.js' is older than newest input 'pkg0/index.ts' + +[12:04:37 AM] Building project '/user/username/projects/myproject/pkg0/tsconfig.json'... + +[12:04:50 AM] Project 'pkg1/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:04:52 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg1/tsconfig.json'... + +[12:04:53 AM] Project 'pkg2/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:04:55 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg2/tsconfig.json'... + +[12:04:56 AM] Project 'pkg3/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:04:58 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg3/tsconfig.json'... + +[12:04:59 AM] Project 'pkg4/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:05:01 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg4/tsconfig.json'... + +[12:05:02 AM] Project 'pkg5/tsconfig.json' is up to date with .d.ts files from its dependencies + +[12:05:04 AM] Updating output timestamps of project '/user/username/projects/myproject/pkg5/tsconfig.json'... + + + +Program root files: ["/user/username/projects/myproject/pkg0/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg0/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg0/index.ts + +Semantic diagnostics in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts + +Shape signatures in builder refreshed for:: +/user/username/projects/myproject/pkg0/index.ts (computed .d.ts) + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg0/index.js] +"use strict"; +exports.__esModule = true; +exports.someConst3 = exports.someConst = exports.pkg0 = void 0; +exports.pkg0 = 0; +var someConst2 = 10; +exports.someConst = 10; +exports.someConst3 = 10; +var someConst4 = 10; + + +//// [/user/username/projects/myproject/pkg0/index.d.ts] file written with same contents +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }","affectsGlobalScope":true},{"version":"27277091473-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10;","signature":"-13679921373-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"} + +//// [/user/username/projects/myproject/pkg0/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ], + "fileInfos": { + "../../../../../a/lib/lib.d.ts": { + "version": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "signature": "-7698705165-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "27277091473-export const pkg0 = 0;const someConst2 = 10;export const someConst = 10;export const someConst3 = 10;const someConst4 = 10;", + "signature": "-13679921373-export declare const pkg0 = 0;\nexport declare const someConst = 10;\nexport declare const someConst3 = 10;\n" + } + }, + "options": { + "composite": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../../../../a/lib/lib.d.ts", + "./index.ts" + ] + }, + "version": "FakeTSVersion", + "size": 905 +} + +//// [/user/username/projects/myproject/pkg1/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg1/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg1/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg2/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg2/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg3/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg3/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg4/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg4/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg5/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg5/tsconfig.tsbuildinfo] file changed its modified time + +Change:: build pkg6,pkg7 + +Input:: + +Output:: +[12:05:05 AM] Project 'pkg6/tsconfig.json' is out of date because oldest output 'pkg6/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:05:06 AM] Building project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:05:08 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg6/tsconfig.json'... + +[12:05:09 AM] Project 'pkg7/tsconfig.json' is out of date because oldest output 'pkg7/index.js' is older than newest input 'pkg0/tsconfig.json' + +[12:05:10 AM] Building project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:05:12 AM] Updating unchanged output timestamps of project '/user/username/projects/myproject/pkg7/tsconfig.json'... + +[12:05:13 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/user/username/projects/myproject/pkg6/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg6/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg6/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +Program root files: ["/user/username/projects/myproject/pkg7/index.ts"] +Program options: {"composite":true,"watch":true,"configFilePath":"/user/username/projects/myproject/pkg7/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/pkg7/index.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/pkg6/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg6/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg6/tsconfig.tsbuildinfo] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.js] file changed its modified time +//// [/user/username/projects/myproject/pkg7/index.d.ts] file changed its modified time +//// [/user/username/projects/myproject/pkg7/tsconfig.tsbuildinfo] file changed its modified time + +Change:: No change + +Input:: + +Output:: + +WatchedFiles:: +/user/username/projects/myproject/pkg0/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg0/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg0/index.ts: + {"fileName":"/user/username/projects/myproject/pkg0/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg1/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg1/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg1/index.ts: + {"fileName":"/user/username/projects/myproject/pkg1/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg2/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg2/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg2/index.ts: + {"fileName":"/user/username/projects/myproject/pkg2/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg3/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg3/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg3/index.ts: + {"fileName":"/user/username/projects/myproject/pkg3/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg4/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg4/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg4/index.ts: + {"fileName":"/user/username/projects/myproject/pkg4/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg5/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg5/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg5/index.ts: + {"fileName":"/user/username/projects/myproject/pkg5/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg6/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg6/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg6/index.ts: + {"fileName":"/user/username/projects/myproject/pkg6/index.ts","pollingInterval":250} +/user/username/projects/myproject/pkg7/tsconfig.json: + {"fileName":"/user/username/projects/myproject/pkg7/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/pkg7/index.ts: + {"fileName":"/user/username/projects/myproject/pkg7/index.ts","pollingInterval":250} +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/pkg0: + {"directoryName":"/user/username/projects/myproject/pkg0","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg1: + {"directoryName":"/user/username/projects/myproject/pkg1","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg2: + {"directoryName":"/user/username/projects/myproject/pkg2","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg3: + {"directoryName":"/user/username/projects/myproject/pkg3","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg4: + {"directoryName":"/user/username/projects/myproject/pkg4","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg5: + {"directoryName":"/user/username/projects/myproject/pkg5","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg6: + {"directoryName":"/user/username/projects/myproject/pkg6","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject/pkg7: + {"directoryName":"/user/username/projects/myproject/pkg7","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + diff --git a/tests/baselines/reference/tsbuildWatch/watchEnvironment/same-file-in-multiple-projects-with-single-watcher-per-file.js b/tests/baselines/reference/tsbuildWatch/watchEnvironment/same-file-in-multiple-projects-with-single-watcher-per-file.js index 004678648fc..eb8d93cfa84 100644 --- a/tests/baselines/reference/tsbuildWatch/watchEnvironment/same-file-in-multiple-projects-with-single-watcher-per-file.js +++ b/tests/baselines/reference/tsbuildWatch/watchEnvironment/same-file-in-multiple-projects-with-single-watcher-per-file.js @@ -512,14 +512,14 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... tsconfig.json:1:10 - error TS18002: The 'files' list in config file '/user/username/projects/myproject/tsconfig.json' is empty. 1 {"files":[],"include":[],"references":[]}    ~~ -[12:01:53 AM] Found 1 error. Watching for file changes. +[12:01:54 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tsbuildWatch/watchEnvironment/same-file-in-multiple-projects.js b/tests/baselines/reference/tsbuildWatch/watchEnvironment/same-file-in-multiple-projects.js index 86e8b55819f..957c38acf1f 100644 --- a/tests/baselines/reference/tsbuildWatch/watchEnvironment/same-file-in-multiple-projects.js +++ b/tests/baselines/reference/tsbuildWatch/watchEnvironment/same-file-in-multiple-projects.js @@ -522,14 +522,14 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... tsconfig.json:1:10 - error TS18002: The 'files' list in config file '/user/username/projects/myproject/tsconfig.json' is empty. 1 {"files":[],"include":[],"references":[]}    ~~ -[12:01:53 AM] Found 1 error. Watching for file changes. +[12:01:54 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emit/emit-for-configured-projects/should-be-up-to-date-with-the-reference-map-changes.js b/tests/baselines/reference/tscWatch/emit/emit-for-configured-projects/should-be-up-to-date-with-the-reference-map-changes.js index 8856532f89c..b7d8a72b478 100644 --- a/tests/baselines/reference/tscWatch/emit/emit-for-configured-projects/should-be-up-to-date-with-the-reference-map-changes.js +++ b/tests/baselines/reference/tscWatch/emit/emit-for-configured-projects/should-be-up-to-date-with-the-reference-map-changes.js @@ -348,7 +348,7 @@ export let y = Foo(); Output:: >> Screen clear -[12:01:05 AM] File change detected. Starting incremental compilation... +[12:01:06 AM] File change detected. Starting incremental compilation... a/b/file1Consumer1.ts:1:9 - error TS2305: Module '"./moduleFile1"' has no exported member 'Foo'. @@ -365,7 +365,7 @@ Output:: 1 export let y = Foo();    ~~~ -[12:01:15 AM] Found 3 errors. Watching for file changes. +[12:01:16 AM] Found 3 errors. Watching for file changes. @@ -436,9 +436,9 @@ export var T: number;export function Foo() { }; Output:: >> Screen clear -[12:01:22 AM] File change detected. Starting incremental compilation... +[12:01:23 AM] File change detected. Starting incremental compilation... -[12:01:32 AM] Found 0 errors. Watching for file changes. +[12:01:33 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js index 10cfb6a2a9d..51117e25e61 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js @@ -496,14 +496,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -553,9 +553,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -668,9 +668,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js index 4aff6d522fa..bd4be621b59 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js @@ -286,14 +286,14 @@ Input:: Output:: >> Screen clear -[12:01:07 AM] File change detected. Starting incremental compilation... +[12:01:08 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:08 AM] Found 1 error. Watching for file changes. +[12:01:09 AM] Found 1 error. Watching for file changes. @@ -343,9 +343,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:12 AM] File change detected. Starting incremental compilation... +[12:01:13 AM] File change detected. Starting incremental compilation... -[12:01:16 AM] Found 0 errors. Watching for file changes. +[12:01:17 AM] Found 0 errors. Watching for file changes. @@ -400,9 +400,9 @@ Input:: Output:: >> Screen clear -[12:01:20 AM] File change detected. Starting incremental compilation... +[12:01:21 AM] File change detected. Starting incremental compilation... -[12:01:21 AM] Found 0 errors. Watching for file changes. +[12:01:22 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js index ba89be276ea..f65768a0f65 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js @@ -513,14 +513,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -570,9 +570,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -687,9 +687,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js index a858fd1aff6..1dc8be3fb41 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js @@ -300,14 +300,14 @@ Input:: Output:: >> Screen clear -[12:01:13 AM] File change detected. Starting incremental compilation... +[12:01:14 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:14 AM] Found 1 error. Watching for file changes. +[12:01:15 AM] Found 1 error. Watching for file changes. @@ -357,9 +357,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:18 AM] File change detected. Starting incremental compilation... +[12:01:19 AM] File change detected. Starting incremental compilation... -[12:01:25 AM] Found 0 errors. Watching for file changes. +[12:01:26 AM] Found 0 errors. Watching for file changes. @@ -415,9 +415,9 @@ Input:: Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:30 AM] Found 0 errors. Watching for file changes. +[12:01:31 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError-with-incremental.js index d01d060fe13..7db46adf321 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError-with-incremental.js @@ -499,14 +499,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -556,9 +556,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -670,9 +670,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError.js index bd644b773ba..3d60cfd090d 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError.js @@ -292,14 +292,14 @@ Input:: Output:: >> Screen clear -[12:01:07 AM] File change detected. Starting incremental compilation... +[12:01:08 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:08 AM] Found 1 error. Watching for file changes. +[12:01:09 AM] Found 1 error. Watching for file changes. @@ -349,9 +349,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:12 AM] File change detected. Starting incremental compilation... +[12:01:13 AM] File change detected. Starting incremental compilation... -[12:01:16 AM] Found 0 errors. Watching for file changes. +[12:01:17 AM] Found 0 errors. Watching for file changes. @@ -406,9 +406,9 @@ Input:: Output:: >> Screen clear -[12:01:20 AM] File change detected. Starting incremental compilation... +[12:01:21 AM] File change detected. Starting incremental compilation... -[12:01:21 AM] Found 0 errors. Watching for file changes. +[12:01:22 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError-with-incremental.js index a7e1626c8dc..b2b30a9513b 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError-with-incremental.js @@ -510,14 +510,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -567,9 +567,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -683,9 +683,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError.js index efbd1eccf80..829dd0f3941 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError.js @@ -300,14 +300,14 @@ Input:: Output:: >> Screen clear -[12:01:13 AM] File change detected. Starting incremental compilation... +[12:01:14 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:14 AM] Found 1 error. Watching for file changes. +[12:01:15 AM] Found 1 error. Watching for file changes. @@ -357,9 +357,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:18 AM] File change detected. Starting incremental compilation... +[12:01:19 AM] File change detected. Starting incremental compilation... -[12:01:25 AM] Found 0 errors. Watching for file changes. +[12:01:26 AM] Found 0 errors. Watching for file changes. @@ -415,9 +415,9 @@ Input:: Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:30 AM] Found 0 errors. Watching for file changes. +[12:01:31 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js index e42e43bd8b6..d8cd62791cc 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js @@ -496,14 +496,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -553,9 +553,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -668,9 +668,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js index 9dde0054674..3a288126c5e 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js @@ -496,14 +496,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -553,9 +553,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -668,9 +668,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js index bfdf6d81126..8658d4b3700 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js @@ -513,14 +513,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -570,9 +570,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -687,9 +687,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js index 3f2c70b67c6..d5ad861e83a 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js @@ -513,14 +513,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -570,9 +570,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -687,9 +687,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError-with-incremental.js index 050317bc3b8..0550d9e3754 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError-with-incremental.js @@ -499,14 +499,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -556,9 +556,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -670,9 +670,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError.js index ab3c4d7927f..7841b85e1a3 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError.js @@ -499,14 +499,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -556,9 +556,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -670,9 +670,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError-with-incremental.js index 036a97dadd0..047b9b20866 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError-with-incremental.js @@ -510,14 +510,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -567,9 +567,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -683,9 +683,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError.js index 35a4b1f8042..ab45db67d7c 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError.js @@ -510,14 +510,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -567,9 +567,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -683,9 +683,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError-with-incremental.js index 7df8484e459..1bb28496799 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError-with-incremental.js @@ -493,14 +493,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -550,9 +550,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -664,9 +664,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError.js index ecd40437efd..87e7b5a833c 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError.js @@ -493,14 +493,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -550,9 +550,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -664,9 +664,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError-with-incremental.js index b320338ade2..8dcd32c8cf0 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError-with-incremental.js @@ -510,14 +510,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -567,9 +567,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -683,9 +683,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError.js index e4a2935993f..fb94f2fd63a 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError.js @@ -510,14 +510,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -567,9 +567,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -683,9 +683,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError-with-incremental.js index b6855669b17..502e66dfd08 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError-with-incremental.js @@ -493,14 +493,14 @@ Input:: Output:: >> Screen clear -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:25 AM] Found 1 error. Watching for file changes. +[12:01:26 AM] Found 1 error. Watching for file changes. @@ -550,9 +550,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:36 AM] Found 0 errors. Watching for file changes. +[12:01:37 AM] Found 0 errors. Watching for file changes. @@ -664,9 +664,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError.js index eeeb35625e4..0e0bb8d9595 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError.js @@ -286,14 +286,14 @@ Input:: Output:: >> Screen clear -[12:01:07 AM] File change detected. Starting incremental compilation... +[12:01:08 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:08 AM] Found 1 error. Watching for file changes. +[12:01:09 AM] Found 1 error. Watching for file changes. @@ -343,9 +343,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:12 AM] File change detected. Starting incremental compilation... +[12:01:13 AM] File change detected. Starting incremental compilation... -[12:01:16 AM] Found 0 errors. Watching for file changes. +[12:01:17 AM] Found 0 errors. Watching for file changes. @@ -400,9 +400,9 @@ Input:: Output:: >> Screen clear -[12:01:20 AM] File change detected. Starting incremental compilation... +[12:01:21 AM] File change detected. Starting incremental compilation... -[12:01:21 AM] Found 0 errors. Watching for file changes. +[12:01:22 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError-with-incremental.js index 83a5707d251..1e97b1ae02c 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError-with-incremental.js @@ -510,14 +510,14 @@ Input:: Output:: >> Screen clear -[12:01:30 AM] File change detected. Starting incremental compilation... +[12:01:31 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:31 AM] Found 1 error. Watching for file changes. +[12:01:32 AM] Found 1 error. Watching for file changes. @@ -567,9 +567,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:35 AM] File change detected. Starting incremental compilation... +[12:01:36 AM] File change detected. Starting incremental compilation... -[12:01:45 AM] Found 0 errors. Watching for file changes. +[12:01:46 AM] Found 0 errors. Watching for file changes. @@ -683,9 +683,9 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... -[12:01:53 AM] Found 0 errors. Watching for file changes. +[12:01:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError.js index e95bfc9ace1..b8533dc49cb 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError.js @@ -300,14 +300,14 @@ Input:: Output:: >> Screen clear -[12:01:13 AM] File change detected. Starting incremental compilation... +[12:01:14 AM] File change detected. Starting incremental compilation... src/main.ts:2:7 - error TS2322: Type 'number' is not assignable to type 'string'. 2 const a: string = 10;    ~ -[12:01:14 AM] Found 1 error. Watching for file changes. +[12:01:15 AM] Found 1 error. Watching for file changes. @@ -357,9 +357,9 @@ const a: string = "hello"; Output:: >> Screen clear -[12:01:18 AM] File change detected. Starting incremental compilation... +[12:01:19 AM] File change detected. Starting incremental compilation... -[12:01:25 AM] Found 0 errors. Watching for file changes. +[12:01:26 AM] Found 0 errors. Watching for file changes. @@ -415,9 +415,9 @@ Input:: Output:: >> Screen clear -[12:01:29 AM] File change detected. Starting incremental compilation... +[12:01:30 AM] File change detected. Starting incremental compilation... -[12:01:30 AM] Found 0 errors. Watching for file changes. +[12:01:31 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/programUpdates/extended-source-files-are-watched.js b/tests/baselines/reference/tscWatch/programUpdates/extended-source-files-are-watched.js index efaad4632b2..6861e7c6c78 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/extended-source-files-are-watched.js +++ b/tests/baselines/reference/tscWatch/programUpdates/extended-source-files-are-watched.js @@ -250,9 +250,9 @@ Input:: Output:: >> Screen clear -[12:00:41 AM] File change detected. Starting incremental compilation... +[12:00:42 AM] File change detected. Starting incremental compilation... -[12:00:42 AM] Found 0 errors. Watching for file changes. +[12:00:43 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/programUpdates/updates-errors-correctly-when-declaration-emit-is-disabled-in-compiler-options.js b/tests/baselines/reference/tscWatch/programUpdates/updates-errors-correctly-when-declaration-emit-is-disabled-in-compiler-options.js index 4ae5b9f965f..b152b6d1508 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/updates-errors-correctly-when-declaration-emit-is-disabled-in-compiler-options.js +++ b/tests/baselines/reference/tscWatch/programUpdates/updates-errors-correctly-when-declaration-emit-is-disabled-in-compiler-options.js @@ -266,9 +266,9 @@ export default test; Output:: >> Screen clear -[12:00:43 AM] File change detected. Starting incremental compilation... +[12:00:44 AM] File change detected. Starting incremental compilation... -[12:00:44 AM] Found 0 errors. Watching for file changes. +[12:00:45 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-new-file-is-added-to-the-referenced-project.js b/tests/baselines/reference/tscWatch/programUpdates/when-new-file-is-added-to-the-referenced-project.js index c1884b9430b..5aa5c424ac1 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/when-new-file-is-added-to-the-referenced-project.js +++ b/tests/baselines/reference/tscWatch/programUpdates/when-new-file-is-added-to-the-referenced-project.js @@ -551,14 +551,14 @@ DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/pro Project: /user/username/projects/myproject/projects/project1/tsconfig.json Detected output file: /user/username/projects/myproject/projects/project1/class3.d.ts Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Synchronizing program -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"watch":true,"project":"/user/username/projects/myproject/projects/project2/tsconfig.json","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} projectReferences: [{"path":"/user/username/projects/myproject/projects/project1","originalPath":"../project1"}] FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/projects/project1/class3.d.ts 250 undefined Source file -[12:01:34 AM] Found 0 errors. Watching for file changes. +[12:01:35 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-skipLibCheck-and-skipDefaultLibCheck-changes.js b/tests/baselines/reference/tscWatch/programUpdates/when-skipLibCheck-and-skipDefaultLibCheck-changes.js index 0f93f9716b7..dbd2fe115c1 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/when-skipLibCheck-and-skipDefaultLibCheck-changes.js +++ b/tests/baselines/reference/tscWatch/programUpdates/when-skipLibCheck-and-skipDefaultLibCheck-changes.js @@ -283,7 +283,7 @@ Input:: Output:: >> Screen clear -[12:00:45 AM] File change detected. Starting incremental compilation... +[12:00:46 AM] File change detected. Starting incremental compilation... a.ts:2:5 - error TS2687: All declarations of 'fullscreen' must have identical modifiers. @@ -295,7 +295,7 @@ Output:: 2 fullscreen: boolean;    ~~~~~~~~~~ -[12:00:46 AM] Found 2 errors. Watching for file changes. +[12:00:47 AM] Found 2 errors. Watching for file changes. @@ -342,14 +342,14 @@ Input:: Output:: >> Screen clear -[12:00:50 AM] File change detected. Starting incremental compilation... +[12:00:51 AM] File change detected. Starting incremental compilation... a.ts:2:5 - error TS2687: All declarations of 'fullscreen' must have identical modifiers. 2 fullscreen: boolean;    ~~~~~~~~~~ -[12:00:51 AM] Found 1 error. Watching for file changes. +[12:00:52 AM] Found 1 error. Watching for file changes. @@ -397,7 +397,7 @@ Input:: Output:: >> Screen clear -[12:00:55 AM] File change detected. Starting incremental compilation... +[12:00:56 AM] File change detected. Starting incremental compilation... ../../../../a/lib/lib.d.ts:13:14 - error TS2687: All declarations of 'fullscreen' must have identical modifiers. @@ -414,7 +414,7 @@ Output:: 2 fullscreen: boolean;    ~~~~~~~~~~ -[12:00:56 AM] Found 3 errors. Watching for file changes. +[12:00:57 AM] Found 3 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references-in-different-folders-with-no-files-clause.js b/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references-in-different-folders-with-no-files-clause.js index 6cd4f1cec3e..4df4568b51a 100644 --- a/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references-in-different-folders-with-no-files-clause.js +++ b/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references-in-different-folders-with-no-files-clause.js @@ -740,9 +740,9 @@ Input:: Output:: >> Screen clear -[12:01:49 AM] File change detected. Starting incremental compilation... +[12:01:50 AM] File change detected. Starting incremental compilation... -[12:01:50 AM] Found 0 errors. Watching for file changes. +[12:01:51 AM] Found 0 errors. Watching for file changes. @@ -822,14 +822,14 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... c/tsconfig.json:1:84 - error TS6053: File '/user/username/projects/transitiveReferences/b' not found. 1 {"compilerOptions":{"baseUrl":"./","paths":{"@ref/*":["../refs/*"]}},"references":[{"path":"../b"}]}    ~~~~~~~~~~~~~~~ -[12:01:59 AM] Found 1 error. Watching for file changes. +[12:02:00 AM] Found 1 error. Watching for file changes. @@ -910,9 +910,9 @@ Input:: Output:: >> Screen clear -[12:02:02 AM] File change detected. Starting incremental compilation... +[12:02:03 AM] File change detected. Starting incremental compilation... -[12:02:06 AM] Found 0 errors. Watching for file changes. +[12:02:07 AM] Found 0 errors. Watching for file changes. @@ -1007,14 +1007,14 @@ Input:: Output:: >> Screen clear -[12:02:08 AM] File change detected. Starting incremental compilation... +[12:02:09 AM] File change detected. Starting incremental compilation... b/tsconfig.json:1:96 - error TS6053: File '/user/username/projects/transitiveReferences/a' not found. 1 {"compilerOptions":{"composite":true,"baseUrl":"./","paths":{"@ref/*":["../*"]}},"references":[{"path":"../a"}]}    ~~~~~~~~~~~~~~~ -[12:02:12 AM] Found 1 error. Watching for file changes. +[12:02:13 AM] Found 1 error. Watching for file changes. @@ -1106,9 +1106,9 @@ Input:: Output:: >> Screen clear -[12:02:15 AM] File change detected. Starting incremental compilation... +[12:02:17 AM] File change detected. Starting incremental compilation... -[12:02:16 AM] Found 0 errors. Watching for file changes. +[12:02:18 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references-in-different-folders.js b/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references-in-different-folders.js index 317f977848d..f4c5f29ecb9 100644 --- a/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references-in-different-folders.js +++ b/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references-in-different-folders.js @@ -719,9 +719,9 @@ Input:: Output:: >> Screen clear -[12:01:49 AM] File change detected. Starting incremental compilation... +[12:01:50 AM] File change detected. Starting incremental compilation... -[12:01:50 AM] Found 0 errors. Watching for file changes. +[12:01:51 AM] Found 0 errors. Watching for file changes. @@ -796,14 +796,14 @@ Input:: Output:: >> Screen clear -[12:01:52 AM] File change detected. Starting incremental compilation... +[12:01:53 AM] File change detected. Starting incremental compilation... c/tsconfig.json:1:105 - error TS6053: File '/user/username/projects/transitiveReferences/b' not found. 1 {"compilerOptions":{"baseUrl":"./","paths":{"@ref/*":["../refs/*"]}},"files":["index.ts"],"references":[{"path":"../b"}]}    ~~~~~~~~~~~~~~~ -[12:01:59 AM] Found 1 error. Watching for file changes. +[12:02:00 AM] Found 1 error. Watching for file changes. @@ -882,9 +882,9 @@ Input:: Output:: >> Screen clear -[12:02:02 AM] File change detected. Starting incremental compilation... +[12:02:03 AM] File change detected. Starting incremental compilation... -[12:02:06 AM] Found 0 errors. Watching for file changes. +[12:02:07 AM] Found 0 errors. Watching for file changes. @@ -975,14 +975,14 @@ Input:: Output:: >> Screen clear -[12:02:08 AM] File change detected. Starting incremental compilation... +[12:02:09 AM] File change detected. Starting incremental compilation... b/tsconfig.json:1:117 - error TS6053: File '/user/username/projects/transitiveReferences/a' not found. 1 {"compilerOptions":{"composite":true,"baseUrl":"./","paths":{"@ref/*":["../*"]}},"files":["index.ts"],"references":[{"path":"../a"}]}    ~~~~~~~~~~~~~~~ -[12:02:12 AM] Found 1 error. Watching for file changes. +[12:02:13 AM] Found 1 error. Watching for file changes. @@ -1071,9 +1071,9 @@ Input:: Output:: >> Screen clear -[12:02:15 AM] File change detected. Starting incremental compilation... +[12:02:17 AM] File change detected. Starting incremental compilation... -[12:02:16 AM] Found 0 errors. Watching for file changes. +[12:02:18 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references.js b/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references.js index 1ff6e1dd598..92e69d2b4ce 100644 --- a/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references.js +++ b/tests/baselines/reference/tscWatch/projectsWithReferences/on-transitive-references.js @@ -694,9 +694,9 @@ Input:: Output:: >> Screen clear -[12:01:43 AM] File change detected. Starting incremental compilation... +[12:01:44 AM] File change detected. Starting incremental compilation... -[12:01:44 AM] Found 0 errors. Watching for file changes. +[12:01:45 AM] Found 0 errors. Watching for file changes. @@ -765,14 +765,14 @@ Input:: Output:: >> Screen clear -[12:01:46 AM] File change detected. Starting incremental compilation... +[12:01:47 AM] File change detected. Starting incremental compilation... tsconfig.c.json:1:100 - error TS6053: File '/user/username/projects/transitiveReferences/tsconfig.b.json' not found. 1 {"files":["c.ts"],"compilerOptions":{"baseUrl":"./","paths":{"@ref/*":["./refs/*"]}},"references":[{"path":"tsconfig.b.json"}]}    ~~~~~~~~~~~~~~~~~~~~~~~~~~ -[12:01:53 AM] Found 1 error. Watching for file changes. +[12:01:54 AM] Found 1 error. Watching for file changes. @@ -856,9 +856,9 @@ Input:: Output:: >> Screen clear -[12:01:56 AM] File change detected. Starting incremental compilation... +[12:01:57 AM] File change detected. Starting incremental compilation... -[12:02:00 AM] Found 0 errors. Watching for file changes. +[12:02:01 AM] Found 0 errors. Watching for file changes. @@ -939,14 +939,14 @@ Input:: Output:: >> Screen clear -[12:02:02 AM] File change detected. Starting incremental compilation... +[12:02:03 AM] File change detected. Starting incremental compilation... tsconfig.b.json:10:21 - error TS6053: File '/user/username/projects/transitiveReferences/tsconfig.a.json' not found. 10 "references": [ { "path": "tsconfig.a.json" } ]    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -[12:02:06 AM] Found 1 error. Watching for file changes. +[12:02:07 AM] Found 1 error. Watching for file changes. @@ -1028,9 +1028,9 @@ Input:: Output:: >> Screen clear -[12:02:09 AM] File change detected. Starting incremental compilation... +[12:02:11 AM] File change detected. Starting incremental compilation... -[12:02:10 AM] Found 0 errors. Watching for file changes. +[12:02:12 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/resolutionCache/works-when-installing-something-in-node_modules-or-@types-when-there-is-no-notification-from-fs-for-index-file.js b/tests/baselines/reference/tscWatch/resolutionCache/works-when-installing-something-in-node_modules-or-@types-when-there-is-no-notification-from-fs-for-index-file.js index 0f536d2d6fa..0048cba01b2 100644 --- a/tests/baselines/reference/tscWatch/resolutionCache/works-when-installing-something-in-node_modules-or-@types-when-there-is-no-notification-from-fs-for-index-file.js +++ b/tests/baselines/reference/tscWatch/resolutionCache/works-when-installing-something-in-node_modules-or-@types-when-there-is-no-notification-from-fs-for-index-file.js @@ -483,7 +483,7 @@ Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myprojec Scheduling update Reloading new file names and options Synchronizing program -[12:01:15 AM] File change detected. Starting incremental compilation... +[12:01:16 AM] File change detected. Starting incremental compilation... CreatingProgramWith:: roots: ["/user/username/projects/myproject/worker.ts"] @@ -493,7 +493,7 @@ FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/ FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types/node/ts3.6/base.d.ts 250 undefined Source file FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types/node/globals.d.ts 250 undefined Source file FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/node_modules/node/package.json 2000 undefined package.json file -[12:01:19 AM] Found 0 errors. Watching for file changes. +[12:01:20 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine-without-implementing-useSourceOfProjectReferenceRedirect.js b/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine-without-implementing-useSourceOfProjectReferenceRedirect.js index 4118a2f21c3..a32a55beb1d 100644 --- a/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine-without-implementing-useSourceOfProjectReferenceRedirect.js +++ b/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine-without-implementing-useSourceOfProjectReferenceRedirect.js @@ -551,14 +551,14 @@ DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/pro Project: /user/username/projects/myproject/projects/project1/tsconfig.json Detected output file: /user/username/projects/myproject/projects/project1/class3.d.ts Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Synchronizing program -[12:01:24 AM] File change detected. Starting incremental compilation... +[12:01:25 AM] File change detected. Starting incremental compilation... CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} projectReferences: [{"path":"/user/username/projects/myproject/projects/project1","originalPath":"../project1"}] FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/projects/project1/class3.d.ts 250 undefined Source file -[12:01:34 AM] Found 0 errors. Watching for file changes. +[12:01:35 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory-with-outDir-and-declaration-enabled.js b/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory-with-outDir-and-declaration-enabled.js index 37fd4927ba2..5d67ef1a09d 100644 --- a/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory-with-outDir-and-declaration-enabled.js +++ b/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory-with-outDir-and-declaration-enabled.js @@ -172,9 +172,9 @@ Input:: Output:: >> Screen clear -[12:00:40 AM] File change detected. Starting incremental compilation... +[12:00:41 AM] File change detected. Starting incremental compilation... -[12:00:45 AM] Found 0 errors. Watching for file changes. +[12:00:46 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory.js b/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory.js index baaf9b75c86..de175ffc95f 100644 --- a/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory.js +++ b/tests/baselines/reference/tscWatch/watchEnvironment/watchDirectories/with-non-synchronous-watch-directory.js @@ -382,9 +382,9 @@ Input:: Output:: >> Screen clear -[12:00:49 AM] File change detected. Starting incremental compilation... +[12:00:50 AM] File change detected. Starting incremental compilation... -[12:00:53 AM] Found 0 errors. Watching for file changes. +[12:00:54 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/watchEnvironment/watchFile/using-dynamic-priority-polling.js b/tests/baselines/reference/tscWatch/watchEnvironment/watchFile/using-dynamic-priority-polling.js index 0978c331e61..1f6ca1f6db3 100644 --- a/tests/baselines/reference/tscWatch/watchEnvironment/watchFile/using-dynamic-priority-polling.js +++ b/tests/baselines/reference/tscWatch/watchEnvironment/watchFile/using-dynamic-priority-polling.js @@ -92,9 +92,9 @@ Input:: Output:: >> Screen clear -[12:00:22 AM] File change detected. Starting incremental compilation... +[12:00:45 AM] File change detected. Starting incremental compilation... -[12:00:26 AM] Found 0 errors. Watching for file changes. +[12:00:49 AM] Found 0 errors. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/watchEnvironment/watchFile/using-fixed-chunk-size-polling.js b/tests/baselines/reference/tscWatch/watchEnvironment/watchFile/using-fixed-chunk-size-polling.js index eeeead92f93..a06c86a3d88 100644 --- a/tests/baselines/reference/tscWatch/watchEnvironment/watchFile/using-fixed-chunk-size-polling.js +++ b/tests/baselines/reference/tscWatch/watchEnvironment/watchFile/using-fixed-chunk-size-polling.js @@ -117,9 +117,9 @@ Input:: Output:: >> Screen clear -[12:00:26 AM] File change detected. Starting incremental compilation... +[12:00:32 AM] File change detected. Starting incremental compilation... -[12:00:33 AM] Found 0 errors. Watching for file changes. +[12:00:39 AM] Found 0 errors. Watching for file changes.