diff --git a/src/compiler/program.ts b/src/compiler/program.ts index dfef50e9a9dc8..75f9a6b730798 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -87,6 +87,7 @@ import { fileIncludeReasonToDiagnostics, FilePreprocessingDiagnostics, FilePreprocessingDiagnosticsKind, + FilePreprocessingLibReferenceDiagnostic, FileReference, filter, find, @@ -1191,10 +1192,13 @@ export function getLibraryNameFromLibFileName(libFileName: string) { return "@typescript/lib-" + path; } +function getLibNameFromLibReference(libReference: FileReference) { + return toFileNameLowerCase(libReference.fileName); +} + function getLibFileNameFromLibReference(libReference: FileReference) { - const libName = toFileNameLowerCase(libReference.fileName); - const libFileName = libMap.get(libName); - return { libName, libFileName }; + const libName = getLibNameFromLibReference(libReference); + return libMap.get(libName); } interface DiagnosticCache { @@ -1500,6 +1504,16 @@ export const plainJSErrors = new Set([ Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value.code, ]); +interface LazyProgramDiagnosticExplainingFile { + file: SourceFile; + diagnostic: DiagnosticMessage; + args: DiagnosticArguments; +} +interface FileReasonToChainCache { + fileIncludeReasonDetails: DiagnosticMessageChain | undefined; + redirectInfo: DiagnosticMessageChain[] | undefined; + details?: DiagnosticMessageChain[]; +} /** * Determine if source file needs to be re-created even if its text hasn't changed */ @@ -1570,6 +1584,9 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg let classifiableNames: Set<__String>; const ambientModuleNameToUnmodifiedFileName = new Map(); let fileReasons = createMultiMap(); + let filesWithReferencesProcessed: Set | undefined; + let fileReasonsToChain: Map | undefined; + let reasonToRelatedInfo: Map | undefined; const cachedBindAndCheckDiagnosticsForFile: DiagnosticCache = {}; const cachedDeclarationDiagnosticsForFile: DiagnosticCache = {}; @@ -1620,6 +1637,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg * Otherwise fileProcessingDiagnostics is correct locations so that the diagnostics can be reported in all structure use scenarios */ const programDiagnostics = createDiagnosticCollection(); + let lazyProgramDiagnosticExplainingFile: LazyProgramDiagnosticExplainingFile[] | undefined = []; const currentDirectory = host.getCurrentDirectory(); const supportedExtensions = getSupportedExtensions(options); const supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions); @@ -1866,6 +1884,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg files = stableSort(processingDefaultLibFiles, compareDefaultLibFiles).concat(processingOtherFiles); processingDefaultLibFiles = undefined; processingOtherFiles = undefined; + filesWithReferencesProcessed = undefined; } // Release any files we have acquired in the old program but are @@ -1996,21 +2015,6 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg onProgramCreateComplete(); - // Add file processingDiagnostics - fileProcessingDiagnostics?.forEach(diagnostic => { - switch (diagnostic.kind) { - case FilePreprocessingDiagnosticsKind.FilePreprocessingFileExplainingDiagnostic: - return programDiagnostics.add(createDiagnosticExplainingFile(diagnostic.file && getSourceFileByPath(diagnostic.file), diagnostic.fileProcessingReason, diagnostic.diagnostic, diagnostic.args || emptyArray)); - case FilePreprocessingDiagnosticsKind.FilePreprocessingReferencedDiagnostic: - const { file, pos, end } = getReferencedFileLocation(program, diagnostic.reason) as ReferenceFileLocation; - return programDiagnostics.add(createFileDiagnostic(file, Debug.checkDefined(pos), Debug.checkDefined(end) - pos, diagnostic.diagnostic, ...diagnostic.args || emptyArray)); - case FilePreprocessingDiagnosticsKind.ResolutionDiagnostics: - return diagnostic.diagnostics.forEach(d => programDiagnostics.add(d)); - default: - Debug.assertNever(diagnostic); - } - }); - verifyCompilerOptions(); performance.mark("afterProgram"); performance.measure("Program", "beforeProgram", "afterProgram"); @@ -2018,6 +2022,56 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg return program; + function updateAndGetProgramDiagnostics() { + if (lazyProgramDiagnosticExplainingFile) { + // Add file processingDiagnostics + fileProcessingDiagnostics?.forEach(diagnostic => { + switch (diagnostic.kind) { + case FilePreprocessingDiagnosticsKind.FilePreprocessingFileExplainingDiagnostic: + return programDiagnostics.add( + createDiagnosticExplainingFile( + diagnostic.file && getSourceFileByPath(diagnostic.file), + diagnostic.fileProcessingReason, + diagnostic.diagnostic, + diagnostic.args || emptyArray, + ), + ); + case FilePreprocessingDiagnosticsKind.FilePreprocessingLibReferenceDiagnostic: + return programDiagnostics.add(filePreprocessingLibreferenceDiagnostic(diagnostic)); + case FilePreprocessingDiagnosticsKind.ResolutionDiagnostics: + return diagnostic.diagnostics.forEach(d => programDiagnostics.add(d)); + default: + Debug.assertNever(diagnostic); + } + }); + lazyProgramDiagnosticExplainingFile.forEach(({ file, diagnostic, args }) => + programDiagnostics.add( + createDiagnosticExplainingFile(file, /*fileProcessingReason*/ undefined, diagnostic, args), + ) + ); + lazyProgramDiagnosticExplainingFile = undefined; + fileReasonsToChain = undefined; + reasonToRelatedInfo = undefined; + } + return programDiagnostics; + } + + function filePreprocessingLibreferenceDiagnostic({ reason }: FilePreprocessingLibReferenceDiagnostic) { + const { file, pos, end } = getReferencedFileLocation(program, reason) as ReferenceFileLocation; + const libReference = file.libReferenceDirectives[reason.index]; + const libName = getLibNameFromLibReference(libReference); + const unqualifiedLibName = removeSuffix(removePrefix(libName, "lib."), ".d.ts"); + const suggestion = getSpellingSuggestion(unqualifiedLibName, libs, identity); + return createFileDiagnostic( + file, + Debug.checkDefined(pos), + Debug.checkDefined(end) - pos, + suggestion ? Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1 : Diagnostics.Cannot_find_lib_definition_for_0, + libName, + suggestion!, + ); + } + function getResolvedModule(file: SourceFile, moduleName: string, mode: ResolutionMode) { return resolvedModules?.get(file.path)?.get(moduleName, mode); } @@ -2881,7 +2935,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg return emptyArray; } - const programDiagnosticsInFile = programDiagnostics.getDiagnostics(sourceFile.fileName); + const programDiagnosticsInFile = updateAndGetProgramDiagnostics().getDiagnostics(sourceFile.fileName); if (!sourceFile.commentDirectives?.length) { return programDiagnosticsInFile; } @@ -3327,16 +3381,16 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg function getOptionsDiagnostics(): SortedReadonlyArray { return sortAndDeduplicateDiagnostics(concatenate( - programDiagnostics.getGlobalDiagnostics(), + updateAndGetProgramDiagnostics().getGlobalDiagnostics(), getOptionsDiagnosticsOfConfigFile(), )); } function getOptionsDiagnosticsOfConfigFile() { if (!options.configFile) return emptyArray; - let diagnostics = programDiagnostics.getDiagnostics(options.configFile.fileName); + let diagnostics = updateAndGetProgramDiagnostics().getDiagnostics(options.configFile.fileName); forEachResolvedProjectReference(resolvedRef => { - diagnostics = concatenate(diagnostics, programDiagnostics.getDiagnostics(resolvedRef.sourceFile.fileName)); + diagnostics = concatenate(diagnostics, updateAndGetProgramDiagnostics().getDiagnostics(resolvedRef.sourceFile.fileName)); }); return diagnostics; } @@ -3514,7 +3568,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg } function getLibFileFromReference(ref: FileReference) { - const { libFileName } = getLibFileNameFromLibReference(ref); + const libFileName = getLibFileNameFromLibReference(ref); const actualFileName = libFileName && resolvedLibReferences?.get(libFileName)?.actual; return actualFileName !== undefined ? getSourceFile(actualFileName) : undefined; } @@ -3666,10 +3720,10 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg const originalFileName = fileName; if (filesByName.has(path)) { const file = filesByName.get(path); - addFileIncludeReason(file || undefined, reason); + const addedReason = addFileIncludeReason(file || undefined, reason, /*checkExisting*/ true); // try to check if we've already seen this file but with a different casing in path // NOTE: this only makes sense for case-insensitive file systems, and only on files which are not redirected - if (file && !(options.forceConsistentCasingInFileNames === false)) { + if (file && addedReason && !(options.forceConsistentCasingInFileNames === false)) { const checkedName = file.fileName; const isRedirect = toPath(checkedName) !== toPath(fileName); if (isRedirect) { @@ -3746,7 +3800,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg const dupFile = createRedirectedSourceFile(fileFromPackageId, file!, fileName, path, toPath(fileName), originalFileName, sourceFileOptions); redirectTargetsMap.add(fileFromPackageId.path, fileName); addFileToFilesByName(dupFile, path, fileName, redirectedPath); - addFileIncludeReason(dupFile, reason); + addFileIncludeReason(dupFile, reason, /*checkExisting*/ false); sourceFileToPackageName.set(path, packageIdToPackageName(packageId)); processingOtherFiles!.push(dupFile); return dupFile; @@ -3767,7 +3821,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg file.originalFileName = originalFileName; file.packageJsonLocations = sourceFileOptions.packageJsonLocations?.length ? sourceFileOptions.packageJsonLocations : undefined; file.packageJsonScope = sourceFileOptions.packageJsonScope; - addFileIncludeReason(file, reason); + addFileIncludeReason(file, reason, /*checkExisting*/ false); if (host.useCaseSensitiveFileNames()) { const pathLowerCase = toFileNameLowerCase(path); @@ -3800,12 +3854,17 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg else { processingOtherFiles!.push(file); } + (filesWithReferencesProcessed ??= new Set()).add(file.path); } return file; } - function addFileIncludeReason(file: SourceFile | undefined, reason: FileIncludeReason) { - if (file) fileReasons.add(file.path, reason); + function addFileIncludeReason(file: SourceFile | undefined, reason: FileIncludeReason, checkExisting: boolean) { + if (file && (!checkExisting || !isReferencedFile(reason) || !filesWithReferencesProcessed?.has(reason.file))) { + fileReasons.add(file.path, reason); + return true; + } + return false; } function addFileToFilesByName(file: SourceFile | undefined, path: Path, fileName: string, redirectedPath: Path | undefined) { @@ -4067,21 +4126,15 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg function processLibReferenceDirectives(file: SourceFile) { forEach(file.libReferenceDirectives, (libReference, index) => { - const { libName, libFileName } = getLibFileNameFromLibReference(libReference); + const libFileName = getLibFileNameFromLibReference(libReference); if (libFileName) { // we ignore any 'no-default-lib' reference set on this file. processRootFile(pathForLibFile(libFileName), /*isDefaultLib*/ true, /*ignoreNoDefaultLib*/ true, { kind: FileIncludeKind.LibReferenceDirective, file: file.path, index }); } else { - const unqualifiedLibName = removeSuffix(removePrefix(libName, "lib."), ".d.ts"); - const suggestion = getSpellingSuggestion(unqualifiedLibName, libs, identity); - const diagnostic = suggestion ? Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1 : Diagnostics.Cannot_find_lib_definition_for_0; - const args = suggestion ? [libName, suggestion] : [libName]; (fileProcessingDiagnostics ||= []).push({ - kind: FilePreprocessingDiagnosticsKind.FilePreprocessingReferencedDiagnostic, + kind: FilePreprocessingDiagnosticsKind.FilePreprocessingLibReferenceDiagnostic, reason: { kind: FileIncludeKind.LibReferenceDirective, file: file.path, index }, - diagnostic, - args, }); } }); @@ -4166,7 +4219,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg if (!sourceFile.isDeclarationFile) { const absoluteSourceFilePath = host.getCanonicalFileName(getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory)); if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) { - addProgramDiagnosticExplainingFile( + addLazyProgramDiagnosticExplainingFile( sourceFile, Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, [sourceFile.fileName, rootDirectory], @@ -4289,7 +4342,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg for (const file of files) { // Ignore file that is not emitted if (sourceFileMayBeEmitted(file, program) && !rootPaths.has(file.path)) { - addProgramDiagnosticExplainingFile( + addLazyProgramDiagnosticExplainingFile( file, Diagnostics.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern, [file.fileName, options.configFilePath || ""], @@ -4679,38 +4732,122 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg }); } - function createDiagnosticExplainingFile(file: SourceFile | undefined, fileProcessingReason: FileIncludeReason | undefined, diagnostic: DiagnosticMessage, args: DiagnosticArguments | undefined): Diagnostic { + function createDiagnosticExplainingFile(file: SourceFile | undefined, fileProcessingReason: FileIncludeReason | undefined, diagnostic: DiagnosticMessage, args: DiagnosticArguments): Diagnostic { + let seenReasons: Set | undefined; + const reasons = file && fileReasons.get(file.path); let fileIncludeReasons: DiagnosticMessageChain[] | undefined; - let relatedInfo: Diagnostic[] | undefined; + let relatedInfo: DiagnosticWithLocation[] | undefined; let locationReason = isReferencedFile(fileProcessingReason) ? fileProcessingReason : undefined; - if (file) fileReasons.get(file.path)?.forEach(processReason); + let fileIncludeReasonDetails: DiagnosticMessageChain | undefined; + let redirectInfo: DiagnosticMessageChain[] | undefined; + let cachedChain = file && fileReasonsToChain?.get(file.path); + let chain: DiagnosticMessageChain | undefined; + if (cachedChain) { + if (cachedChain.fileIncludeReasonDetails) { + seenReasons = new Set(reasons); + reasons?.forEach(populateRelatedInfo); + } + else { + reasons?.forEach(processReason); + } + redirectInfo = cachedChain.redirectInfo; + } + else { + reasons?.forEach(processReason); + redirectInfo = file && explainIfFileIsRedirectAndImpliedFormat(file, getCompilerOptionsForFile(file)); + } + if (fileProcessingReason) processReason(fileProcessingReason); + const processedExtraReason = seenReasons?.size !== reasons?.length; + // If we have location and there is only one reason file is in which is the location, dont add details for file include - if (locationReason && fileIncludeReasons?.length === 1) fileIncludeReasons = undefined; + if (locationReason && seenReasons?.size === 1) seenReasons = undefined; + + if (seenReasons && cachedChain) { + if (cachedChain.details && !processedExtraReason) { + chain = chainDiagnosticMessages(cachedChain.details, diagnostic, ...args || emptyArray); + } + else if (cachedChain.fileIncludeReasonDetails) { + if (!processedExtraReason) { + if (!cachedFileIncludeDetailsHasProcessedExtraReason()) { + fileIncludeReasonDetails = cachedChain.fileIncludeReasonDetails; + } + else { + fileIncludeReasons = cachedChain.fileIncludeReasonDetails.next!.slice(0, reasons!.length); + } + } + else { + if (!cachedFileIncludeDetailsHasProcessedExtraReason()) { + fileIncludeReasons = [...cachedChain.fileIncludeReasonDetails.next!, fileIncludeReasons![0]]; + } + else { + fileIncludeReasons = append(cachedChain.fileIncludeReasonDetails.next!.slice(0, reasons!.length), fileIncludeReasons![0]); + } + } + } + } + + if (!chain) { + if (!fileIncludeReasonDetails) fileIncludeReasonDetails = seenReasons && chainDiagnosticMessages(fileIncludeReasons, Diagnostics.The_file_is_in_the_program_because_Colon); + chain = chainDiagnosticMessages( + redirectInfo ? + fileIncludeReasonDetails ? [fileIncludeReasonDetails, ...redirectInfo] : redirectInfo : + fileIncludeReasonDetails, + diagnostic, + ...args || emptyArray, + ); + } + + // This is chain's next contains: + // - File is in program because: + // - Files reasons listed + // - extra reason if its not already processed - this happens in case sensitive file system where files differ in casing and we are giving reasons for two files so reason is not in file's reason + // fyi above whole secton is ommited if we have single reason and we are reporting at that reason's location + // - redirect and additional information about file + // So cache result if we havent ommited file include reasons + if (file) { + if (cachedChain) { + // Cache new fileIncludeDetails if we have update + // Or if we had cached with more details than the reasons + if (!cachedChain.fileIncludeReasonDetails || (!processedExtraReason && fileIncludeReasonDetails)) { + cachedChain.fileIncludeReasonDetails = fileIncludeReasonDetails; + } + } + else { + (fileReasonsToChain ??= new Map()).set(file.path, cachedChain = { fileIncludeReasonDetails, redirectInfo }); + } + // If we didnt compute extra file include reason , cache the details to use directly + if (!cachedChain.details && !processedExtraReason) cachedChain.details = chain.next; + } + const location = locationReason && getReferencedFileLocation(program, locationReason); - const fileIncludeReasonDetails = fileIncludeReasons && chainDiagnosticMessages(fileIncludeReasons, Diagnostics.The_file_is_in_the_program_because_Colon); - const optionsForFile = file && getCompilerOptionsForFile(file) || options; - const redirectInfo = file && explainIfFileIsRedirectAndImpliedFormat(file, optionsForFile); - const chain = chainDiagnosticMessages(redirectInfo ? fileIncludeReasonDetails ? [fileIncludeReasonDetails, ...redirectInfo] : redirectInfo : fileIncludeReasonDetails, diagnostic, ...args || emptyArray); return location && isReferenceFileLocation(location) ? createFileDiagnosticFromMessageChain(location.file, location.pos, location.end - location.pos, chain, relatedInfo) : createCompilerDiagnosticFromMessageChain(chain, relatedInfo); function processReason(reason: FileIncludeReason) { - (fileIncludeReasons ||= []).push(fileIncludeReasonToDiagnostics(program, reason)); + if (seenReasons?.has(reason)) return; + (seenReasons ??= new Set()).add(reason); + (fileIncludeReasons ??= []).push(fileIncludeReasonToDiagnostics(program, reason)); + populateRelatedInfo(reason); + } + + function populateRelatedInfo(reason: FileIncludeReason) { if (!locationReason && isReferencedFile(reason)) { // Report error at first reference file or file currently in processing and dont report in related information locationReason = reason; } else if (locationReason !== reason) { - relatedInfo = append(relatedInfo, fileIncludeReasonToRelatedInformation(reason)); + relatedInfo = append(relatedInfo, getFileIncludeReasonToRelatedInformation(reason)); } - // Remove fileProcessingReason if its already included in fileReasons of the program - if (reason === fileProcessingReason) fileProcessingReason = undefined; + } + + function cachedFileIncludeDetailsHasProcessedExtraReason() { + return cachedChain!.fileIncludeReasonDetails!.next?.length !== reasons?.length; } } - function addFilePreprocessingFileExplainingDiagnostic(file: SourceFile | undefined, fileProcessingReason: FileIncludeReason, diagnostic: DiagnosticMessage, args?: DiagnosticArguments) { + function addFilePreprocessingFileExplainingDiagnostic(file: SourceFile | undefined, fileProcessingReason: FileIncludeReason, diagnostic: DiagnosticMessage, args: DiagnosticArguments) { (fileProcessingDiagnostics ||= []).push({ kind: FilePreprocessingDiagnosticsKind.FilePreprocessingFileExplainingDiagnostic, file: file && file.path, @@ -4720,8 +4857,14 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg }); } - function addProgramDiagnosticExplainingFile(file: SourceFile, diagnostic: DiagnosticMessage, args?: DiagnosticArguments) { - programDiagnostics.add(createDiagnosticExplainingFile(file, /*fileProcessingReason*/ undefined, diagnostic, args)); + function addLazyProgramDiagnosticExplainingFile(file: SourceFile, diagnostic: DiagnosticMessage, args: DiagnosticArguments) { + lazyProgramDiagnosticExplainingFile!.push({ file, diagnostic, args }); + } + + function getFileIncludeReasonToRelatedInformation(reason: FileIncludeReason) { + let relatedInfo = reasonToRelatedInfo?.get(reason); + if (relatedInfo === undefined) (reasonToRelatedInfo ??= new Map()).set(reason, relatedInfo = fileIncludeReasonToRelatedInformation(reason) ?? false); + return relatedInfo || undefined; } function fileIncludeReasonToRelatedInformation(reason: FileIncludeReason): DiagnosticWithLocation | undefined { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 21339a7742bd9..3503445219329 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -4608,26 +4608,24 @@ export type FileIncludeReason = /** @internal */ export const enum FilePreprocessingDiagnosticsKind { - FilePreprocessingReferencedDiagnostic, + FilePreprocessingLibReferenceDiagnostic, FilePreprocessingFileExplainingDiagnostic, ResolutionDiagnostics, } /** @internal */ -export interface FilePreprocessingReferencedDiagnostic { - kind: FilePreprocessingDiagnosticsKind.FilePreprocessingReferencedDiagnostic; - reason: ReferencedFile; - diagnostic: DiagnosticMessage; - args?: DiagnosticArguments; +export interface FilePreprocessingLibReferenceDiagnostic { + kind: FilePreprocessingDiagnosticsKind.FilePreprocessingLibReferenceDiagnostic; + reason: ReferencedFile & { kind: FileIncludeKind.LibReferenceDirective; }; } /** @internal */ export interface FilePreprocessingFileExplainingDiagnostic { kind: FilePreprocessingDiagnosticsKind.FilePreprocessingFileExplainingDiagnostic; - file?: Path; + file: Path | undefined; fileProcessingReason: FileIncludeReason; diagnostic: DiagnosticMessage; - args?: DiagnosticArguments; + args: DiagnosticArguments; } /** @internal */ @@ -4637,7 +4635,7 @@ export interface ResolutionDiagnostics { } /** @internal */ -export type FilePreprocessingDiagnostics = FilePreprocessingReferencedDiagnostic | FilePreprocessingFileExplainingDiagnostic | ResolutionDiagnostics; +export type FilePreprocessingDiagnostics = FilePreprocessingLibReferenceDiagnostic | FilePreprocessingFileExplainingDiagnostic | ResolutionDiagnostics; /** @internal */ export const enum EmitOnly { diff --git a/src/compiler/watchPublic.ts b/src/compiler/watchPublic.ts index ca3561747f636..0abb5b0185f60 100644 --- a/src/compiler/watchPublic.ts +++ b/src/compiler/watchPublic.ts @@ -594,6 +594,7 @@ export function createWatchProgram(host: WatchCompiler }); parsedConfigs = undefined; } + builderProgram = undefined!; } function getResolutionCache() { diff --git a/src/testRunner/unittests/helpers.ts b/src/testRunner/unittests/helpers.ts index fb5b95a24802f..0bec189046f0f 100644 --- a/src/testRunner/unittests/helpers.ts +++ b/src/testRunner/unittests/helpers.ts @@ -21,6 +21,7 @@ export interface NamedSourceText { export interface ProgramWithSourceTexts extends ts.Program { sourceTexts?: readonly NamedSourceText[]; host: TestCompilerHost; + version: number; } export interface TestCompilerHost extends ts.CompilerHost { @@ -102,7 +103,7 @@ function createSourceFileWithText(fileName: string, sourceText: SourceText, targ return file; } -export function createTestCompilerHost(texts: readonly NamedSourceText[], target: ts.ScriptTarget, oldProgram?: ProgramWithSourceTexts, useGetSourceFileByPath?: boolean) { +export function createTestCompilerHost(texts: readonly NamedSourceText[], target: ts.ScriptTarget, oldProgram?: ProgramWithSourceTexts, useGetSourceFileByPath?: boolean, useCaseSensitiveFileNames?: boolean) { const files = ts.arrayToMap(texts, t => t.name, t => { if (oldProgram) { let oldFile = oldProgram.getSourceFile(t.name) as SourceFileWithText; @@ -115,14 +116,15 @@ export function createTestCompilerHost(texts: readonly NamedSourceText[], target } return createSourceFileWithText(t.name, t.text, target); }); - const useCaseSensitiveFileNames = ts.sys && ts.sys.useCaseSensitiveFileNames; + if (useCaseSensitiveFileNames === undefined) useCaseSensitiveFileNames = ts.sys && ts.sys.useCaseSensitiveFileNames; const getCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames); + const filesByPath = ts.mapEntries(files, (fileName, file) => [ts.toPath(fileName, "", getCanonicalFileName), file]); const trace: string[] = []; const result: TestCompilerHost = { trace: s => trace.push(s), getTrace: () => trace, clearTrace: () => trace.length = 0, - getSourceFile: fileName => files.get(fileName), + getSourceFile: fileName => filesByPath.get(ts.toPath(fileName, "", getCanonicalFileName)), getDefaultLibFileName: () => "lib.d.ts", writeFile: ts.notImplemented, getCurrentDirectory: () => "", @@ -130,37 +132,48 @@ export function createTestCompilerHost(texts: readonly NamedSourceText[], target getCanonicalFileName, useCaseSensitiveFileNames: () => useCaseSensitiveFileNames, getNewLine: () => ts.sys ? ts.sys.newLine : newLine, - fileExists: fileName => files.has(fileName), + fileExists: fileName => filesByPath.has(ts.toPath(fileName, "", getCanonicalFileName)), readFile: fileName => { - const file = files.get(fileName); + const file = filesByPath.get(ts.toPath(fileName, "", getCanonicalFileName)); return file && file.text; }, }; if (useGetSourceFileByPath) { - const filesByPath = ts.mapEntries(files, (fileName, file) => [ts.toPath(fileName, "", getCanonicalFileName), file]); result.getSourceFileByPath = (_fileName, path) => filesByPath.get(path); } return result; } -export function newProgram(texts: NamedSourceText[], rootNames: string[], options: ts.CompilerOptions, useGetSourceFileByPath?: boolean): ProgramWithSourceTexts { - const host = createTestCompilerHost(texts, options.target!, /*oldProgram*/ undefined, useGetSourceFileByPath); - const program = ts.createProgram(rootNames, options, host) as ProgramWithSourceTexts; - program.sourceTexts = texts; - program.host = host; - return program; +export function newProgram(texts: NamedSourceText[], rootNames: string[], options: ts.CompilerOptions, useGetSourceFileByPath?: boolean, useCaseSensitiveFileNames?: boolean): ProgramWithSourceTexts { + const host = createTestCompilerHost(texts, options.target!, /*oldProgram*/ undefined, useGetSourceFileByPath, useCaseSensitiveFileNames); + return programToProgramWithSourceTexts( + ts.createProgram(rootNames, options, host), + texts, + host, + 1, + ); } -export function updateProgram(oldProgram: ProgramWithSourceTexts, rootNames: readonly string[], options: ts.CompilerOptions, updater: (files: NamedSourceText[]) => void, newTexts?: NamedSourceText[], useGetSourceFileByPath?: boolean) { +function programToProgramWithSourceTexts(program: ts.Program, texts: NamedSourceText[], host: TestCompilerHost, version: number): ProgramWithSourceTexts { + const result = program as ProgramWithSourceTexts; + result.sourceTexts = texts; + result.host = host; + result.version = version; + return result; +} + +export function updateProgram(oldProgram: ProgramWithSourceTexts, rootNames: readonly string[], options: ts.CompilerOptions, updater: (files: NamedSourceText[]) => void, newTexts?: NamedSourceText[], useGetSourceFileByPath?: boolean, useCaseSensitiveFileNames?: boolean) { if (!newTexts) { newTexts = oldProgram.sourceTexts!.slice(0); } updater(newTexts); - const host = createTestCompilerHost(newTexts, options.target!, oldProgram, useGetSourceFileByPath); - const program = ts.createProgram(rootNames, options, host, oldProgram) as ProgramWithSourceTexts; - program.sourceTexts = newTexts; - program.host = host; - return program; + const host = createTestCompilerHost(newTexts, options.target!, oldProgram, useGetSourceFileByPath, useCaseSensitiveFileNames); + return programToProgramWithSourceTexts( + ts.createProgram(rootNames, options, host, oldProgram), + newTexts, + host, + oldProgram.version + 1, + ); } export function updateProgramText(files: readonly NamedSourceText[], fileName: string, newProgramText: string) { diff --git a/src/testRunner/unittests/helpers/forceConsistentCasingInFileNames.ts b/src/testRunner/unittests/helpers/forceConsistentCasingInFileNames.ts new file mode 100644 index 0000000000000..03bf67cf33453 --- /dev/null +++ b/src/testRunner/unittests/helpers/forceConsistentCasingInFileNames.ts @@ -0,0 +1,33 @@ +import { dedent } from "../../_namespaces/Utils"; +import { jsonToReadableText } from "../helpers"; +import { + FsContents, + libContent, +} from "./contents"; +import { libFile } from "./virtualFileSystemWithWatch"; + +export function getFsContentsForMultipleErrorsForceConsistentCasingInFileNames(): FsContents { + return { + "/home/src/projects/project/src/struct.d.ts": dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + "/home/src/projects/project/src/anotherFile.ts": dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + "/home/src/projects/project/src/oneMore.ts": dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + "/home/src/projects/project/tsconfig.json": jsonToReadableText({}), + "/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts": `export function foo(): void`, + [libFile.path]: libContent, + }; +} diff --git a/src/testRunner/unittests/helpers/libraryResolution.ts b/src/testRunner/unittests/helpers/libraryResolution.ts index aef17d25f8154..f62a53be1cdd2 100644 --- a/src/testRunner/unittests/helpers/libraryResolution.ts +++ b/src/testRunner/unittests/helpers/libraryResolution.ts @@ -91,3 +91,46 @@ export function getCommandLineArgsForLibResolution(withoutConfig: true | undefin ["project1/core.d.ts", "project1/utils.d.ts", "project1/file.ts", "project1/index.ts", "project1/file2.ts", "--lib", "es5,dom", "--traceResolution", "--explainFiles"] : ["-p", "project1", "--explainFiles"]; } + +function getFsContentsForLibResolutionUnknown(): FsContents { + return { + "/home/src/projects/project1/utils.d.ts": `export const y = 10;`, + "/home/src/projects/project1/file.ts": `export const file = 10;`, + "/home/src/projects/project1/core.d.ts": `export const core = 10;`, + "/home/src/projects/project1/index.ts": `export const x = "type1";`, + "/home/src/projects/project1/file2.ts": dedent` + /// + /// + /// + `, + "/home/src/projects/project1/tsconfig.json": jsonToReadableText({ + compilerOptions: { + composite: true, + traceResolution: true, + }, + }), + "/home/src/lib/lib.d.ts": libContent, + "/home/src/lib/lib.webworker.d.ts": "interface WebWorkerInterface { }", + "/home/src/lib/lib.scripthost.d.ts": "interface ScriptHostInterface { }", + }; +} + +export function getFsForLibResolutionUnknown() { + return loadProjectFromFiles( + getFsContentsForLibResolutionUnknown(), + { + cwd: "/home/src/projects", + executingFilePath: "/home/src/lib/tsc.js", + }, + ); +} + +export function getSysForLibResolutionUnknown() { + return createWatchedSystem( + getFsContentsForLibResolutionUnknown(), + { + currentDirectory: "/home/src/projects", + executingFilePath: "/home/src/lib/tsc.js", + }, + ); +} diff --git a/src/testRunner/unittests/reuseProgramStructure.ts b/src/testRunner/unittests/reuseProgramStructure.ts index b3685eac1f74c..6bbb7be41f3a1 100644 --- a/src/testRunner/unittests/reuseProgramStructure.ts +++ b/src/testRunner/unittests/reuseProgramStructure.ts @@ -19,7 +19,8 @@ import { libFile, } from "./helpers/virtualFileSystemWithWatch"; -describe("unittests:: Reuse program structure:: General", () => { +describe("unittests:: reuseProgramStructure:: General", () => { + type ProgramToBaseline = ts.Program & Pick; function baselineCache( baselines: string[], cacheType: string, @@ -40,8 +41,21 @@ describe("unittests:: Reuse program structure:: General", () => { baselines.push(`${key}: ${mode ? ts.getNameOfCompilerOptionValue(mode, ts.moduleOptionDeclaration.type) + ": " : ""}${jsonToReadableText(resolved)}`); } } - function baselineProgram(baselines: string[], program: ts.Program, host?: TestCompilerHost) { - baselines.push(`Program Reused:: ${(ts as any).StructureIsReused[program.structureIsReused]}`); + + function baselineDiagnostics(baselines: string[], program: ProgramToBaseline, skipHeader?: boolean) { + if (!skipHeader) { + baselines.push(`Program ${program.version} Reused:: ${(ts as any).StructureIsReused[program.structureIsReused]}`); + baselines.push(`Diagnostics:`); + } + baselines.push(ts.formatDiagnostics(program.getSemanticDiagnostics(), { + getCurrentDirectory: () => program.getCurrentDirectory(), + getNewLine: () => "\n", + getCanonicalFileName: ts.createGetCanonicalFileName(program.useCaseSensitiveFileNames()), + })); + baselines.push("", ""); + } + function baselineProgram(baselines: string[], program: ProgramToBaseline, host?: TestCompilerHost, skipDiagnostics?: boolean) { + baselines.push(`Program ${program.version} Reused:: ${(ts as any).StructureIsReused[program.structureIsReused]}`); program.getSourceFiles().forEach(f => { baselines.push(`File: ${f.fileName}`, f.text); baselineCache(baselines, "resolvedModules", f, program.forEachResolvedModule); @@ -55,12 +69,12 @@ describe("unittests:: Reuse program structure:: General", () => { baselines.push(""); baselines.push(`MissingPaths:: ${jsonToReadableText(ts.arrayFrom(program.getMissingFilePaths().values()))}`); baselines.push(""); - baselines.push(ts.formatDiagnostics(program.getSemanticDiagnostics(), { - getCurrentDirectory: () => program.getCurrentDirectory(), - getNewLine: () => "\n", - getCanonicalFileName: ts.createGetCanonicalFileName(program.useCaseSensitiveFileNames()), - })); - baselines.push("", ""); + if (!skipDiagnostics) { + baselineDiagnostics(baselines, program, /*skipHeader*/ true); + } + else { + baselines.push("Skipped diagnostics", "", ""); + } } function runBaseline(scenario: string, baselines: readonly string[]) { @@ -281,7 +295,8 @@ describe("unittests:: Reuse program structure:: General", () => { ]; const host = createTestCompilerHost(files, target); const options: ts.CompilerOptions = { target, typeRoots: ["/types"] }; - const program1 = ts.createProgram(["/a.ts"], options, host); + const program1 = ts.createProgram(["/a.ts"], options, host) as ProgramToBaseline; + program1.version = 1; let sourceFile = program1.getSourceFile("/a.ts")!; const baselines: string[] = []; baselineProgram(baselines, program1, host); @@ -293,7 +308,8 @@ describe("unittests:: Reuse program structure:: General", () => { return fileName === sourceFile.fileName ? sourceFile : program1.getSourceFile(fileName); }, }; - const program2 = ts.createProgram(["/a.ts"], options, updateHost, program1); + const program2 = ts.createProgram(["/a.ts"], options, updateHost, program1) as ProgramToBaseline; + program2.version = 2; baselineProgram(baselines, program2, updateHost); baselines.push(`parent pointers are not altered: ${sourceFile.statements[2].getSourceFile() === sourceFile}`); runBaseline("works with updated SourceFiles", baselines); @@ -554,15 +570,217 @@ describe("unittests:: Reuse program structure:: General", () => { verifyRedirects(/*useGetSourceFileByPath*/ true); }); }); + + it("forceConsistentCasingInFileNames:: handles file preprocessing dignostics", () => { + const files = [ + { + name: "/src/project/src/struct.d.ts", + text: SourceText.New( + "", + "", + Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + ), + }, + { + name: "/src/project/src/anotherFile.ts", + text: SourceText.New( + "", + "", + Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + ), + }, + { + name: "/src/project/src/oneMore.ts", + text: SourceText.New( + "", + "", + Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + ), + }, + { + name: "/src/project/node_modules/fp-ts/lib/struct.d.ts", + text: SourceText.New("", "", `export function foo(): void`), + }, + ]; + + const options: ts.CompilerOptions = { target, moduleResolution: ts.ModuleResolutionKind.Node10 }; + const rootNames = files.map(f => f.name); + const program1 = newProgram(files, rootNames, options, /*useGetSourceFileByPath*/ undefined, /*useCaseSensitiveFileNames*/ false); + const baselines: string[] = []; + baselineProgram(baselines, program1); + + const program2 = updateProgram( + program1, + rootNames, + options, + files => { + files[0].text = files[0].text.updateProgram(files[0].text.getFullText() + "export const y = 10;"); + }, + /*newTexts*/ undefined, + /*useGetSourceFileByPath*/ undefined, + /*useCaseSensitiveFileNames*/ false, + ); + baselineProgram(baselines, program2); + + const program3 = updateProgram( + program2, + rootNames, + options, + files => { + files[0].text = files[0].text.updateProgram(Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + `); + }, + /*newTexts*/ undefined, + /*useGetSourceFileByPath*/ undefined, + /*useCaseSensitiveFileNames*/ false, + ); + baselineProgram(baselines, program3); + runBaseline("handles file preprocessing dignostics", baselines); + }); + + it("forceConsistentCasingInFileNames:: handles file preprocessing dignostics when diagnostics are not queried", () => { + const files = [ + { + name: "/src/project/src/struct.d.ts", + text: SourceText.New( + "", + "", + Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + ), + }, + { + name: "/src/project/src/anotherFile.ts", + text: SourceText.New( + "", + "", + Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + ), + }, + { + name: "/src/project/src/oneMore.ts", + text: SourceText.New( + "", + "", + Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + import * as xs4 from "./struct"; + `, + ), + }, + { + name: "/src/project/node_modules/fp-ts/lib/struct.d.ts", + text: SourceText.New("", "", `export function foo(): void`), + }, + ]; + + const options: ts.CompilerOptions = { target, moduleResolution: ts.ModuleResolutionKind.Node10 }; + const rootNames = files.map(f => f.name); + const program1 = newProgram(files, rootNames, options, /*useGetSourceFileByPath*/ undefined, /*useCaseSensitiveFileNames*/ false); + const baselines: string[] = []; + baselineProgram(baselines, program1, /*host*/ undefined, /*skipDiagnostics*/ true); + + const program2 = updateProgram( + program1, + rootNames, + options, + files => { + files[0].text = files[0].text.updateProgram(files[0].text.getFullText() + "export const y = 10;"); + }, + /*newTexts*/ undefined, + /*useGetSourceFileByPath*/ undefined, + /*useCaseSensitiveFileNames*/ false, + ); + baselineProgram(baselines, program2, /*host*/ undefined, /*skipDiagnostics*/ true); + baselineDiagnostics(baselines, program1); + + const program3 = updateProgram( + program2, + rootNames, + options, + files => { + files[0].text = files[0].text.updateProgram(files[0].text.getFullText() + "export const z = 10;"); + }, + /*newTexts*/ undefined, + /*useGetSourceFileByPath*/ undefined, + /*useCaseSensitiveFileNames*/ false, + ); + baselineProgram(baselines, program3); + baselineDiagnostics(baselines, program2); + + const program4 = updateProgram( + program3, + rootNames, + options, + files => { + files[0].text = files[0].text.updateProgram(Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + `); + }, + /*newTexts*/ undefined, + /*useGetSourceFileByPath*/ undefined, + /*useCaseSensitiveFileNames*/ false, + ); + baselineProgram(baselines, program4, /*host*/ undefined, /*skipDiagnostics*/ true); + + const program5 = updateProgram( + program4, + rootNames, + options, + files => { + files[0].text = files[0].text.updateProgram(Utils.dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs3 from "./Struct"; + `); + }, + /*newTexts*/ undefined, + /*useGetSourceFileByPath*/ undefined, + /*useCaseSensitiveFileNames*/ false, + ); + baselineProgram(baselines, program5); + baselineDiagnostics(baselines, program4); + runBaseline("handles file preprocessing dignostics when diagnostics are not queried", baselines); + }); }); -describe("unittests:: Reuse program structure:: host is optional", () => { +describe("unittests:: reuseProgramStructure:: host is optional", () => { it("should work if host is not provided", () => { ts.createProgram([], {}); }); }); -describe("unittests:: Reuse program structure:: isProgramUptoDate", () => { +describe("unittests:: reuseProgramStructure:: isProgramUptoDate::", () => { function getWhetherProgramIsUptoDate( program: ts.Program, newRootFileNames: string[], diff --git a/src/testRunner/unittests/tsc/forceConsistentCasingInFileNames.ts b/src/testRunner/unittests/tsc/forceConsistentCasingInFileNames.ts index 24aa8f61df742..79876b0c98d0d 100644 --- a/src/testRunner/unittests/tsc/forceConsistentCasingInFileNames.ts +++ b/src/testRunner/unittests/tsc/forceConsistentCasingInFileNames.ts @@ -1,4 +1,5 @@ -import * as Utils from "../../_namespaces/Utils"; +import { dedent } from "../../_namespaces/Utils"; +import { getFsContentsForMultipleErrorsForceConsistentCasingInFileNames } from "../helpers/forceConsistentCasingInFileNames"; import { verifyTsc } from "../helpers/tsc"; import { loadProjectFromFiles } from "../helpers/vfs"; @@ -9,7 +10,7 @@ describe("unittests:: tsc:: forceConsistentCasingInFileNames::", () => { commandLineArgs: ["/src/project/src/struct.d.ts", "--forceConsistentCasingInFileNames", "--explainFiles"], fs: () => loadProjectFromFiles({ - "/src/project/src/struct.d.ts": Utils.dedent` + "/src/project/src/struct.d.ts": dedent` import * as xs1 from "fp-ts/lib/Struct"; import * as xs2 from "fp-ts/lib/struct"; import * as xs3 from "./Struct"; @@ -18,4 +19,11 @@ describe("unittests:: tsc:: forceConsistentCasingInFileNames::", () => { "/src/project/node_modules/fp-ts/lib/struct.d.ts": `export function foo(): void`, }), }); + + verifyTsc({ + scenario: "forceConsistentCasingInFileNames", + subScenario: "when file is included from multiple places with different casing", + commandLineArgs: ["-p", "/home/src/projects/project/tsconfig.json", "--explainFiles"], + fs: () => loadProjectFromFiles(getFsContentsForMultipleErrorsForceConsistentCasingInFileNames()), + }); }); diff --git a/src/testRunner/unittests/tsc/libraryResolution.ts b/src/testRunner/unittests/tsc/libraryResolution.ts index 5a6bb2b29ddb8..10876782a5b50 100644 --- a/src/testRunner/unittests/tsc/libraryResolution.ts +++ b/src/testRunner/unittests/tsc/libraryResolution.ts @@ -1,6 +1,7 @@ import { getCommandLineArgsForLibResolution, getFsForLibResolution, + getFsForLibResolutionUnknown, } from "../helpers/libraryResolution"; import { verifyTsc } from "../helpers/tsc"; @@ -18,4 +19,12 @@ describe("unittests:: tsc:: libraryResolution:: library file resolution", () => verify(/*libRedirection*/ true); verify(/*libRedirection*/ undefined, /*withoutConfig*/ true); verify(/*libRedirection*/ true, /*withoutConfig*/ true); + + verifyTsc({ + scenario: "libraryResolution", + subScenario: "unknown lib", + fs: () => getFsForLibResolutionUnknown(), + commandLineArgs: getCommandLineArgsForLibResolution(/*withoutConfig*/ undefined), + baselinePrograms: true, + }); }); diff --git a/src/testRunner/unittests/tscWatch/forceConsistentCasingInFileNames.ts b/src/testRunner/unittests/tscWatch/forceConsistentCasingInFileNames.ts index 7c7361222e754..e32f444ed4430 100644 --- a/src/testRunner/unittests/tscWatch/forceConsistentCasingInFileNames.ts +++ b/src/testRunner/unittests/tscWatch/forceConsistentCasingInFileNames.ts @@ -1,5 +1,6 @@ -import * as Utils from "../../_namespaces/Utils"; +import { dedent } from "../../_namespaces/Utils"; import { jsonToReadableText } from "../helpers"; +import { getFsContentsForMultipleErrorsForceConsistentCasingInFileNames } from "../helpers/forceConsistentCasingInFileNames"; import { TscWatchCompileChange, verifyTscWatch, @@ -11,7 +12,7 @@ import { SymLink, } from "../helpers/virtualFileSystemWithWatch"; -describe("unittests:: tsc-watch:: forceConsistentCasingInFileNames", () => { +describe("unittests:: tsc-watch:: forceConsistentCasingInFileNames::", () => { const loggerFile: File = { path: `/user/username/projects/myproject/logger.ts`, content: `export class logger { }`, @@ -334,7 +335,7 @@ a;b; ".": "./dist/index.js", }, }), - "/Users/name/projects/web/index.ts": Utils.dedent` + "/Users/name/projects/web/index.ts": dedent` import * as me from "@this/package"; me.thing(); export function thing(): void {} @@ -365,10 +366,10 @@ a;b; type: "module", exports: "./src/index.ts", }), - "/Users/name/projects/lib-boilerplate/src/index.ts": Utils.dedent` + "/Users/name/projects/lib-boilerplate/src/index.ts": dedent` export function thing(): void {} `, - "/Users/name/projects/lib-boilerplate/test/basic.spec.ts": Utils.dedent` + "/Users/name/projects/lib-boilerplate/test/basic.spec.ts": dedent` import { thing } from 'lib-boilerplate' `, "/Users/name/projects/lib-boilerplate/tsconfig.json": jsonToReadableText({ @@ -382,4 +383,35 @@ a;b; "/a/lib/lib.es2021.full.d.ts": libFile.content, }, { currentDirectory: "/Users/name/projects/lib-boilerplate" }), }); + + verifyTscWatch({ + scenario: "forceConsistentCasingInFileNames", + subScenario: "when file is included from multiple places with different casing", + commandLineArgs: ["-w", "--explainFiles"], + sys: () => + createWatchedSystem( + getFsContentsForMultipleErrorsForceConsistentCasingInFileNames(), + { currentDirectory: "/home/src/projects/project" }, + ), + edits: [ + { + caption: "change to reuse imports", + edit: sys => sys.appendFile("/home/src/projects/project/src/struct.d.ts", "export const y = 10;"), + timeouts: sys => sys.runQueuedTimeoutCallbacks(), + }, + { + caption: "change to update imports", + edit: sys => + sys.writeFile( + "/home/src/projects/project/src/struct.d.ts", + dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + `, + ), + timeouts: sys => sys.runQueuedTimeoutCallbacks(), + }, + ], + }); }); diff --git a/src/testRunner/unittests/tscWatch/libraryResolution.ts b/src/testRunner/unittests/tscWatch/libraryResolution.ts index 0efbe202e91bc..e10962584aa6b 100644 --- a/src/testRunner/unittests/tscWatch/libraryResolution.ts +++ b/src/testRunner/unittests/tscWatch/libraryResolution.ts @@ -1,7 +1,9 @@ +import { dedent } from "../../_namespaces/Utils"; import { jsonToReadableText } from "../helpers"; import { getCommandLineArgsForLibResolution, getSysForLibResolution, + getSysForLibResolutionUnknown, } from "../helpers/libraryResolution"; import { TscWatchCompileChange, @@ -9,7 +11,7 @@ import { verifyTscWatch, } from "../helpers/tscWatch"; -describe("unittests:: tsc-watch:: libraryResolution", () => { +describe("unittests:: tsc-watch:: libraryResolution::", () => { function commandLineArgs(withoutConfig: true | undefined) { return ["-w", ...getCommandLineArgsForLibResolution(withoutConfig), "--extendedDiagnostics"]; } @@ -147,4 +149,47 @@ describe("unittests:: tsc-watch:: libraryResolution", () => { } verify(); verify(/*withoutConfig*/ true); + + verifyTscWatch({ + scenario: "libraryResolution", + subScenario: "unknwon lib", + sys: () => getSysForLibResolutionUnknown(), + commandLineArgs: commandLineArgs(/*withoutConfig*/ undefined), + edits: [ + { + caption: "edit index", + edit: sys => sys.appendFile("/home/src/projects/project1/index.ts", "export const xyz = 10;"), + timeouts: sys => sys.runQueuedTimeoutCallbacks(), + }, + { + caption: "delete core", + edit: sys => sys.deleteFile("/home/src/projects/project1/core.d.ts"), + timeouts: sys => sys.runQueuedTimeoutCallbacks(), + }, + { + caption: "remove unknown lib", + edit: sys => + sys.writeFile( + "/home/src/projects/project1/file2.ts", + dedent` + /// + /// + `, + ), + timeouts: sys => sys.runQueuedTimeoutCallbacks(), + }, + { + caption: "correct webworker lib", + edit: sys => + sys.writeFile( + "/home/src/projects/project1/file2.ts", + dedent` + /// + /// + `, + ), + timeouts: sys => sys.runQueuedTimeoutCallbacks(), + }, + ], + }); }); diff --git a/src/testRunner/unittests/tsserver/forceConsistentCasingInFileNames.ts b/src/testRunner/unittests/tsserver/forceConsistentCasingInFileNames.ts index 3bec79f503616..90c0aa462116c 100644 --- a/src/testRunner/unittests/tsserver/forceConsistentCasingInFileNames.ts +++ b/src/testRunner/unittests/tsserver/forceConsistentCasingInFileNames.ts @@ -1,10 +1,12 @@ import * as ts from "../../_namespaces/ts"; import { dedent } from "../../_namespaces/Utils"; import { jsonToReadableText } from "../helpers"; +import { getFsContentsForMultipleErrorsForceConsistentCasingInFileNames } from "../helpers/forceConsistentCasingInFileNames"; import { baselineTsserverLogs, closeFilesForSession, openFilesForSession, + protocolFileLocationFromSubstring, protocolTextSpanFromSubstring, TestSession, verifyGetErrRequest, @@ -16,7 +18,7 @@ import { SymLink, } from "../helpers/virtualFileSystemWithWatch"; -describe("unittests:: tsserver:: forceConsistentCasingInFileNames", () => { +describe("unittests:: tsserver:: forceConsistentCasingInFileNames::", () => { it("works when extends is specified with a case insensitive file system", () => { const rootPath = "/Users/username/dev/project"; const file1: File = { @@ -328,4 +330,63 @@ describe("unittests:: tsserver:: forceConsistentCasingInFileNames", () => { verifyDirSymlink("when import and directory symlink target agree but do not match disk", `/user/username/projects/myproject/XY`, `/user/username/projects/myproject/Xy`, `./Xy`); verifyDirSymlink("when import, directory symlink target, and disk are all different", `/user/username/projects/myproject/XY`, `/user/username/projects/myproject/Xy`, `./xY`); }); + + it("when file is included from multiple places with different casing", () => { + const host = createServerHost(getFsContentsForMultipleErrorsForceConsistentCasingInFileNames()); + const session = new TestSession(host); + const file = "/home/src/projects/project/src/struct.d.ts"; + let fileText = host.readFile(file)!; + openFilesForSession([{ file, projectRootPath: "/home/src/projects/project" }], session); + verifyGetErrRequest({ session, files: [file] }); + + // Update file without import but dont get errors: + updateFile(fileText + "\nexport const y = 10;"); + goToDef(); + + // Update file without import and get errors: + updateFile(fileText + "\nexport const yy = 10;"); + verifyGetErrRequest({ session, files: [file] }); + + // Remove one import, dont get errors + updateFile(dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs2 from "fp-ts/lib/struct"; + import * as xs3 from "./Struct"; + `); + goToDef(); + + // Remove import, get errors + updateFile(dedent` + import * as xs1 from "fp-ts/lib/Struct"; + import * as xs3 from "./struct"; + `); + verifyGetErrRequest({ session, files: [file] }); + baselineTsserverLogs("forceConsistentCasingInFileNames", "when file is included from multiple places with different casing", session); + + function updateFile(newText: string) { + session.executeCommandSeq({ + command: ts.server.protocol.CommandTypes.UpdateOpen, + arguments: { + changedFiles: [{ + fileName: file, + textChanges: [{ + newText, + ...protocolTextSpanFromSubstring( + fileText, + fileText, + ), + }], + }], + }, + }); + fileText = newText; + } + + function goToDef() { + session.executeCommandSeq({ + command: ts.server.protocol.CommandTypes.Definition, + arguments: protocolFileLocationFromSubstring({ path: file, content: fileText }, `"fp-ts/lib/Struct"`), + }); + } + }); }); diff --git a/tests/baselines/reference/reuseProgramStructure/can-reuse-ambient-module-declarations-from-non-modified-files.js b/tests/baselines/reference/reuseProgramStructure/can-reuse-ambient-module-declarations-from-non-modified-files.js index fea620a833358..e0338ffd59848 100644 --- a/tests/baselines/reference/reuseProgramStructure/can-reuse-ambient-module-declarations-from-non-modified-files.js +++ b/tests/baselines/reference/reuseProgramStructure/can-reuse-ambient-module-declarations-from-non-modified-files.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /a/b/app.ts import * as fs from 'fs' @@ -81,7 +81,7 @@ MissingPaths:: [ -Program Reused:: Completely +Program 2 Reused:: Completely File: /a/b/app.ts import * as fs from 'fs' @@ -136,7 +136,7 @@ MissingPaths:: [ -Program Reused:: Completely +Program 3 Reused:: Completely File: /a/b/app.ts import * as fs from 'fs' diff --git a/tests/baselines/reference/reuseProgramStructure/can-reuse-module-resolutions-from-non-modified-files.js b/tests/baselines/reference/reuseProgramStructure/can-reuse-module-resolutions-from-non-modified-files.js index 5f88f3f72fe6a..7944e19796056 100644 --- a/tests/baselines/reference/reuseProgramStructure/can-reuse-module-resolutions-from-non-modified-files.js +++ b/tests/baselines/reference/reuseProgramStructure/can-reuse-module-resolutions-from-non-modified-files.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: a1.ts @@ -138,7 +138,7 @@ node_modules/@types/typerefs2/index.d.ts(3,13): error TS2451: Cannot redeclare b -Program Reused:: SafeModules +Program 2 Reused:: SafeModules File: a1.ts @@ -284,7 +284,7 @@ node_modules/@types/typerefs2/index.d.ts(3,13): error TS2451: Cannot redeclare b -Program Reused:: SafeModules +Program 3 Reused:: SafeModules File: a1.ts @@ -413,7 +413,7 @@ node_modules/@types/typerefs2/index.d.ts(3,13): error TS2451: Cannot redeclare b -Program Reused:: SafeModules +Program 4 Reused:: SafeModules File: a1.ts @@ -542,7 +542,7 @@ node_modules/@types/typerefs2/index.d.ts(3,13): error TS2451: Cannot redeclare b -Program Reused:: Completely +Program 5 Reused:: Completely File: a1.ts @@ -653,7 +653,7 @@ node_modules/@types/typerefs2/index.d.ts(3,13): error TS2451: Cannot redeclare b -Program Reused:: SafeModules +Program 6 Reused:: SafeModules File: a1.ts @@ -782,7 +782,7 @@ node_modules/@types/typerefs2/index.d.ts(3,13): error TS2451: Cannot redeclare b -Program Reused:: SafeModules +Program 7 Reused:: SafeModules File: a1.ts diff --git a/tests/baselines/reference/reuseProgramStructure/change-affects-a-single-module-of-a-package.js b/tests/baselines/reference/reuseProgramStructure/change-affects-a-single-module-of-a-package.js index 7adcba0f8b2db..8cb3f8f5243bf 100644 --- a/tests/baselines/reference/reuseProgramStructure/change-affects-a-single-module-of-a-package.js +++ b/tests/baselines/reference/reuseProgramStructure/change-affects-a-single-module-of-a-package.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/b/internal.d.ts @@ -67,7 +67,7 @@ MissingPaths:: [ -Program Reused:: Completely +Program 2 Reused:: Completely File: /node_modules/b/internal.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/change-affects-imports.js b/tests/baselines/reference/reuseProgramStructure/change-affects-imports.js index 3db291a132cbe..a64a2078c7065 100644 --- a/tests/baselines/reference/reuseProgramStructure/change-affects-imports.js +++ b/tests/baselines/reference/reuseProgramStructure/change-affects-imports.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -42,7 +42,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: SafeModules +Program 2 Reused:: SafeModules File: c.ts import x from 'b' diff --git a/tests/baselines/reference/reuseProgramStructure/change-affects-tripleslash-references.js b/tests/baselines/reference/reuseProgramStructure/change-affects-tripleslash-references.js index 975eed617936b..7c8ceb073f55e 100644 --- a/tests/baselines/reference/reuseProgramStructure/change-affects-tripleslash-references.js +++ b/tests/baselines/reference/reuseProgramStructure/change-affects-tripleslash-references.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -42,7 +42,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: SafeModules +Program 2 Reused:: SafeModules File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/change-affects-type-directives.js b/tests/baselines/reference/reuseProgramStructure/change-affects-type-directives.js index 91db05ff83747..b7dd21299eb27 100644 --- a/tests/baselines/reference/reuseProgramStructure/change-affects-type-directives.js +++ b/tests/baselines/reference/reuseProgramStructure/change-affects-type-directives.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -42,7 +42,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: SafeModules +Program 2 Reused:: SafeModules File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/change-affects-type-references.js b/tests/baselines/reference/reuseProgramStructure/change-affects-type-references.js index dae7716779778..ad1dca80e4d12 100644 --- a/tests/baselines/reference/reuseProgramStructure/change-affects-type-references.js +++ b/tests/baselines/reference/reuseProgramStructure/change-affects-type-references.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -55,7 +55,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: SafeModules +Program 2 Reused:: SafeModules File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/change-does-not-affect-imports-or-type-refs.js b/tests/baselines/reference/reuseProgramStructure/change-does-not-affect-imports-or-type-refs.js index 358c57df5ec52..126a143f0c9cf 100644 --- a/tests/baselines/reference/reuseProgramStructure/change-does-not-affect-imports-or-type-refs.js +++ b/tests/baselines/reference/reuseProgramStructure/change-does-not-affect-imports-or-type-refs.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -42,7 +42,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: Completely +Program 2 Reused:: Completely File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/change-doesnot-affect-type-references.js b/tests/baselines/reference/reuseProgramStructure/change-doesnot-affect-type-references.js index caa57f5c989ca..ebd73889412a0 100644 --- a/tests/baselines/reference/reuseProgramStructure/change-doesnot-affect-type-references.js +++ b/tests/baselines/reference/reuseProgramStructure/change-doesnot-affect-type-references.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -55,7 +55,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: Completely +Program 2 Reused:: Completely File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/config-path-changes.js b/tests/baselines/reference/reuseProgramStructure/config-path-changes.js index 7608a460c1017..d751189dca03b 100644 --- a/tests/baselines/reference/reuseProgramStructure/config-path-changes.js +++ b/tests/baselines/reference/reuseProgramStructure/config-path-changes.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -46,7 +46,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: Not +Program 2 Reused:: Not File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/fetches-imports-after-npm-install.js b/tests/baselines/reference/reuseProgramStructure/fetches-imports-after-npm-install.js index e0465c1a849d1..83606b0482712 100644 --- a/tests/baselines/reference/reuseProgramStructure/fetches-imports-after-npm-install.js +++ b/tests/baselines/reference/reuseProgramStructure/fetches-imports-after-npm-install.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: file1.ts import * as a from "a"; @@ -63,7 +63,7 @@ file1.ts(2,20): error TS2307: Cannot find module 'a' or its corresponding type d -Program Reused:: SafeModules +Program 2 Reused:: SafeModules File: node_modules/a/index.d.ts export declare let x: number; diff --git a/tests/baselines/reference/reuseProgramStructure/handles-file-preprocessing-dignostics-when-diagnostics-are-not-queried.js b/tests/baselines/reference/reuseProgramStructure/handles-file-preprocessing-dignostics-when-diagnostics-are-not-queried.js new file mode 100644 index 0000000000000..b190df362b194 --- /dev/null +++ b/tests/baselines/reference/reuseProgramStructure/handles-file-preprocessing-dignostics-when-diagnostics-are-not-queried.js @@ -0,0 +1,1624 @@ +Program 1 Reused:: Not +File: /src/project/node_modules/fp-ts/lib/Struct.d.ts + + +export function foo(): void + +File: /src/project/src/struct.d.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/anotherFile.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/oneMore.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + + +MissingPaths:: [ + "lib.d.ts" +] + +Skipped diagnostics + + +Program 2 Reused:: Completely +File: /src/project/node_modules/fp-ts/lib/Struct.d.ts + + +export function foo(): void + +File: /src/project/src/struct.d.ts + + + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; +export const y = 10; +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/anotherFile.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/oneMore.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + + +MissingPaths:: [ + "lib.d.ts" +] + +Skipped diagnostics + + +Program 1 Reused:: Not +Diagnostics: +/src/project/src/anotherFile.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/anotherFile.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/oneMore.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/oneMore.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/struct.d.ts(3,22): error TS1261: Already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' differs from file name '/src/project/node_modules/fp-ts/lib/struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' + + + +Program 3 Reused:: Completely +File: /src/project/node_modules/fp-ts/lib/Struct.d.ts + + +export function foo(): void + +File: /src/project/src/struct.d.ts + + + + + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; +export const y = 10;export const z = 10; +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/anotherFile.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/oneMore.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + + +MissingPaths:: [ + "lib.d.ts" +] + +/src/project/src/anotherFile.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/anotherFile.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/oneMore.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/oneMore.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/struct.d.ts(7,22): error TS1261: Already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' differs from file name '/src/project/node_modules/fp-ts/lib/struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(8,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(9,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' + + + +Program 2 Reused:: Completely +Diagnostics: +/src/project/src/anotherFile.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/anotherFile.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/oneMore.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/oneMore.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/struct.d.ts(5,22): error TS1261: Already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' differs from file name '/src/project/node_modules/fp-ts/lib/struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(6,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(7,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' + + + +Program 4 Reused:: SafeModules +File: /src/project/node_modules/fp-ts/lib/Struct.d.ts + + +export function foo(): void + +File: /src/project/src/struct.d.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} + +File: /src/project/src/anotherFile.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/oneMore.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + + +MissingPaths:: [ + "lib.d.ts" +] + +Skipped diagnostics + + +Program 5 Reused:: SafeModules +File: /src/project/node_modules/fp-ts/lib/Struct.d.ts + + +export function foo(): void + +File: /src/project/src/struct.d.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs3 from "./Struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} + +File: /src/project/src/anotherFile.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/oneMore.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + + +MissingPaths:: [ + "lib.d.ts" +] + +/src/project/src/anotherFile.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/anotherFile.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/oneMore.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/oneMore.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/struct.d.ts(3,22): error TS1261: Already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' differs from file name '/src/project/node_modules/fp-ts/lib/struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(4,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' + + + +Program 4 Reused:: SafeModules +Diagnostics: +/src/project/src/anotherFile.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/anotherFile.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/oneMore.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/oneMore.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/struct.d.ts(3,22): error TS1261: Already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' differs from file name '/src/project/node_modules/fp-ts/lib/struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' + + diff --git a/tests/baselines/reference/reuseProgramStructure/handles-file-preprocessing-dignostics.js b/tests/baselines/reference/reuseProgramStructure/handles-file-preprocessing-dignostics.js new file mode 100644 index 0000000000000..59afd7f822063 --- /dev/null +++ b/tests/baselines/reference/reuseProgramStructure/handles-file-preprocessing-dignostics.js @@ -0,0 +1,990 @@ +Program 1 Reused:: Not +File: /src/project/node_modules/fp-ts/lib/Struct.d.ts + + +export function foo(): void + +File: /src/project/src/struct.d.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/anotherFile.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/oneMore.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + + +MissingPaths:: [ + "lib.d.ts" +] + +/src/project/src/anotherFile.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/anotherFile.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/oneMore.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/oneMore.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/struct.d.ts(3,22): error TS1261: Already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' differs from file name '/src/project/node_modules/fp-ts/lib/struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' + + + +Program 2 Reused:: Completely +File: /src/project/node_modules/fp-ts/lib/Struct.d.ts + + +export function foo(): void + +File: /src/project/src/struct.d.ts + + + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; +export const y = 10; +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/anotherFile.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/oneMore.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + + +MissingPaths:: [ + "lib.d.ts" +] + +/src/project/src/anotherFile.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/anotherFile.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/oneMore.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/oneMore.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/struct.d.ts(5,22): error TS1261: Already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' differs from file name '/src/project/node_modules/fp-ts/lib/struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(6,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(7,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' + + + +Program 3 Reused:: SafeModules +File: /src/project/node_modules/fp-ts/lib/Struct.d.ts + + +export function foo(): void + +File: /src/project/src/struct.d.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} + +File: /src/project/src/anotherFile.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + +File: /src/project/src/oneMore.ts + + +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + +resolvedModules: +fp-ts/lib/Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/Struct.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/Struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/Struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/Struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/Struct.ts", + "/src/project/node_modules/fp-ts/lib/Struct.tsx" + ] +} +fp-ts/lib/struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/node_modules/fp-ts/lib/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": true, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/node_modules/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/fp-ts/package.json", + "/src/project/src/node_modules/fp-ts/lib/struct.ts", + "/src/project/src/node_modules/fp-ts/lib/struct.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.ts", + "/src/project/src/node_modules/fp-ts/lib/struct/index.tsx", + "/src/project/src/node_modules/fp-ts/lib/struct/index.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/package.json", + "/src/project/src/node_modules/@types/fp-ts/package.json", + "/src/project/src/node_modules/@types/fp-ts/lib/struct.d.ts", + "/src/project/src/node_modules/@types/fp-ts/lib/struct/index.d.ts", + "/src/project/node_modules/fp-ts/lib/struct/package.json", + "/src/project/node_modules/fp-ts/package.json", + "/src/project/node_modules/fp-ts/lib/struct.ts", + "/src/project/node_modules/fp-ts/lib/struct.tsx" + ] +} +./Struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/Struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/Struct.ts", + "/src/project/src/Struct.tsx" + ] +} +./struct: { + "resolvedModule": { + "resolvedFileName": "/src/project/src/struct.d.ts", + "extension": ".d.ts", + "isExternalLibraryImport": false, + "resolvedUsingTsExtension": false + }, + "failedLookupLocations": [ + "/src/project/src/struct.ts", + "/src/project/src/struct.tsx" + ] +} + + +MissingPaths:: [ + "lib.d.ts" +] + +/src/project/src/anotherFile.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/anotherFile.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/oneMore.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/oneMore.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' +/src/project/src/struct.d.ts(3,22): error TS1261: Already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' differs from file name '/src/project/node_modules/fp-ts/lib/struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(4,22): error TS1149: File name '/src/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/src/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/src/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/src/project/src/oneMore.ts' + Root file specified for compilation +/src/project/src/struct.d.ts(5,22): error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing. + The file is in the program because: + Root file specified for compilation + Imported via "./Struct" from file '/src/project/src/struct.d.ts' + Imported via "./Struct" from file '/src/project/src/anotherFile.ts' + Imported via "./struct" from file '/src/project/src/anotherFile.ts' + Imported via "./Struct" from file '/src/project/src/oneMore.ts' + Imported via "./struct" from file '/src/project/src/oneMore.ts' + + diff --git a/tests/baselines/reference/reuseProgramStructure/missing-file-is-created.js b/tests/baselines/reference/reuseProgramStructure/missing-file-is-created.js index 281b3fa52a82c..0da2b41e0271f 100644 --- a/tests/baselines/reference/reuseProgramStructure/missing-file-is-created.js +++ b/tests/baselines/reference/reuseProgramStructure/missing-file-is-created.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -41,7 +41,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: Not +Program 2 Reused:: Not File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/missing-files-remain-missing.js b/tests/baselines/reference/reuseProgramStructure/missing-files-remain-missing.js index 17543c39f00e4..8f886fddd36a4 100644 --- a/tests/baselines/reference/reuseProgramStructure/missing-files-remain-missing.js +++ b/tests/baselines/reference/reuseProgramStructure/missing-files-remain-missing.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -41,7 +41,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: Completely +Program 2 Reused:: Completely File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/module-kind-changes.js b/tests/baselines/reference/reuseProgramStructure/module-kind-changes.js index f89808a1ea164..2ce4f8610a9f6 100644 --- a/tests/baselines/reference/reuseProgramStructure/module-kind-changes.js +++ b/tests/baselines/reference/reuseProgramStructure/module-kind-changes.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -42,7 +42,7 @@ a.ts(4,23): error TS2688: Cannot find type definition file for 'typerefs'. -Program Reused:: Not +Program 2 Reused:: Not File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/redirect-no-change.js b/tests/baselines/reference/reuseProgramStructure/redirect-no-change.js index 7658653c5fc75..cbd759345c993 100644 --- a/tests/baselines/reference/reuseProgramStructure/redirect-no-change.js +++ b/tests/baselines/reference/reuseProgramStructure/redirect-no-change.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts @@ -113,7 +113,7 @@ MissingPaths:: [ -Program Reused:: Completely +Program 2 Reused:: Completely File: /node_modules/a/node_modules/x/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/redirect-previous-duplicate-packages.js b/tests/baselines/reference/reuseProgramStructure/redirect-previous-duplicate-packages.js index 35fab4bb660fa..fcff7e884e078 100644 --- a/tests/baselines/reference/reuseProgramStructure/redirect-previous-duplicate-packages.js +++ b/tests/baselines/reference/reuseProgramStructure/redirect-previous-duplicate-packages.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts @@ -115,7 +115,7 @@ MissingPaths:: [ -Program Reused:: Not +Program 2 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/redirect-target-changes.js b/tests/baselines/reference/reuseProgramStructure/redirect-target-changes.js index 9a3a6bbd321ef..9805b725e4201 100644 --- a/tests/baselines/reference/reuseProgramStructure/redirect-target-changes.js +++ b/tests/baselines/reference/reuseProgramStructure/redirect-target-changes.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts @@ -113,7 +113,7 @@ MissingPaths:: [ -Program Reused:: Not +Program 2 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/redirect-underlying-changes.js b/tests/baselines/reference/reuseProgramStructure/redirect-underlying-changes.js index 415b2885b5a77..a54f008e9be07 100644 --- a/tests/baselines/reference/reuseProgramStructure/redirect-underlying-changes.js +++ b/tests/baselines/reference/reuseProgramStructure/redirect-underlying-changes.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts @@ -113,7 +113,7 @@ MissingPaths:: [ -Program Reused:: Not +Program 2 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-no-change.js b/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-no-change.js index 7658653c5fc75..cbd759345c993 100644 --- a/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-no-change.js +++ b/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-no-change.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts @@ -113,7 +113,7 @@ MissingPaths:: [ -Program Reused:: Completely +Program 2 Reused:: Completely File: /node_modules/a/node_modules/x/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-previous-duplicate-packages.js b/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-previous-duplicate-packages.js index 35fab4bb660fa..fcff7e884e078 100644 --- a/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-previous-duplicate-packages.js +++ b/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-previous-duplicate-packages.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts @@ -115,7 +115,7 @@ MissingPaths:: [ -Program Reused:: Not +Program 2 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-target-changes.js b/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-target-changes.js index 9a3a6bbd321ef..9805b725e4201 100644 --- a/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-target-changes.js +++ b/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-target-changes.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts @@ -113,7 +113,7 @@ MissingPaths:: [ -Program Reused:: Not +Program 2 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-underlying-changes.js b/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-underlying-changes.js index 415b2885b5a77..a54f008e9be07 100644 --- a/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-underlying-changes.js +++ b/tests/baselines/reference/reuseProgramStructure/redirect-with-getSourceFileByPath-underlying-changes.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts @@ -113,7 +113,7 @@ MissingPaths:: [ -Program Reused:: Not +Program 2 Reused:: Not File: /node_modules/a/node_modules/x/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/resolution-cache-follows-imports.js b/tests/baselines/reference/reuseProgramStructure/resolution-cache-follows-imports.js index 81d9d56b21ae5..bde8203f05fee 100644 --- a/tests/baselines/reference/reuseProgramStructure/resolution-cache-follows-imports.js +++ b/tests/baselines/reference/reuseProgramStructure/resolution-cache-follows-imports.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: b.ts @@ -27,7 +27,7 @@ a.ts(2,17): error TS2306: File 'b.ts' is not a module. -Program Reused:: Completely +Program 2 Reused:: Completely File: b.ts @@ -56,7 +56,7 @@ a.ts(2,17): error TS2306: File 'b.ts' is not a module. -Program Reused:: SafeModules +Program 3 Reused:: SafeModules File: a.ts @@ -70,7 +70,7 @@ MissingPaths:: [ -Program Reused:: SafeModules +Program 4 Reused:: SafeModules File: b.ts diff --git a/tests/baselines/reference/reuseProgramStructure/resolved-type-directives-cache-follows-type-directives.js b/tests/baselines/reference/reuseProgramStructure/resolved-type-directives-cache-follows-type-directives.js index 7ed3ff6eba2d3..e11d3be8926ce 100644 --- a/tests/baselines/reference/reuseProgramStructure/resolved-type-directives-cache-follows-type-directives.js +++ b/tests/baselines/reference/reuseProgramStructure/resolved-type-directives-cache-follows-type-directives.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /types/typedefs/index.d.ts @@ -29,7 +29,7 @@ MissingPaths:: [ -Program Reused:: Completely +Program 2 Reused:: Completely File: /types/typedefs/index.d.ts @@ -60,7 +60,7 @@ MissingPaths:: [ -Program Reused:: SafeModules +Program 3 Reused:: SafeModules File: /a.ts @@ -74,7 +74,7 @@ MissingPaths:: [ -Program Reused:: SafeModules +Program 4 Reused:: SafeModules File: /types/typedefs/index.d.ts diff --git a/tests/baselines/reference/reuseProgramStructure/resolvedImports-after-re-using-an-ambient-external-module-declaration.js b/tests/baselines/reference/reuseProgramStructure/resolvedImports-after-re-using-an-ambient-external-module-declaration.js index 94e20f8c9ca33..381fc9c9bb8b2 100644 --- a/tests/baselines/reference/reuseProgramStructure/resolvedImports-after-re-using-an-ambient-external-module-declaration.js +++ b/tests/baselines/reference/reuseProgramStructure/resolvedImports-after-re-using-an-ambient-external-module-declaration.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /a.ts @@ -21,7 +21,7 @@ MissingPaths:: [ -Program Reused:: Completely +Program 2 Reused:: Completely File: /a.ts diff --git a/tests/baselines/reference/reuseProgramStructure/rootdir-changes.js b/tests/baselines/reference/reuseProgramStructure/rootdir-changes.js index 72c9fc904bc3b..e83cf28f21519 100644 --- a/tests/baselines/reference/reuseProgramStructure/rootdir-changes.js +++ b/tests/baselines/reference/reuseProgramStructure/rootdir-changes.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: c.ts @@ -44,7 +44,7 @@ b.ts(1,22): error TS6059: File 'c.ts' is not under 'rootDir' '/a/b'. 'rootDir' i -Program Reused:: Completely +Program 2 Reused:: Completely File: c.ts diff --git a/tests/baselines/reference/reuseProgramStructure/works-with-updated-SourceFiles.js b/tests/baselines/reference/reuseProgramStructure/works-with-updated-SourceFiles.js index ea315d07916c4..be80605049f2d 100644 --- a/tests/baselines/reference/reuseProgramStructure/works-with-updated-SourceFiles.js +++ b/tests/baselines/reference/reuseProgramStructure/works-with-updated-SourceFiles.js @@ -1,4 +1,4 @@ -Program Reused:: Not +Program 1 Reused:: Not File: /a.ts @@ -22,7 +22,7 @@ MissingPaths:: [ parent pointers are updated: true -Program Reused:: Completely +Program 2 Reused:: Completely File: /a.ts 'use strict'; diff --git a/tests/baselines/reference/tsc/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js b/tests/baselines/reference/tsc/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js new file mode 100644 index 0000000000000..350148fe398ea --- /dev/null +++ b/tests/baselines/reference/tsc/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js @@ -0,0 +1,339 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +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; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; + +//// [/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts] +export function foo(): void + +//// [/home/src/projects/project/src/anotherFile.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/src/oneMore.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/src/struct.d.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/tsconfig.json] +{} + +//// [/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; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; + + + +Output:: +/lib/tsc -p /home/src/projects/project/tsconfig.json --explainFiles +home/src/projects/project/src/anotherFile.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + home/src/projects/project/src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +home/src/projects/project/src/anotherFile.ts:3:22 - error TS1261: Already included file name '/home/src/projects/project/src/Struct.d.ts' differs from file name '/home/src/projects/project/src/struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +3 import * as xs3 from "./Struct"; +   ~~~~~~~~~~ + + home/src/projects/project/src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +home/src/projects/project/src/anotherFile.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + home/src/projects/project/src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +home/src/projects/project/src/oneMore.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + home/src/projects/project/src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/anotherFile.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +home/src/projects/project/src/oneMore.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + home/src/projects/project/src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + +home/src/projects/project/src/Struct.d.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + home/src/projects/project/src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/anotherFile.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +home/src/projects/project/src/Struct.d.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + home/src/projects/project/src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + home/src/projects/project/src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +lib/lib.d.ts + Default library for target 'es5' +home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts + Imported via "fp-ts/lib/Struct" from file 'home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file 'home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file 'home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file 'home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file 'home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file 'home/src/projects/project/src/oneMore.ts' +home/src/projects/project/src/Struct.d.ts + Imported via "./Struct" from file 'home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file 'home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file 'home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file 'home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file 'home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file 'home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' +home/src/projects/project/src/anotherFile.ts + Matched by default include pattern '**/*' +home/src/projects/project/src/oneMore.ts + Matched by default include pattern '**/*' + +Found 7 errors in 3 files. + +Errors Files + 3 home/src/projects/project/src/anotherFile.ts:2 + 2 home/src/projects/project/src/oneMore.ts:2 + 2 home/src/projects/project/src/Struct.d.ts:2 +exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated + + +//// [/home/src/projects/project/src/anotherFile.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + +//// [/home/src/projects/project/src/oneMore.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + diff --git a/tests/baselines/reference/tsc/libraryResolution/unknown-lib.js b/tests/baselines/reference/tsc/libraryResolution/unknown-lib.js new file mode 100644 index 0000000000000..5227e3a96b810 --- /dev/null +++ b/tests/baselines/reference/tsc/libraryResolution/unknown-lib.js @@ -0,0 +1,331 @@ +currentDirectory:: /home/src/projects useCaseSensitiveFileNames: false +Input:: +//// [/home/src/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; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; + +//// [/home/src/lib/lib.scripthost.d.ts] +interface ScriptHostInterface { } + +//// [/home/src/lib/lib.webworker.d.ts] +interface WebWorkerInterface { } + +//// [/home/src/projects/project1/core.d.ts] +export const core = 10; + +//// [/home/src/projects/project1/file.ts] +export const file = 10; + +//// [/home/src/projects/project1/file2.ts] +/// +/// +/// + + +//// [/home/src/projects/project1/index.ts] +export const x = "type1"; + +//// [/home/src/projects/project1/tsconfig.json] +{ + "compilerOptions": { + "composite": true, + "traceResolution": true + } +} + +//// [/home/src/projects/project1/utils.d.ts] +export const y = 10; + + + +Output:: +/home/src/lib/tsc -p project1 --explainFiles +File '/home/src/projects/project1/package.json' does not exist. +File '/home/src/projects/package.json' does not exist. +File '/home/src/package.json' does not exist. +File '/home/package.json' does not exist. +File '/package.json' does not exist. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +======== Resolving module '@typescript/lib-scripthost' from '/home/src/projects/project1/__lib_node_modules_lookup_lib.scripthost.d.ts__.ts'. ======== +Explicitly specified module resolution kind: 'Node10'. +Loading module '@typescript/lib-scripthost' from 'node_modules' folder, target file types: TypeScript, Declaration. +Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Directory '/home/src/projects/project1/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Directory '/home/src/projects/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Directory '/home/src/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Directory '/home/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Directory '/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Loading module '@typescript/lib-scripthost' from 'node_modules' folder, target file types: JavaScript. +Searching all ancestor node_modules directories for fallback extensions: JavaScript. +Directory '/home/src/projects/project1/node_modules' does not exist, skipping all lookups in it. +Directory '/home/src/projects/node_modules' does not exist, skipping all lookups in it. +Directory '/home/src/node_modules' does not exist, skipping all lookups in it. +Directory '/home/node_modules' does not exist, skipping all lookups in it. +Directory '/node_modules' does not exist, skipping all lookups in it. +======== Module name '@typescript/lib-scripthost' was not resolved. ======== +File '/home/src/lib/package.json' does not exist. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +project1/file2.ts:1:21 - error TS2727: Cannot find lib definition for 'webworker2'. Did you mean 'webworker'? + +1 /// +   ~~~~~~~~~~ + +project1/file2.ts:2:21 - error TS2726: Cannot find lib definition for 'unknownlib'. + +2 /// +   ~~~~~~~~~~ + +../lib/lib.d.ts + Default library for target 'es5' +../lib/lib.scripthost.d.ts + Library referenced via 'scripthost' from file 'project1/file2.ts' +project1/core.d.ts + Matched by default include pattern '**/*' +project1/file.ts + Matched by default include pattern '**/*' +project1/file2.ts + Matched by default include pattern '**/*' +project1/index.ts + Matched by default include pattern '**/*' +project1/utils.d.ts + Matched by default include pattern '**/*' + +Found 2 errors in the same file, starting at: project1/file2.ts:1 + +exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated +Program root files: [ + "/home/src/projects/project1/core.d.ts", + "/home/src/projects/project1/file.ts", + "/home/src/projects/project1/file2.ts", + "/home/src/projects/project1/index.ts", + "/home/src/projects/project1/utils.d.ts" +] +Program options: { + "composite": true, + "traceResolution": true, + "project": "/home/src/projects/project1", + "explainFiles": true, + "configFilePath": "/home/src/projects/project1/tsconfig.json" +} +Program structureReused: Not +Program files:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/core.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Semantic diagnostics in builder refreshed for:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/core.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Shape signatures in builder refreshed for:: +/home/src/lib/lib.d.ts (used version) +/home/src/lib/lib.scripthost.d.ts (used version) +/home/src/projects/project1/core.d.ts (used version) +/home/src/projects/project1/file.ts (computed .d.ts during emit) +/home/src/projects/project1/file2.ts (computed .d.ts during emit) +/home/src/projects/project1/index.ts (computed .d.ts during emit) +/home/src/projects/project1/utils.d.ts (used version) + + +//// [/home/src/projects/project1/file.d.ts] +export declare const file = 10; + + +//// [/home/src/projects/project1/file.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.file = void 0; +exports.file = 10; + + +//// [/home/src/projects/project1/file2.d.ts] + + +//// [/home/src/projects/project1/file2.js] +/// +/// +/// + + +//// [/home/src/projects/project1/index.d.ts] +export declare const x = "type1"; + + +//// [/home/src/projects/project1/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x = "type1"; + + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../lib/lib.d.ts","../../lib/lib.scripthost.d.ts","./core.d.ts","./file.ts","./file2.ts","./index.ts","./utils.d.ts"],"fileInfos":[{"version":"3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"-5403980302-interface ScriptHostInterface { }","affectsGlobalScope":true,"impliedFormat":1},{"version":"-15683237936-export const core = 10;","impliedFormat":1},{"version":"-16628394009-export const file = 10;","signature":"-9025507999-export declare const file = 10;\n","impliedFormat":1},{"version":"-15920922626-/// \n/// \n/// \n","signature":"5381-","impliedFormat":1},{"version":"-11532698187-export const x = \"type1\";","signature":"-5899226897-export declare const x = \"type1\";\n","impliedFormat":1},{"version":"-13729955264-export const y = 10;","impliedFormat":1}],"root":[[3,7]],"options":{"composite":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,2,3,4,5,6,7],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"} + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "fileInfos": { + "../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "../../lib/lib.scripthost.d.ts": { + "original": { + "version": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "-5403980302-interface ScriptHostInterface { }", + "signature": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "./core.d.ts": { + "original": { + "version": "-15683237936-export const core = 10;", + "impliedFormat": 1 + }, + "version": "-15683237936-export const core = 10;", + "signature": "-15683237936-export const core = 10;", + "impliedFormat": "commonjs" + }, + "./file.ts": { + "original": { + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": 1 + }, + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": "commonjs" + }, + "./file2.ts": { + "original": { + "version": "-15920922626-/// \n/// \n/// \n", + "signature": "5381-", + "impliedFormat": 1 + }, + "version": "-15920922626-/// \n/// \n/// \n", + "signature": "5381-", + "impliedFormat": "commonjs" + }, + "./index.ts": { + "original": { + "version": "-11532698187-export const x = \"type1\";", + "signature": "-5899226897-export declare const x = \"type1\";\n", + "impliedFormat": 1 + }, + "version": "-11532698187-export const x = \"type1\";", + "signature": "-5899226897-export declare const x = \"type1\";\n", + "impliedFormat": "commonjs" + }, + "./utils.d.ts": { + "original": { + "version": "-13729955264-export const y = 10;", + "impliedFormat": 1 + }, + "version": "-13729955264-export const y = 10;", + "signature": "-13729955264-export const y = 10;", + "impliedFormat": "commonjs" + } + }, + "root": [ + [ + [ + 3, + 7 + ], + [ + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ] + ] + ], + "options": { + "composite": true + }, + "referencedMap": {}, + "semanticDiagnosticsPerFile": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "latestChangedDtsFile": "./index.d.ts" + }, + "version": "FakeTSVersion", + "size": 1512 +} + diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js new file mode 100644 index 0000000000000..fce4f798628fa --- /dev/null +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js @@ -0,0 +1,975 @@ +currentDirectory:: /home/src/projects/project useCaseSensitiveFileNames: false +Input:: +//// [/home/src/projects/project/src/struct.d.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/src/anotherFile.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/src/oneMore.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/tsconfig.json] +{} + +//// [/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts] +export function foo(): void + +//// [/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; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; + + +/a/lib/tsc.js -w --explainFiles +Output:: +>> Screen clear +[HH:MM:SS AM] Starting compilation in watch mode... + +src/anotherFile.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +src/anotherFile.ts:3:22 - error TS1261: Already included file name '/home/src/projects/project/src/Struct.d.ts' differs from file name '/home/src/projects/project/src/struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +3 import * as xs3 from "./Struct"; +   ~~~~~~~~~~ + + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/anotherFile.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/oneMore.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +src/oneMore.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/Struct.d.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +src/Struct.d.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +../../../../a/lib/lib.d.ts + Default library for target 'es5' +node_modules/fp-ts/lib/Struct.d.ts + Imported via "fp-ts/lib/Struct" from file 'src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file 'src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file 'src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file 'src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file 'src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file 'src/oneMore.ts' +src/Struct.d.ts + Imported via "./Struct" from file 'src/anotherFile.ts' + Imported via "./Struct" from file 'src/Struct.d.ts' + Imported via "./struct" from file 'src/Struct.d.ts' + Imported via "./struct" from file 'src/anotherFile.ts' + Imported via "./Struct" from file 'src/oneMore.ts' + Imported via "./struct" from file 'src/oneMore.ts' + Matched by default include pattern '**/*' +src/anotherFile.ts + Matched by default include pattern '**/*' +src/oneMore.ts + Matched by default include pattern '**/*' +[HH:MM:SS AM] Found 7 errors. Watching for file changes. + + + +//// [/home/src/projects/project/src/anotherFile.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + +//// [/home/src/projects/project/src/oneMore.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + + +PolledWatches:: +/home/src/projects/node_modules/@types: *new* + {"pollingInterval":500} +/home/src/projects/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/node_modules/@types: *new* + {"pollingInterval":500} +/home/src/projects/project/node_modules/fp-ts/lib/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/node_modules/fp-ts/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/node_modules/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/src/package.json: *new* + {"pollingInterval":2000} + +FsWatches:: +/a/lib/lib.d.ts: *new* + {} +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts: *new* + {} +/home/src/projects/project/src/Struct.d.ts: *new* + {} +/home/src/projects/project/src/anotherFile.ts: *new* + {} +/home/src/projects/project/src/oneMore.ts: *new* + {} +/home/src/projects/project/tsconfig.json: *new* + {} + +FsWatchesRecursive:: +/home/src/projects/project: *new* + {} +/home/src/projects/project/node_modules: *new* + {} +/home/src/projects/project/src: *new* + {} + +Program root files: [ + "/home/src/projects/project/src/anotherFile.ts", + "/home/src/projects/project/src/oneMore.ts", + "/home/src/projects/project/src/struct.d.ts" +] +Program options: { + "watch": true, + "explainFiles": true, + "configFilePath": "/home/src/projects/project/tsconfig.json" +} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts +/home/src/projects/project/src/Struct.d.ts +/home/src/projects/project/src/anotherFile.ts +/home/src/projects/project/src/oneMore.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts +/home/src/projects/project/src/Struct.d.ts +/home/src/projects/project/src/anotherFile.ts +/home/src/projects/project/src/oneMore.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts (used version) +/home/src/projects/project/src/struct.d.ts (used version) +/home/src/projects/project/src/anotherfile.ts (used version) +/home/src/projects/project/src/onemore.ts (used version) + +exitCode:: ExitStatus.undefined + +Change:: change to reuse imports + +Input:: +//// [/home/src/projects/project/src/struct.d.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; +export const y = 10; + + +Timeout callback:: count: 1 +1: timerToUpdateProgram *new* + +Before running Timeout callback:: count: 1 +1: timerToUpdateProgram + +After running Timeout callback:: count: 0 +Output:: +>> Screen clear +[HH:MM:SS AM] File change detected. Starting incremental compilation... + +src/anotherFile.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +src/anotherFile.ts:3:22 - error TS1261: Already included file name '/home/src/projects/project/src/Struct.d.ts' differs from file name '/home/src/projects/project/src/struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +3 import * as xs3 from "./Struct"; +   ~~~~~~~~~~ + + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/anotherFile.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/oneMore.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +src/oneMore.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/Struct.d.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +src/Struct.d.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +../../../../a/lib/lib.d.ts + Default library for target 'es5' +node_modules/fp-ts/lib/Struct.d.ts + Imported via "fp-ts/lib/Struct" from file 'src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file 'src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file 'src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file 'src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file 'src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file 'src/oneMore.ts' +src/Struct.d.ts + Imported via "./Struct" from file 'src/anotherFile.ts' + Imported via "./Struct" from file 'src/Struct.d.ts' + Imported via "./struct" from file 'src/Struct.d.ts' + Imported via "./struct" from file 'src/anotherFile.ts' + Imported via "./Struct" from file 'src/oneMore.ts' + Imported via "./struct" from file 'src/oneMore.ts' + Matched by default include pattern '**/*' +src/anotherFile.ts + Matched by default include pattern '**/*' +src/oneMore.ts + Matched by default include pattern '**/*' +[HH:MM:SS AM] Found 7 errors. Watching for file changes. + + + +//// [/home/src/projects/project/src/anotherFile.js] file written with same contents +//// [/home/src/projects/project/src/oneMore.js] file written with same contents + + +Program root files: [ + "/home/src/projects/project/src/anotherFile.ts", + "/home/src/projects/project/src/oneMore.ts", + "/home/src/projects/project/src/struct.d.ts" +] +Program options: { + "watch": true, + "explainFiles": true, + "configFilePath": "/home/src/projects/project/tsconfig.json" +} +Program structureReused: Completely +Program files:: +/a/lib/lib.d.ts +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts +/home/src/projects/project/src/Struct.d.ts +/home/src/projects/project/src/anotherFile.ts +/home/src/projects/project/src/oneMore.ts + +Semantic diagnostics in builder refreshed for:: +/home/src/projects/project/src/Struct.d.ts +/home/src/projects/project/src/anotherFile.ts +/home/src/projects/project/src/oneMore.ts + +Shape signatures in builder refreshed for:: +/home/src/projects/project/src/struct.d.ts (used version) +/home/src/projects/project/src/onemore.ts (computed .d.ts) +/home/src/projects/project/src/anotherfile.ts (computed .d.ts) + +exitCode:: ExitStatus.undefined + +Change:: change to update imports + +Input:: +//// [/home/src/projects/project/src/struct.d.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; + + + +Timeout callback:: count: 1 +2: timerToUpdateProgram *new* + +Before running Timeout callback:: count: 1 +2: timerToUpdateProgram + +After running Timeout callback:: count: 0 +Output:: +>> Screen clear +[HH:MM:SS AM] File change detected. Starting incremental compilation... + +src/anotherFile.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +src/anotherFile.ts:3:22 - error TS1261: Already included file name '/home/src/projects/project/src/Struct.d.ts' differs from file name '/home/src/projects/project/src/struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +3 import * as xs3 from "./Struct"; +   ~~~~~~~~~~ + + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/anotherFile.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/oneMore.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +src/oneMore.ts:4:22 - error TS1149: File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "./Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "./struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "./Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "./struct" from file '/home/src/projects/project/src/oneMore.ts' + Matched by default include pattern '**/*' + +4 import * as xs4 from "./struct"; +   ~~~~~~~~~~ + + src/anotherFile.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:4:22 + 4 import * as xs4 from "./struct"; +    ~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:3:22 + 3 import * as xs3 from "./Struct"; +    ~~~~~~~~~~ + File is included via import here. + +src/Struct.d.ts:2:22 - error TS1149: File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing. + The file is in the program because: + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file '/home/src/projects/project/src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file '/home/src/projects/project/src/oneMore.ts' + +2 import * as xs2 from "fp-ts/lib/struct"; +   ~~~~~~~~~~~~~~~~~~ + + src/anotherFile.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/anotherFile.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/Struct.d.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:1:22 + 1 import * as xs1 from "fp-ts/lib/Struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + src/oneMore.ts:2:22 + 2 import * as xs2 from "fp-ts/lib/struct"; +    ~~~~~~~~~~~~~~~~~~ + File is included via import here. + +../../../../a/lib/lib.d.ts + Default library for target 'es5' +node_modules/fp-ts/lib/Struct.d.ts + Imported via "fp-ts/lib/Struct" from file 'src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file 'src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file 'src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file 'src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file 'src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file 'src/oneMore.ts' +src/Struct.d.ts + Imported via "./Struct" from file 'src/anotherFile.ts' + Imported via "./Struct" from file 'src/Struct.d.ts' + Imported via "./struct" from file 'src/anotherFile.ts' + Imported via "./Struct" from file 'src/oneMore.ts' + Imported via "./struct" from file 'src/oneMore.ts' + Matched by default include pattern '**/*' +src/anotherFile.ts + Matched by default include pattern '**/*' +src/oneMore.ts + Matched by default include pattern '**/*' +[HH:MM:SS AM] Found 6 errors. Watching for file changes. + + + +//// [/home/src/projects/project/src/anotherFile.js] file written with same contents +//// [/home/src/projects/project/src/oneMore.js] file written with same contents + + +Program root files: [ + "/home/src/projects/project/src/anotherFile.ts", + "/home/src/projects/project/src/oneMore.ts", + "/home/src/projects/project/src/struct.d.ts" +] +Program options: { + "watch": true, + "explainFiles": true, + "configFilePath": "/home/src/projects/project/tsconfig.json" +} +Program structureReused: SafeModules +Program files:: +/a/lib/lib.d.ts +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts +/home/src/projects/project/src/Struct.d.ts +/home/src/projects/project/src/anotherFile.ts +/home/src/projects/project/src/oneMore.ts + +Semantic diagnostics in builder refreshed for:: +/home/src/projects/project/src/Struct.d.ts +/home/src/projects/project/src/anotherFile.ts +/home/src/projects/project/src/oneMore.ts + +Shape signatures in builder refreshed for:: +/home/src/projects/project/src/struct.d.ts (used version) +/home/src/projects/project/src/onemore.ts (computed .d.ts) +/home/src/projects/project/src/anotherfile.ts (computed .d.ts) + +exitCode:: ExitStatus.undefined diff --git a/tests/baselines/reference/tscWatch/libraryResolution/unknwon-lib.js b/tests/baselines/reference/tscWatch/libraryResolution/unknwon-lib.js new file mode 100644 index 0000000000000..3f98137c060fe --- /dev/null +++ b/tests/baselines/reference/tscWatch/libraryResolution/unknwon-lib.js @@ -0,0 +1,1516 @@ +currentDirectory:: /home/src/projects useCaseSensitiveFileNames: false +Input:: +//// [/home/src/projects/project1/utils.d.ts] +export const y = 10; + +//// [/home/src/projects/project1/file.ts] +export const file = 10; + +//// [/home/src/projects/project1/core.d.ts] +export const core = 10; + +//// [/home/src/projects/project1/index.ts] +export const x = "type1"; + +//// [/home/src/projects/project1/file2.ts] +/// +/// +/// + + +//// [/home/src/projects/project1/tsconfig.json] +{ + "compilerOptions": { + "composite": true, + "traceResolution": true + } +} + +//// [/home/src/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; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; + +//// [/home/src/lib/lib.webworker.d.ts] +interface WebWorkerInterface { } + +//// [/home/src/lib/lib.scripthost.d.ts] +interface ScriptHostInterface { } + + +/home/src/lib/tsc.js -w -p project1 --explainFiles --extendedDiagnostics +Output:: +[HH:MM:SS AM] Starting compilation in watch mode... + +Current directory: /home/src/projects CaseSensitiveFileNames: false +FileWatcher:: Added:: WatchInfo: /home/src/projects/project1/tsconfig.json 2000 undefined Config file +Synchronizing program +CreatingProgramWith:: + roots: ["/home/src/projects/project1/core.d.ts","/home/src/projects/project1/file.ts","/home/src/projects/project1/file2.ts","/home/src/projects/project1/index.ts","/home/src/projects/project1/utils.d.ts"] + options: {"composite":true,"traceResolution":true,"watch":true,"project":"/home/src/projects/project1","explainFiles":true,"extendedDiagnostics":true,"configFilePath":"/home/src/projects/project1/tsconfig.json"} +File '/home/src/projects/project1/package.json' does not exist. +File '/home/src/projects/package.json' does not exist. +File '/home/src/package.json' does not exist. +File '/home/package.json' does not exist. +File '/package.json' does not exist. +FileWatcher:: Added:: WatchInfo: /home/src/projects/project1/core.d.ts 250 undefined Source file +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +FileWatcher:: Added:: WatchInfo: /home/src/projects/project1/file.ts 250 undefined Source file +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +FileWatcher:: Added:: WatchInfo: /home/src/projects/project1/file2.ts 250 undefined Source file +======== Resolving module '@typescript/lib-scripthost' from '/home/src/projects/project1/__lib_node_modules_lookup_lib.scripthost.d.ts__.ts'. ======== +Explicitly specified module resolution kind: 'Node10'. +Loading module '@typescript/lib-scripthost' from 'node_modules' folder, target file types: TypeScript, Declaration. +Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Directory '/home/src/projects/project1/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Directory '/home/src/projects/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Directory '/home/src/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Directory '/home/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Directory '/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-scripthost' +Loading module '@typescript/lib-scripthost' from 'node_modules' folder, target file types: JavaScript. +Searching all ancestor node_modules directories for fallback extensions: JavaScript. +Directory '/home/src/projects/project1/node_modules' does not exist, skipping all lookups in it. +Directory '/home/src/projects/node_modules' does not exist, skipping all lookups in it. +Directory '/home/src/node_modules' does not exist, skipping all lookups in it. +Directory '/home/node_modules' does not exist, skipping all lookups in it. +Directory '/node_modules' does not exist, skipping all lookups in it. +======== Module name '@typescript/lib-scripthost' was not resolved. ======== +DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project1/node_modules 1 undefined Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project1/node_modules 1 undefined Failed Lookup Locations +DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/node_modules 1 undefined Failed Lookup Locations +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/node_modules 1 undefined Failed Lookup Locations +File '/home/src/lib/package.json' does not exist. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +FileWatcher:: Added:: WatchInfo: /home/src/lib/lib.scripthost.d.ts 250 undefined Source file +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +FileWatcher:: Added:: WatchInfo: /home/src/projects/project1/index.ts 250 undefined Source file +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +FileWatcher:: Added:: WatchInfo: /home/src/projects/project1/utils.d.ts 250 undefined Source file +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +FileWatcher:: Added:: WatchInfo: /home/src/lib/lib.d.ts 250 undefined Source file +FileWatcher:: Added:: WatchInfo: /home/src/projects/project1/package.json 2000 undefined File location affecting resolution +FileWatcher:: Added:: WatchInfo: /home/src/projects/package.json 2000 undefined File location affecting resolution +DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project1/node_modules/@types 1 undefined Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project1/node_modules/@types 1 undefined Type roots +DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/node_modules/@types 1 undefined Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/node_modules/@types 1 undefined Type roots +project1/file2.ts:1:21 - error TS2727: Cannot find lib definition for 'webworker2'. Did you mean 'webworker'? + +1 /// +   ~~~~~~~~~~ + +project1/file2.ts:2:21 - error TS2726: Cannot find lib definition for 'unknownlib'. + +2 /// +   ~~~~~~~~~~ + +../lib/lib.d.ts + Default library for target 'es5' +../lib/lib.scripthost.d.ts + Library referenced via 'scripthost' from file 'project1/file2.ts' +project1/core.d.ts + Matched by default include pattern '**/*' +project1/file.ts + Matched by default include pattern '**/*' +project1/file2.ts + Matched by default include pattern '**/*' +project1/index.ts + Matched by default include pattern '**/*' +project1/utils.d.ts + Matched by default include pattern '**/*' +[HH:MM:SS AM] Found 2 errors. Watching for file changes. + +DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project1 1 undefined Wild card directory +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project1 1 undefined Wild card directory + + +//// [/home/src/projects/project1/file.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.file = void 0; +exports.file = 10; + + +//// [/home/src/projects/project1/file.d.ts] +export declare const file = 10; + + +//// [/home/src/projects/project1/file2.js] +/// +/// +/// + + +//// [/home/src/projects/project1/file2.d.ts] + + +//// [/home/src/projects/project1/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x = "type1"; + + +//// [/home/src/projects/project1/index.d.ts] +export declare const x = "type1"; + + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../lib/lib.d.ts","../../lib/lib.scripthost.d.ts","./core.d.ts","./file.ts","./file2.ts","./index.ts","./utils.d.ts"],"fileInfos":[{"version":"3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"-5403980302-interface ScriptHostInterface { }","affectsGlobalScope":true,"impliedFormat":1},{"version":"-15683237936-export const core = 10;","impliedFormat":1},{"version":"-16628394009-export const file = 10;","signature":"-9025507999-export declare const file = 10;\n","impliedFormat":1},{"version":"-15920922626-/// \n/// \n/// \n","signature":"5381-","impliedFormat":1},{"version":"-11532698187-export const x = \"type1\";","signature":"-5899226897-export declare const x = \"type1\";\n","impliedFormat":1},{"version":"-13729955264-export const y = 10;","impliedFormat":1}],"root":[[3,7]],"options":{"composite":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,2,3,4,5,6,7],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"} + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "fileInfos": { + "../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "../../lib/lib.scripthost.d.ts": { + "original": { + "version": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "-5403980302-interface ScriptHostInterface { }", + "signature": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "./core.d.ts": { + "original": { + "version": "-15683237936-export const core = 10;", + "impliedFormat": 1 + }, + "version": "-15683237936-export const core = 10;", + "signature": "-15683237936-export const core = 10;", + "impliedFormat": "commonjs" + }, + "./file.ts": { + "original": { + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": 1 + }, + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": "commonjs" + }, + "./file2.ts": { + "original": { + "version": "-15920922626-/// \n/// \n/// \n", + "signature": "5381-", + "impliedFormat": 1 + }, + "version": "-15920922626-/// \n/// \n/// \n", + "signature": "5381-", + "impliedFormat": "commonjs" + }, + "./index.ts": { + "original": { + "version": "-11532698187-export const x = \"type1\";", + "signature": "-5899226897-export declare const x = \"type1\";\n", + "impliedFormat": 1 + }, + "version": "-11532698187-export const x = \"type1\";", + "signature": "-5899226897-export declare const x = \"type1\";\n", + "impliedFormat": "commonjs" + }, + "./utils.d.ts": { + "original": { + "version": "-13729955264-export const y = 10;", + "impliedFormat": 1 + }, + "version": "-13729955264-export const y = 10;", + "signature": "-13729955264-export const y = 10;", + "impliedFormat": "commonjs" + } + }, + "root": [ + [ + [ + 3, + 7 + ], + [ + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ] + ] + ], + "options": { + "composite": true + }, + "referencedMap": {}, + "semanticDiagnosticsPerFile": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "latestChangedDtsFile": "./index.d.ts" + }, + "version": "FakeTSVersion", + "size": 1512 +} + + +PolledWatches:: +/home/src/projects/node_modules: *new* + {"pollingInterval":500} +/home/src/projects/node_modules/@types: *new* + {"pollingInterval":500} +/home/src/projects/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project1/node_modules: *new* + {"pollingInterval":500} +/home/src/projects/project1/node_modules/@types: *new* + {"pollingInterval":500} +/home/src/projects/project1/package.json: *new* + {"pollingInterval":2000} + +FsWatches:: +/home/src/lib/lib.d.ts: *new* + {} +/home/src/lib/lib.scripthost.d.ts: *new* + {} +/home/src/projects/project1/core.d.ts: *new* + {} +/home/src/projects/project1/file.ts: *new* + {} +/home/src/projects/project1/file2.ts: *new* + {} +/home/src/projects/project1/index.ts: *new* + {} +/home/src/projects/project1/tsconfig.json: *new* + {} +/home/src/projects/project1/utils.d.ts: *new* + {} + +FsWatchesRecursive:: +/home/src/projects/project1: *new* + {} + +Program root files: [ + "/home/src/projects/project1/core.d.ts", + "/home/src/projects/project1/file.ts", + "/home/src/projects/project1/file2.ts", + "/home/src/projects/project1/index.ts", + "/home/src/projects/project1/utils.d.ts" +] +Program options: { + "composite": true, + "traceResolution": true, + "watch": true, + "project": "/home/src/projects/project1", + "explainFiles": true, + "extendedDiagnostics": true, + "configFilePath": "/home/src/projects/project1/tsconfig.json" +} +Program structureReused: Not +Program files:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/core.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Semantic diagnostics in builder refreshed for:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/core.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Shape signatures in builder refreshed for:: +/home/src/lib/lib.d.ts (used version) +/home/src/lib/lib.scripthost.d.ts (used version) +/home/src/projects/project1/core.d.ts (used version) +/home/src/projects/project1/file.ts (computed .d.ts during emit) +/home/src/projects/project1/file2.ts (computed .d.ts during emit) +/home/src/projects/project1/index.ts (computed .d.ts during emit) +/home/src/projects/project1/utils.d.ts (used version) + +exitCode:: ExitStatus.undefined + +Change:: edit index + +Input:: +//// [/home/src/projects/project1/index.ts] +export const x = "type1";export const xyz = 10; + + +Output:: +FileWatcher:: Triggered with /home/src/projects/project1/index.ts 1:: WatchInfo: /home/src/projects/project1/index.ts 250 undefined Source file +Scheduling update +Elapsed:: *ms FileWatcher:: Triggered with /home/src/projects/project1/index.ts 1:: WatchInfo: /home/src/projects/project1/index.ts 250 undefined Source file + + +Timeout callback:: count: 1 +1: timerToUpdateProgram *new* + +Before running Timeout callback:: count: 1 +1: timerToUpdateProgram + +After running Timeout callback:: count: 0 +Output:: +Synchronizing program +[HH:MM:SS AM] File change detected. Starting incremental compilation... + +CreatingProgramWith:: + roots: ["/home/src/projects/project1/core.d.ts","/home/src/projects/project1/file.ts","/home/src/projects/project1/file2.ts","/home/src/projects/project1/index.ts","/home/src/projects/project1/utils.d.ts"] + options: {"composite":true,"traceResolution":true,"watch":true,"project":"/home/src/projects/project1","explainFiles":true,"extendedDiagnostics":true,"configFilePath":"/home/src/projects/project1/tsconfig.json"} +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +Reusing resolution of module '@typescript/lib-scripthost' from '/home/src/projects/project1/__lib_node_modules_lookup_lib.scripthost.d.ts__.ts' of old program, it was not resolved. +project1/file2.ts:1:21 - error TS2727: Cannot find lib definition for 'webworker2'. Did you mean 'webworker'? + +1 /// +   ~~~~~~~~~~ + +project1/file2.ts:2:21 - error TS2726: Cannot find lib definition for 'unknownlib'. + +2 /// +   ~~~~~~~~~~ + +../lib/lib.d.ts + Default library for target 'es5' +../lib/lib.scripthost.d.ts + Library referenced via 'scripthost' from file 'project1/file2.ts' +project1/core.d.ts + Matched by default include pattern '**/*' +project1/file.ts + Matched by default include pattern '**/*' +project1/file2.ts + Matched by default include pattern '**/*' +project1/index.ts + Matched by default include pattern '**/*' +project1/utils.d.ts + Matched by default include pattern '**/*' +[HH:MM:SS AM] Found 2 errors. Watching for file changes. + + + +//// [/home/src/projects/project1/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.xyz = exports.x = void 0; +exports.x = "type1"; +exports.xyz = 10; + + +//// [/home/src/projects/project1/index.d.ts] +export declare const x = "type1"; +export declare const xyz = 10; + + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../lib/lib.d.ts","../../lib/lib.scripthost.d.ts","./core.d.ts","./file.ts","./file2.ts","./index.ts","./utils.d.ts"],"fileInfos":[{"version":"3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"-5403980302-interface ScriptHostInterface { }","affectsGlobalScope":true,"impliedFormat":1},{"version":"-15683237936-export const core = 10;","impliedFormat":1},{"version":"-16628394009-export const file = 10;","signature":"-9025507999-export declare const file = 10;\n","impliedFormat":1},{"version":"-15920922626-/// \n/// \n/// \n","signature":"5381-","impliedFormat":1},{"version":"-6136895998-export const x = \"type1\";export const xyz = 10;","signature":"-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n","impliedFormat":1},{"version":"-13729955264-export const y = 10;","impliedFormat":1}],"root":[[3,7]],"options":{"composite":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,2,3,4,5,6,7],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"} + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "fileInfos": { + "../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "../../lib/lib.scripthost.d.ts": { + "original": { + "version": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "-5403980302-interface ScriptHostInterface { }", + "signature": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "./core.d.ts": { + "original": { + "version": "-15683237936-export const core = 10;", + "impliedFormat": 1 + }, + "version": "-15683237936-export const core = 10;", + "signature": "-15683237936-export const core = 10;", + "impliedFormat": "commonjs" + }, + "./file.ts": { + "original": { + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": 1 + }, + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": "commonjs" + }, + "./file2.ts": { + "original": { + "version": "-15920922626-/// \n/// \n/// \n", + "signature": "5381-", + "impliedFormat": 1 + }, + "version": "-15920922626-/// \n/// \n/// \n", + "signature": "5381-", + "impliedFormat": "commonjs" + }, + "./index.ts": { + "original": { + "version": "-6136895998-export const x = \"type1\";export const xyz = 10;", + "signature": "-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n", + "impliedFormat": 1 + }, + "version": "-6136895998-export const x = \"type1\";export const xyz = 10;", + "signature": "-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n", + "impliedFormat": "commonjs" + }, + "./utils.d.ts": { + "original": { + "version": "-13729955264-export const y = 10;", + "impliedFormat": 1 + }, + "version": "-13729955264-export const y = 10;", + "signature": "-13729955264-export const y = 10;", + "impliedFormat": "commonjs" + } + }, + "root": [ + [ + [ + 3, + 7 + ], + [ + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ] + ] + ], + "options": { + "composite": true + }, + "referencedMap": {}, + "semanticDiagnosticsPerFile": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./core.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "latestChangedDtsFile": "./index.d.ts" + }, + "version": "FakeTSVersion", + "size": 1565 +} + + + +Program root files: [ + "/home/src/projects/project1/core.d.ts", + "/home/src/projects/project1/file.ts", + "/home/src/projects/project1/file2.ts", + "/home/src/projects/project1/index.ts", + "/home/src/projects/project1/utils.d.ts" +] +Program options: { + "composite": true, + "traceResolution": true, + "watch": true, + "project": "/home/src/projects/project1", + "explainFiles": true, + "extendedDiagnostics": true, + "configFilePath": "/home/src/projects/project1/tsconfig.json" +} +Program structureReused: Completely +Program files:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/core.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Semantic diagnostics in builder refreshed for:: +/home/src/projects/project1/index.ts + +Shape signatures in builder refreshed for:: +/home/src/projects/project1/index.ts (computed .d.ts) + +exitCode:: ExitStatus.undefined + +Change:: delete core + +Input:: +//// [/home/src/projects/project1/core.d.ts] deleted + +Output:: +FileWatcher:: Triggered with /home/src/projects/project1/core.d.ts 2:: WatchInfo: /home/src/projects/project1/core.d.ts 250 undefined Source file +Scheduling update +Elapsed:: *ms FileWatcher:: Triggered with /home/src/projects/project1/core.d.ts 2:: WatchInfo: /home/src/projects/project1/core.d.ts 250 undefined Source file +DirectoryWatcher:: Triggered with /home/src/projects/project1/core.d.ts :: WatchInfo: /home/src/projects/project1 1 undefined Wild card directory +Scheduling update +Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/projects/project1/core.d.ts :: WatchInfo: /home/src/projects/project1 1 undefined Wild card directory + + +Timeout callback:: count: 1 +3: timerToUpdateProgram *new* + +Before running Timeout callback:: count: 1 +3: timerToUpdateProgram + +After running Timeout callback:: count: 0 +Output:: +Reloading new file names and options +Synchronizing program +[HH:MM:SS AM] File change detected. Starting incremental compilation... + +CreatingProgramWith:: + roots: ["/home/src/projects/project1/file.ts","/home/src/projects/project1/file2.ts","/home/src/projects/project1/index.ts","/home/src/projects/project1/utils.d.ts"] + options: {"composite":true,"traceResolution":true,"watch":true,"project":"/home/src/projects/project1","explainFiles":true,"extendedDiagnostics":true,"configFilePath":"/home/src/projects/project1/tsconfig.json"} +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +Reusing resolution of module '@typescript/lib-scripthost' from '/home/src/projects/project1/__lib_node_modules_lookup_lib.scripthost.d.ts__.ts' of old program, it was not resolved. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +FileWatcher:: Close:: WatchInfo: /home/src/projects/project1/core.d.ts 250 undefined Source file +project1/file2.ts:1:21 - error TS2727: Cannot find lib definition for 'webworker2'. Did you mean 'webworker'? + +1 /// +   ~~~~~~~~~~ + +project1/file2.ts:2:21 - error TS2726: Cannot find lib definition for 'unknownlib'. + +2 /// +   ~~~~~~~~~~ + +../lib/lib.d.ts + Default library for target 'es5' +../lib/lib.scripthost.d.ts + Library referenced via 'scripthost' from file 'project1/file2.ts' +project1/file.ts + Matched by default include pattern '**/*' +project1/file2.ts + Matched by default include pattern '**/*' +project1/index.ts + Matched by default include pattern '**/*' +project1/utils.d.ts + Matched by default include pattern '**/*' +[HH:MM:SS AM] Found 2 errors. Watching for file changes. + + + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../lib/lib.d.ts","../../lib/lib.scripthost.d.ts","./file.ts","./file2.ts","./index.ts","./utils.d.ts"],"fileInfos":[{"version":"3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"-5403980302-interface ScriptHostInterface { }","affectsGlobalScope":true,"impliedFormat":1},{"version":"-16628394009-export const file = 10;","signature":"-9025507999-export declare const file = 10;\n","impliedFormat":1},{"version":"-15920922626-/// \n/// \n/// \n","signature":"5381-","impliedFormat":1},{"version":"-6136895998-export const x = \"type1\";export const xyz = 10;","signature":"-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n","impliedFormat":1},{"version":"-13729955264-export const y = 10;","impliedFormat":1}],"root":[[3,6]],"options":{"composite":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,2,3,4,5,6],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"} + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "fileInfos": { + "../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "../../lib/lib.scripthost.d.ts": { + "original": { + "version": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "-5403980302-interface ScriptHostInterface { }", + "signature": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "./file.ts": { + "original": { + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": 1 + }, + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": "commonjs" + }, + "./file2.ts": { + "original": { + "version": "-15920922626-/// \n/// \n/// \n", + "signature": "5381-", + "impliedFormat": 1 + }, + "version": "-15920922626-/// \n/// \n/// \n", + "signature": "5381-", + "impliedFormat": "commonjs" + }, + "./index.ts": { + "original": { + "version": "-6136895998-export const x = \"type1\";export const xyz = 10;", + "signature": "-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n", + "impliedFormat": 1 + }, + "version": "-6136895998-export const x = \"type1\";export const xyz = 10;", + "signature": "-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n", + "impliedFormat": "commonjs" + }, + "./utils.d.ts": { + "original": { + "version": "-13729955264-export const y = 10;", + "impliedFormat": 1 + }, + "version": "-13729955264-export const y = 10;", + "signature": "-13729955264-export const y = 10;", + "impliedFormat": "commonjs" + } + }, + "root": [ + [ + [ + 3, + 6 + ], + [ + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ] + ] + ], + "options": { + "composite": true + }, + "referencedMap": {}, + "semanticDiagnosticsPerFile": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "latestChangedDtsFile": "./index.d.ts" + }, + "version": "FakeTSVersion", + "size": 1480 +} + + +PolledWatches:: +/home/src/projects/node_modules: + {"pollingInterval":500} +/home/src/projects/node_modules/@types: + {"pollingInterval":500} +/home/src/projects/package.json: + {"pollingInterval":2000} +/home/src/projects/project1/node_modules: + {"pollingInterval":500} +/home/src/projects/project1/node_modules/@types: + {"pollingInterval":500} +/home/src/projects/project1/package.json: + {"pollingInterval":2000} + +FsWatches:: +/home/src/lib/lib.d.ts: + {} +/home/src/lib/lib.scripthost.d.ts: + {} +/home/src/projects/project1/file.ts: + {} +/home/src/projects/project1/file2.ts: + {} +/home/src/projects/project1/index.ts: + {} +/home/src/projects/project1/tsconfig.json: + {} +/home/src/projects/project1/utils.d.ts: + {} + +FsWatches *deleted*:: +/home/src/projects/project1/core.d.ts: + {} + +FsWatchesRecursive:: +/home/src/projects/project1: + {} + + +Program root files: [ + "/home/src/projects/project1/file.ts", + "/home/src/projects/project1/file2.ts", + "/home/src/projects/project1/index.ts", + "/home/src/projects/project1/utils.d.ts" +] +Program options: { + "composite": true, + "traceResolution": true, + "watch": true, + "project": "/home/src/projects/project1", + "explainFiles": true, + "extendedDiagnostics": true, + "configFilePath": "/home/src/projects/project1/tsconfig.json" +} +Program structureReused: Not +Program files:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Semantic diagnostics in builder refreshed for:: + +No shapes updated in the builder:: + +exitCode:: ExitStatus.undefined + +Change:: remove unknown lib + +Input:: +//// [/home/src/projects/project1/file2.ts] +/// +/// + + + +Output:: +FileWatcher:: Triggered with /home/src/projects/project1/file2.ts 1:: WatchInfo: /home/src/projects/project1/file2.ts 250 undefined Source file +Scheduling update +Elapsed:: *ms FileWatcher:: Triggered with /home/src/projects/project1/file2.ts 1:: WatchInfo: /home/src/projects/project1/file2.ts 250 undefined Source file + + +Timeout callback:: count: 1 +4: timerToUpdateProgram *new* + +Before running Timeout callback:: count: 1 +4: timerToUpdateProgram + +After running Timeout callback:: count: 0 +Output:: +Synchronizing program +[HH:MM:SS AM] File change detected. Starting incremental compilation... + +CreatingProgramWith:: + roots: ["/home/src/projects/project1/file.ts","/home/src/projects/project1/file2.ts","/home/src/projects/project1/index.ts","/home/src/projects/project1/utils.d.ts"] + options: {"composite":true,"traceResolution":true,"watch":true,"project":"/home/src/projects/project1","explainFiles":true,"extendedDiagnostics":true,"configFilePath":"/home/src/projects/project1/tsconfig.json"} +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +Reusing resolution of module '@typescript/lib-scripthost' from '/home/src/projects/project1/__lib_node_modules_lookup_lib.scripthost.d.ts__.ts' of old program, it was not resolved. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +project1/file2.ts:1:21 - error TS2727: Cannot find lib definition for 'webworker2'. Did you mean 'webworker'? + +1 /// +   ~~~~~~~~~~ + +../lib/lib.d.ts + Default library for target 'es5' +../lib/lib.scripthost.d.ts + Library referenced via 'scripthost' from file 'project1/file2.ts' +project1/file.ts + Matched by default include pattern '**/*' +project1/file2.ts + Matched by default include pattern '**/*' +project1/index.ts + Matched by default include pattern '**/*' +project1/utils.d.ts + Matched by default include pattern '**/*' +[HH:MM:SS AM] Found 1 error. Watching for file changes. + + + +//// [/home/src/projects/project1/file2.js] +/// +/// + + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../lib/lib.d.ts","../../lib/lib.scripthost.d.ts","./file.ts","./file2.ts","./index.ts","./utils.d.ts"],"fileInfos":[{"version":"3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"-5403980302-interface ScriptHostInterface { }","affectsGlobalScope":true,"impliedFormat":1},{"version":"-16628394009-export const file = 10;","signature":"-9025507999-export declare const file = 10;\n","impliedFormat":1},{"version":"-13885971376-/// \n/// \n","signature":"5381-","impliedFormat":1},{"version":"-6136895998-export const x = \"type1\";export const xyz = 10;","signature":"-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n","impliedFormat":1},{"version":"-13729955264-export const y = 10;","impliedFormat":1}],"root":[[3,6]],"options":{"composite":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,2,3,4,5,6],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"} + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "fileInfos": { + "../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "../../lib/lib.scripthost.d.ts": { + "original": { + "version": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "-5403980302-interface ScriptHostInterface { }", + "signature": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "./file.ts": { + "original": { + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": 1 + }, + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": "commonjs" + }, + "./file2.ts": { + "original": { + "version": "-13885971376-/// \n/// \n", + "signature": "5381-", + "impliedFormat": 1 + }, + "version": "-13885971376-/// \n/// \n", + "signature": "5381-", + "impliedFormat": "commonjs" + }, + "./index.ts": { + "original": { + "version": "-6136895998-export const x = \"type1\";export const xyz = 10;", + "signature": "-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n", + "impliedFormat": 1 + }, + "version": "-6136895998-export const x = \"type1\";export const xyz = 10;", + "signature": "-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n", + "impliedFormat": "commonjs" + }, + "./utils.d.ts": { + "original": { + "version": "-13729955264-export const y = 10;", + "impliedFormat": 1 + }, + "version": "-13729955264-export const y = 10;", + "signature": "-13729955264-export const y = 10;", + "impliedFormat": "commonjs" + } + }, + "root": [ + [ + [ + 3, + 6 + ], + [ + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ] + ] + ], + "options": { + "composite": true + }, + "referencedMap": {}, + "semanticDiagnosticsPerFile": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "latestChangedDtsFile": "./index.d.ts" + }, + "version": "FakeTSVersion", + "size": 1443 +} + + + +Program root files: [ + "/home/src/projects/project1/file.ts", + "/home/src/projects/project1/file2.ts", + "/home/src/projects/project1/index.ts", + "/home/src/projects/project1/utils.d.ts" +] +Program options: { + "composite": true, + "traceResolution": true, + "watch": true, + "project": "/home/src/projects/project1", + "explainFiles": true, + "extendedDiagnostics": true, + "configFilePath": "/home/src/projects/project1/tsconfig.json" +} +Program structureReused: SafeModules +Program files:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Semantic diagnostics in builder refreshed for:: +/home/src/projects/project1/file2.ts + +Shape signatures in builder refreshed for:: +/home/src/projects/project1/file2.ts (computed .d.ts) + +exitCode:: ExitStatus.undefined + +Change:: correct webworker lib + +Input:: +//// [/home/src/projects/project1/file2.ts] +/// +/// + + + +Output:: +FileWatcher:: Triggered with /home/src/projects/project1/file2.ts 1:: WatchInfo: /home/src/projects/project1/file2.ts 250 undefined Source file +Scheduling update +Elapsed:: *ms FileWatcher:: Triggered with /home/src/projects/project1/file2.ts 1:: WatchInfo: /home/src/projects/project1/file2.ts 250 undefined Source file + + +Timeout callback:: count: 1 +5: timerToUpdateProgram *new* + +Before running Timeout callback:: count: 1 +5: timerToUpdateProgram + +After running Timeout callback:: count: 0 +Output:: +Synchronizing program +[HH:MM:SS AM] File change detected. Starting incremental compilation... + +CreatingProgramWith:: + roots: ["/home/src/projects/project1/file.ts","/home/src/projects/project1/file2.ts","/home/src/projects/project1/index.ts","/home/src/projects/project1/utils.d.ts"] + options: {"composite":true,"traceResolution":true,"watch":true,"project":"/home/src/projects/project1","explainFiles":true,"extendedDiagnostics":true,"configFilePath":"/home/src/projects/project1/tsconfig.json"} +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +======== Resolving module '@typescript/lib-webworker' from '/home/src/projects/project1/__lib_node_modules_lookup_lib.webworker.d.ts__.ts'. ======== +Explicitly specified module resolution kind: 'Node10'. +Loading module '@typescript/lib-webworker' from 'node_modules' folder, target file types: TypeScript, Declaration. +Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Directory '/home/src/projects/project1/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-webworker' +Directory '/home/src/projects/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-webworker' +Directory '/home/src/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-webworker' +Directory '/home/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-webworker' +Directory '/node_modules' does not exist, skipping all lookups in it. +Scoped package detected, looking in 'typescript__lib-webworker' +Loading module '@typescript/lib-webworker' from 'node_modules' folder, target file types: JavaScript. +Searching all ancestor node_modules directories for fallback extensions: JavaScript. +Directory '/home/src/projects/project1/node_modules' does not exist, skipping all lookups in it. +Directory '/home/src/projects/node_modules' does not exist, skipping all lookups in it. +Directory '/home/src/node_modules' does not exist, skipping all lookups in it. +Directory '/home/node_modules' does not exist, skipping all lookups in it. +Directory '/node_modules' does not exist, skipping all lookups in it. +======== Module name '@typescript/lib-webworker' was not resolved. ======== +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +FileWatcher:: Added:: WatchInfo: /home/src/lib/lib.webworker.d.ts 250 undefined Source file +Reusing resolution of module '@typescript/lib-scripthost' from '/home/src/projects/project1/__lib_node_modules_lookup_lib.scripthost.d.ts__.ts' of old program, it was not resolved. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/project1/package.json' does not exist according to earlier cached lookups. +File '/home/src/projects/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +File '/home/src/lib/package.json' does not exist according to earlier cached lookups. +File '/home/src/package.json' does not exist according to earlier cached lookups. +File '/home/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +../lib/lib.d.ts + Default library for target 'es5' +../lib/lib.webworker.d.ts + Library referenced via 'webworker' from file 'project1/file2.ts' +../lib/lib.scripthost.d.ts + Library referenced via 'scripthost' from file 'project1/file2.ts' +project1/file.ts + Matched by default include pattern '**/*' +project1/file2.ts + Matched by default include pattern '**/*' +project1/index.ts + Matched by default include pattern '**/*' +project1/utils.d.ts + Matched by default include pattern '**/*' +[HH:MM:SS AM] Found 0 errors. Watching for file changes. + + + +//// [/home/src/projects/project1/file.js] file written with same contents +//// [/home/src/projects/project1/file2.js] +/// +/// + + +//// [/home/src/projects/project1/index.js] file written with same contents +//// [/home/src/projects/project1/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../lib/lib.d.ts","../../lib/lib.webworker.d.ts","../../lib/lib.scripthost.d.ts","./file.ts","./file2.ts","./index.ts","./utils.d.ts"],"fileInfos":[{"version":"3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"-3990185033-interface WebWorkerInterface { }","affectsGlobalScope":true,"impliedFormat":1},{"version":"-5403980302-interface ScriptHostInterface { }","affectsGlobalScope":true,"impliedFormat":1},{"version":"-16628394009-export const file = 10;","signature":"-9025507999-export declare const file = 10;\n","impliedFormat":1},{"version":"-17945718466-/// \n/// \n","signature":"5381-","impliedFormat":1},{"version":"-6136895998-export const x = \"type1\";export const xyz = 10;","signature":"-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n","impliedFormat":1},{"version":"-13729955264-export const y = 10;","impliedFormat":1}],"root":[[4,7]],"options":{"composite":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,3,2,4,5,6,7],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"} + +//// [/home/src/projects/project1/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../lib/lib.d.ts", + "../../lib/lib.webworker.d.ts", + "../../lib/lib.scripthost.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "fileInfos": { + "../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "../../lib/lib.webworker.d.ts": { + "original": { + "version": "-3990185033-interface WebWorkerInterface { }", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "-3990185033-interface WebWorkerInterface { }", + "signature": "-3990185033-interface WebWorkerInterface { }", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "../../lib/lib.scripthost.d.ts": { + "original": { + "version": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + "version": "-5403980302-interface ScriptHostInterface { }", + "signature": "-5403980302-interface ScriptHostInterface { }", + "affectsGlobalScope": true, + "impliedFormat": "commonjs" + }, + "./file.ts": { + "original": { + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": 1 + }, + "version": "-16628394009-export const file = 10;", + "signature": "-9025507999-export declare const file = 10;\n", + "impliedFormat": "commonjs" + }, + "./file2.ts": { + "original": { + "version": "-17945718466-/// \n/// \n", + "signature": "5381-", + "impliedFormat": 1 + }, + "version": "-17945718466-/// \n/// \n", + "signature": "5381-", + "impliedFormat": "commonjs" + }, + "./index.ts": { + "original": { + "version": "-6136895998-export const x = \"type1\";export const xyz = 10;", + "signature": "-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n", + "impliedFormat": 1 + }, + "version": "-6136895998-export const x = \"type1\";export const xyz = 10;", + "signature": "-9988949802-export declare const x = \"type1\";\nexport declare const xyz = 10;\n", + "impliedFormat": "commonjs" + }, + "./utils.d.ts": { + "original": { + "version": "-13729955264-export const y = 10;", + "impliedFormat": 1 + }, + "version": "-13729955264-export const y = 10;", + "signature": "-13729955264-export const y = 10;", + "impliedFormat": "commonjs" + } + }, + "root": [ + [ + [ + 4, + 7 + ], + [ + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ] + ] + ], + "options": { + "composite": true + }, + "referencedMap": {}, + "semanticDiagnosticsPerFile": [ + "../../lib/lib.d.ts", + "../../lib/lib.scripthost.d.ts", + "../../lib/lib.webworker.d.ts", + "./file.ts", + "./file2.ts", + "./index.ts", + "./utils.d.ts" + ], + "latestChangedDtsFile": "./index.d.ts" + }, + "version": "FakeTSVersion", + "size": 1578 +} + + +PolledWatches:: +/home/src/projects/node_modules: + {"pollingInterval":500} +/home/src/projects/node_modules/@types: + {"pollingInterval":500} +/home/src/projects/package.json: + {"pollingInterval":2000} +/home/src/projects/project1/node_modules: + {"pollingInterval":500} +/home/src/projects/project1/node_modules/@types: + {"pollingInterval":500} +/home/src/projects/project1/package.json: + {"pollingInterval":2000} + +FsWatches:: +/home/src/lib/lib.d.ts: + {} +/home/src/lib/lib.scripthost.d.ts: + {} +/home/src/lib/lib.webworker.d.ts: *new* + {} +/home/src/projects/project1/file.ts: + {} +/home/src/projects/project1/file2.ts: + {} +/home/src/projects/project1/index.ts: + {} +/home/src/projects/project1/tsconfig.json: + {} +/home/src/projects/project1/utils.d.ts: + {} + +FsWatchesRecursive:: +/home/src/projects/project1: + {} + + +Program root files: [ + "/home/src/projects/project1/file.ts", + "/home/src/projects/project1/file2.ts", + "/home/src/projects/project1/index.ts", + "/home/src/projects/project1/utils.d.ts" +] +Program options: { + "composite": true, + "traceResolution": true, + "watch": true, + "project": "/home/src/projects/project1", + "explainFiles": true, + "extendedDiagnostics": true, + "configFilePath": "/home/src/projects/project1/tsconfig.json" +} +Program structureReused: SafeModules +Program files:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.webworker.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Semantic diagnostics in builder refreshed for:: +/home/src/lib/lib.d.ts +/home/src/lib/lib.webworker.d.ts +/home/src/lib/lib.scripthost.d.ts +/home/src/projects/project1/file.ts +/home/src/projects/project1/file2.ts +/home/src/projects/project1/index.ts +/home/src/projects/project1/utils.d.ts + +Shape signatures in builder refreshed for:: +/home/src/lib/lib.webworker.d.ts (used version) +/home/src/lib/lib.scripthost.d.ts (used version) +/home/src/projects/project1/file.ts (computed .d.ts) +/home/src/projects/project1/file2.ts (computed .d.ts) +/home/src/projects/project1/index.ts (computed .d.ts) +/home/src/projects/project1/utils.d.ts (used version) + +exitCode:: ExitStatus.undefined diff --git a/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js b/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js new file mode 100644 index 0000000000000..3d07c2303ec9c --- /dev/null +++ b/tests/baselines/reference/tsserver/forceConsistentCasingInFileNames/when-file-is-included-from-multiple-places-with-different-casing.js @@ -0,0 +1,1542 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/typesMap.json" doesn't exist +Before request +//// [/home/src/projects/project/src/struct.d.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/src/anotherFile.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/src/oneMore.ts] +import * as xs1 from "fp-ts/lib/Struct"; +import * as xs2 from "fp-ts/lib/struct"; +import * as xs3 from "./Struct"; +import * as xs4 from "./struct"; + + +//// [/home/src/projects/project/tsconfig.json] +{} + +//// [/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts] +export function foo(): void + +//// [/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; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; + + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/projects/project/src/struct.d.ts", + "projectRootPath": "/home/src/projects/project" + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/projects/project/src/struct.d.ts ProjectRootPath: /home/src/projects/project:: Result: /home/src/projects/project/tsconfig.json +Info seq [hh:mm:ss:mss] Creating configuration project /home/src/projects/project/tsconfig.json +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/project/tsconfig.json 2000 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingStart", + "body": { + "projectName": "/home/src/projects/project/tsconfig.json", + "reason": "Creating possible configured project for /home/src/projects/project/src/struct.d.ts to open" + } + } +Info seq [hh:mm:ss:mss] Config: /home/src/projects/project/tsconfig.json : { + "rootNames": [ + "/home/src/projects/project/src/anotherFile.ts", + "/home/src/projects/project/src/oneMore.ts", + "/home/src/projects/project/src/struct.d.ts" + ], + "options": { + "configFilePath": "/home/src/projects/project/tsconfig.json" + } +} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project 1 undefined Config: /home/src/projects/project/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project 1 undefined Config: /home/src/projects/project/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/project/src/anotherFile.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/project/src/oneMore.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/projects/project/tsconfig.json +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/src 1 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/src 1 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules 1 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules 1 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/fp-ts/lib/package.json 2000 undefined Project: /home/src/projects/project/tsconfig.json WatchType: File location affecting resolution +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/fp-ts/package.json 2000 undefined Project: /home/src/projects/project/tsconfig.json WatchType: File location affecting resolution +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/package.json 2000 undefined Project: /home/src/projects/project/tsconfig.json WatchType: File location affecting resolution +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/project/package.json 2000 undefined Project: /home/src/projects/project/tsconfig.json WatchType: File location affecting resolution +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/package.json 2000 undefined Project: /home/src/projects/project/tsconfig.json WatchType: File location affecting resolution +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/projects/project/src/package.json 2000 undefined Project: /home/src/projects/project/tsconfig.json WatchType: File location affecting resolution +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types 1 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types 1 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/node_modules/@types 1 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/node_modules/@types 1 undefined Project: /home/src/projects/project/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/projects/project/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/projects/project/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (5) + /a/lib/lib.d.ts Text-1 "/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };" + /home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts Text-1 "export function foo(): void" + /home/src/projects/project/src/Struct.d.ts SVC-1-0 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + /home/src/projects/project/src/anotherFile.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + /home/src/projects/project/src/oneMore.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + + + ../../../../a/lib/lib.d.ts + Default library for target 'es5' + node_modules/fp-ts/lib/Struct.d.ts + Imported via "fp-ts/lib/Struct" from file 'src/anotherFile.ts' + Imported via "fp-ts/lib/struct" from file 'src/anotherFile.ts' + Imported via "fp-ts/lib/Struct" from file 'src/Struct.d.ts' + Imported via "fp-ts/lib/struct" from file 'src/Struct.d.ts' + Imported via "fp-ts/lib/Struct" from file 'src/oneMore.ts' + Imported via "fp-ts/lib/struct" from file 'src/oneMore.ts' + src/Struct.d.ts + Imported via "./Struct" from file 'src/anotherFile.ts' + Imported via "./Struct" from file 'src/Struct.d.ts' + Imported via "./struct" from file 'src/Struct.d.ts' + Imported via "./struct" from file 'src/anotherFile.ts' + Imported via "./Struct" from file 'src/oneMore.ts' + Imported via "./struct" from file 'src/oneMore.ts' + Matched by default include pattern '**/*' + src/anotherFile.ts + Matched by default include pattern '**/*' + src/oneMore.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingFinish", + "body": { + "projectName": "/home/src/projects/project/tsconfig.json" + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "telemetry", + "body": { + "telemetryEventName": "projectInfo", + "payload": { + "projectId": "1097a5f82e8323ba7aba7567ec06402f7ad4ea74abce44ec5efd223ac77ff169", + "fileStats": { + "js": 0, + "jsSize": 0, + "jsx": 0, + "jsxSize": 0, + "ts": 2, + "tsSize": 296, + "tsx": 0, + "tsxSize": 0, + "dts": 3, + "dtsSize": 588, + "deferred": 0, + "deferredSize": 0 + }, + "compilerOptions": {}, + "typeAcquisition": { + "enable": false, + "include": false, + "exclude": false + }, + "extends": false, + "files": false, + "include": false, + "exclude": false, + "compileOnSave": false, + "configFileName": "tsconfig.json", + "projectType": "configured", + "languageServiceEnabled": true, + "version": "FakeVersion" + } + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "configFileDiag", + "body": { + "triggerFile": "/home/src/projects/project/src/struct.d.ts", + "configFile": "/home/src/projects/project/tsconfig.json", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] Project '/home/src/projects/project/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (5) + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Open files: +Info seq [hh:mm:ss:mss] FileName: /home/src/projects/project/src/struct.d.ts ProjectRootPath: /home/src/projects/project +Info seq [hh:mm:ss:mss] Projects: /home/src/projects/project/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "responseRequired": false + } +After request + +PolledWatches:: +/home/src/projects/node_modules/@types: *new* + {"pollingInterval":500} +/home/src/projects/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/node_modules/@types: *new* + {"pollingInterval":500} +/home/src/projects/project/node_modules/fp-ts/lib/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/node_modules/fp-ts/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/node_modules/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/package.json: *new* + {"pollingInterval":2000} +/home/src/projects/project/src/package.json: *new* + {"pollingInterval":2000} + +FsWatches:: +/a/lib/lib.d.ts: *new* + {} +/home/src/projects/project/src/anotherFile.ts: *new* + {} +/home/src/projects/project/src/oneMore.ts: *new* + {} +/home/src/projects/project/tsconfig.json: *new* + {} + +FsWatchesRecursive:: +/home/src/projects/project: *new* + {} +/home/src/projects/project/node_modules: *new* + {} +/home/src/projects/project/src: *new* + {} + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *new* + projectStateVersion: 1 + projectProgramVersion: 1 + +ScriptInfos:: +/a/lib/lib.d.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/anotherFile.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/oneMore.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/struct.d.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/projects/project/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/projects/project/src/struct.d.ts" + ] + }, + "seq": 2, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "responseRequired": false + } +After request + +Timeout callback:: count: 1 +1: checkOne *new* + +Before running Timeout callback:: count: 1 +1: checkOne + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +1: semanticCheck *new* + +Before running Immedidate callback:: count: 1 +1: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [ + { + "start": { + "line": 2, + "offset": 22 + }, + "end": { + "line": 2, + "offset": 40 + }, + "text": "File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing.\n The file is in the program because:\n Imported via \"fp-ts/lib/Struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"fp-ts/lib/struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"fp-ts/lib/Struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"fp-ts/lib/struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"fp-ts/lib/Struct\" from file '/home/src/projects/project/src/oneMore.ts'\n Imported via \"fp-ts/lib/struct\" from file '/home/src/projects/project/src/oneMore.ts'", + "code": 1149, + "category": "error", + "relatedInformation": [ + { + "span": { + "start": { + "line": 1, + "offset": 22 + }, + "end": { + "line": 1, + "offset": 40 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 2, + "offset": 22 + }, + "end": { + "line": 2, + "offset": 40 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 1, + "offset": 22 + }, + "end": { + "line": 1, + "offset": 40 + }, + "file": "/home/src/projects/project/src/Struct.d.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 1, + "offset": 22 + }, + "end": { + "line": 1, + "offset": 40 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 2, + "offset": 22 + }, + "end": { + "line": 2, + "offset": 40 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + } + ] + }, + { + "start": { + "line": 4, + "offset": 22 + }, + "end": { + "line": 4, + "offset": 32 + }, + "text": "File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing.\n The file is in the program because:\n Imported via \"./Struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"./Struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"./Struct\" from file '/home/src/projects/project/src/oneMore.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/oneMore.ts'\n Matched by default include pattern '**/*'", + "code": 1149, + "category": "error", + "relatedInformation": [ + { + "span": { + "start": { + "line": 3, + "offset": 22 + }, + "end": { + "line": 3, + "offset": 32 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 3, + "offset": 22 + }, + "end": { + "line": 3, + "offset": 32 + }, + "file": "/home/src/projects/project/src/Struct.d.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 4, + "offset": 22 + }, + "end": { + "line": 4, + "offset": 32 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 3, + "offset": 22 + }, + "end": { + "line": 3, + "offset": 32 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 4, + "offset": 22 + }, + "end": { + "line": 4, + "offset": 32 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + } + ] + } + ] + } + } +After running Immedidate callback:: count: 1 + +Immedidate callback:: count: 1 +2: suggestionCheck *new* + +Before running Immedidate callback:: count: 1 +2: suggestionCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "suggestionDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 1, + "offset": 41 + }, + "text": "'xs1' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + }, + { + "start": { + "line": 2, + "offset": 1 + }, + "end": { + "line": 2, + "offset": 41 + }, + "text": "'xs2' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + }, + { + "start": { + "line": 3, + "offset": 1 + }, + "end": { + "line": 3, + "offset": 33 + }, + "text": "'xs3' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + }, + { + "start": { + "line": 4, + "offset": 1 + }, + "end": { + "line": 4, + "offset": 33 + }, + "text": "'xs4' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + } + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 2 + } + } +After running Immedidate callback:: count: 0 + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "changedFiles": [ + { + "fileName": "/home/src/projects/project/src/struct.d.ts", + "textChanges": [ + { + "newText": "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n\nexport const y = 10;", + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 5, + "offset": 1 + } + } + ] + } + ] + }, + "seq": 3, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true + } +After request + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* + projectProgramVersion: 1 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/anotherFile.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/oneMore.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/struct.d.ts (Open) *changed* + version: SVC-1-1 *changed* + containingProjects: 1 + /home/src/projects/project/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "definition", + "arguments": { + "file": "/home/src/projects/project/src/struct.d.ts", + "line": 1, + "offset": 22 + }, + "seq": 4, + "type": "request" + } +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/projects/project/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/projects/project/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: false structureIsReused:: Completely Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/projects/project/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (5) + /a/lib/lib.d.ts Text-1 "/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };" + /home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts Text-1 "export function foo(): void" + /home/src/projects/project/src/Struct.d.ts SVC-1-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n\nexport const y = 10;" + /home/src/projects/project/src/anotherFile.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + /home/src/projects/project/src/oneMore.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "file": "/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts", + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 1, + "offset": 28 + } + } + ], + "responseRequired": true + } +After request + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 1 + dirty: false *changed* + documentPositionMappers: 1 *changed* + /home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts: identitySourceMapConsumer *new* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts *changed* + version: Text-1 + sourceMapFilePath: false *changed* + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/anotherFile.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/oneMore.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/struct.d.ts (Open) + version: SVC-1-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "changedFiles": [ + { + "fileName": "/home/src/projects/project/src/struct.d.ts", + "textChanges": [ + { + "newText": "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n\nexport const y = 10;\nexport const yy = 10;", + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 6, + "offset": 21 + } + } + ] + } + ] + }, + "seq": 5, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true + } +After request + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *changed* + projectStateVersion: 3 *changed* + projectProgramVersion: 1 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/anotherFile.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/oneMore.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/struct.d.ts (Open) *changed* + version: SVC-1-2 *changed* + containingProjects: 1 + /home/src/projects/project/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/projects/project/src/struct.d.ts" + ] + }, + "seq": 6, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "responseRequired": false + } +After request + +Timeout callback:: count: 1 +2: checkOne *new* + +Before running Timeout callback:: count: 1 +2: checkOne + +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/projects/project/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/projects/project/tsconfig.json projectStateVersion: 3 projectProgramVersion: 1 structureChanged: false structureIsReused:: Completely Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/projects/project/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (5) + /a/lib/lib.d.ts Text-1 "/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };" + /home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts Text-1 "export function foo(): void" + /home/src/projects/project/src/Struct.d.ts SVC-1-2 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n\nexport const y = 10;\nexport const yy = 10;" + /home/src/projects/project/src/anotherFile.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + /home/src/projects/project/src/oneMore.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +3: semanticCheck *new* + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *changed* + projectStateVersion: 3 + projectProgramVersion: 1 + dirty: false *changed* + documentPositionMappers: 0 *changed* + /home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts: identitySourceMapConsumer *deleted* + +Before running Immedidate callback:: count: 1 +3: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [ + { + "start": { + "line": 2, + "offset": 22 + }, + "end": { + "line": 2, + "offset": 40 + }, + "text": "File name '/home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts' differs from already included file name '/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts' only in casing.\n The file is in the program because:\n Imported via \"fp-ts/lib/Struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"fp-ts/lib/struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"fp-ts/lib/Struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"fp-ts/lib/struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"fp-ts/lib/Struct\" from file '/home/src/projects/project/src/oneMore.ts'\n Imported via \"fp-ts/lib/struct\" from file '/home/src/projects/project/src/oneMore.ts'", + "code": 1149, + "category": "error", + "relatedInformation": [ + { + "span": { + "start": { + "line": 1, + "offset": 22 + }, + "end": { + "line": 1, + "offset": 40 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 2, + "offset": 22 + }, + "end": { + "line": 2, + "offset": 40 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 1, + "offset": 22 + }, + "end": { + "line": 1, + "offset": 40 + }, + "file": "/home/src/projects/project/src/Struct.d.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 1, + "offset": 22 + }, + "end": { + "line": 1, + "offset": 40 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 2, + "offset": 22 + }, + "end": { + "line": 2, + "offset": 40 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + } + ] + }, + { + "start": { + "line": 4, + "offset": 22 + }, + "end": { + "line": 4, + "offset": 32 + }, + "text": "File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing.\n The file is in the program because:\n Imported via \"./Struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"./Struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"./Struct\" from file '/home/src/projects/project/src/oneMore.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/oneMore.ts'\n Matched by default include pattern '**/*'", + "code": 1149, + "category": "error", + "relatedInformation": [ + { + "span": { + "start": { + "line": 3, + "offset": 22 + }, + "end": { + "line": 3, + "offset": 32 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 3, + "offset": 22 + }, + "end": { + "line": 3, + "offset": 32 + }, + "file": "/home/src/projects/project/src/Struct.d.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 4, + "offset": 22 + }, + "end": { + "line": 4, + "offset": 32 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 3, + "offset": 22 + }, + "end": { + "line": 3, + "offset": 32 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 4, + "offset": 22 + }, + "end": { + "line": 4, + "offset": 32 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + } + ] + } + ] + } + } +After running Immedidate callback:: count: 1 + +Immedidate callback:: count: 1 +4: suggestionCheck *new* + +Before running Immedidate callback:: count: 1 +4: suggestionCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "suggestionDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 1, + "offset": 41 + }, + "text": "'xs1' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + }, + { + "start": { + "line": 2, + "offset": 1 + }, + "end": { + "line": 2, + "offset": 41 + }, + "text": "'xs2' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + }, + { + "start": { + "line": 3, + "offset": 1 + }, + "end": { + "line": 3, + "offset": 33 + }, + "text": "'xs3' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + }, + { + "start": { + "line": 4, + "offset": 1 + }, + "end": { + "line": 4, + "offset": 33 + }, + "text": "'xs4' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + } + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 6 + } + } +After running Immedidate callback:: count: 0 + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "changedFiles": [ + { + "fileName": "/home/src/projects/project/src/struct.d.ts", + "textChanges": [ + { + "newText": "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\n", + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 7, + "offset": 22 + } + } + ] + } + ] + }, + "seq": 7, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true + } +After request + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *changed* + projectStateVersion: 4 *changed* + projectProgramVersion: 1 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/anotherFile.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/oneMore.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/struct.d.ts (Open) *changed* + version: SVC-1-3 *changed* + containingProjects: 1 + /home/src/projects/project/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "definition", + "arguments": { + "file": "/home/src/projects/project/src/struct.d.ts", + "line": 1, + "offset": 22 + }, + "seq": 8, + "type": "request" + } +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/projects/project/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/projects/project/tsconfig.json projectStateVersion: 4 projectProgramVersion: 1 structureChanged: true structureIsReused:: SafeModules Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/projects/project/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (5) + /a/lib/lib.d.ts Text-1 "/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };" + /home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts Text-1 "export function foo(): void" + /home/src/projects/project/src/Struct.d.ts SVC-1-3 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\n" + /home/src/projects/project/src/anotherFile.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + /home/src/projects/project/src/oneMore.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "file": "/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts", + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 1, + "offset": 28 + } + } + ], + "responseRequired": true + } +After request + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *changed* + projectStateVersion: 4 + projectProgramVersion: 2 *changed* + dirty: false *changed* + documentPositionMappers: 1 *changed* + /home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts: identitySourceMapConsumer *new* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "changedFiles": [ + { + "fileName": "/home/src/projects/project/src/struct.d.ts", + "textChanges": [ + { + "newText": "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs3 from \"./struct\";\n", + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 4, + "offset": 1 + } + } + ] + } + ] + }, + "seq": 9, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true + } +After request + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *changed* + projectStateVersion: 5 *changed* + projectProgramVersion: 2 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/anotherFile.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/oneMore.ts + version: Text-1 + containingProjects: 1 + /home/src/projects/project/tsconfig.json +/home/src/projects/project/src/struct.d.ts (Open) *changed* + version: SVC-1-4 *changed* + containingProjects: 1 + /home/src/projects/project/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/projects/project/src/struct.d.ts" + ] + }, + "seq": 10, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "responseRequired": false + } +After request + +Timeout callback:: count: 1 +3: checkOne *new* + +Before running Timeout callback:: count: 1 +3: checkOne + +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/projects/project/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/projects/project/tsconfig.json projectStateVersion: 5 projectProgramVersion: 2 structureChanged: true structureIsReused:: SafeModules Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/projects/project/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (5) + /a/lib/lib.d.ts Text-1 "/// \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; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };" + /home/src/projects/project/node_modules/fp-ts/lib/Struct.d.ts Text-1 "export function foo(): void" + /home/src/projects/project/src/Struct.d.ts SVC-1-4 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs3 from \"./struct\";\n" + /home/src/projects/project/src/anotherFile.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + /home/src/projects/project/src/oneMore.ts Text-1 "import * as xs1 from \"fp-ts/lib/Struct\";\nimport * as xs2 from \"fp-ts/lib/struct\";\nimport * as xs3 from \"./Struct\";\nimport * as xs4 from \"./struct\";\n" + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +5: semanticCheck *new* + +Projects:: +/home/src/projects/project/tsconfig.json (Configured) *changed* + projectStateVersion: 5 + projectProgramVersion: 3 *changed* + dirty: false *changed* + documentPositionMappers: 0 *changed* + /home/src/projects/project/node_modules/fp-ts/lib/struct.d.ts: identitySourceMapConsumer *deleted* + +Before running Immedidate callback:: count: 1 +5: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [ + { + "start": { + "line": 2, + "offset": 22 + }, + "end": { + "line": 2, + "offset": 32 + }, + "text": "File name '/home/src/projects/project/src/struct.d.ts' differs from already included file name '/home/src/projects/project/src/Struct.d.ts' only in casing.\n The file is in the program because:\n Imported via \"./Struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/Struct.d.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/anotherFile.ts'\n Imported via \"./Struct\" from file '/home/src/projects/project/src/oneMore.ts'\n Imported via \"./struct\" from file '/home/src/projects/project/src/oneMore.ts'\n Matched by default include pattern '**/*'", + "code": 1149, + "category": "error", + "relatedInformation": [ + { + "span": { + "start": { + "line": 3, + "offset": 22 + }, + "end": { + "line": 3, + "offset": 32 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 4, + "offset": 22 + }, + "end": { + "line": 4, + "offset": 32 + }, + "file": "/home/src/projects/project/src/anotherFile.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 3, + "offset": 22 + }, + "end": { + "line": 3, + "offset": 32 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + }, + { + "span": { + "start": { + "line": 4, + "offset": 22 + }, + "end": { + "line": 4, + "offset": 32 + }, + "file": "/home/src/projects/project/src/oneMore.ts" + }, + "message": "File is included via import here.", + "category": "message", + "code": 1399 + } + ] + } + ] + } + } +After running Immedidate callback:: count: 1 + +Immedidate callback:: count: 1 +6: suggestionCheck *new* + +Before running Immedidate callback:: count: 1 +6: suggestionCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "suggestionDiag", + "body": { + "file": "/home/src/projects/project/src/struct.d.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 1 + }, + "end": { + "line": 1, + "offset": 41 + }, + "text": "'xs1' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + }, + { + "start": { + "line": 2, + "offset": 1 + }, + "end": { + "line": 2, + "offset": 33 + }, + "text": "'xs3' is declared but its value is never read.", + "code": 6133, + "category": "suggestion", + "reportsUnnecessary": true + } + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 10 + } + } +After running Immedidate callback:: count: 0 diff --git a/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options-errors.js b/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options-errors.js index fcbcb5243c596..224c41a30ec48 100644 --- a/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options-errors.js +++ b/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options-errors.js @@ -79,7 +79,6 @@ Info seq [hh:mm:ss:mss] Files (4) ../../../../a/lib/lib.d.ts Default library for target 'es5' node_modules/bar/foo.d.ts - Imported via "./foo" from file 'node_modules/bar/index.d.ts' Imported via "./foo" from file 'node_modules/bar/index.d.ts' Root file specified for compilation node_modules/bar/index.d.ts diff --git a/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options-in-host-configuration.js b/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options-in-host-configuration.js index 81d1539aab128..edec9cd7880a5 100644 --- a/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options-in-host-configuration.js +++ b/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options-in-host-configuration.js @@ -106,7 +106,6 @@ Info seq [hh:mm:ss:mss] Files (4) ../../../../a/lib/lib.d.ts Default library for target 'es5' node_modules/bar/foo.d.ts - Imported via "./foo" from file 'node_modules/bar/index.d.ts' Imported via "./foo" from file 'node_modules/bar/index.d.ts' Root file specified for compilation node_modules/bar/index.d.ts diff --git a/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options.js b/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options.js index a933e9eaccc34..e8d5952b5c06a 100644 --- a/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options.js +++ b/tests/baselines/reference/tsserver/watchEnvironment/external-project-watch-options.js @@ -77,7 +77,6 @@ Info seq [hh:mm:ss:mss] Files (4) ../../../../a/lib/lib.d.ts Default library for target 'es5' node_modules/bar/foo.d.ts - Imported via "./foo" from file 'node_modules/bar/index.d.ts' Imported via "./foo" from file 'node_modules/bar/index.d.ts' Root file specified for compilation node_modules/bar/index.d.ts