Picking resolutions of module for sourceFile as method (#55818)

This commit is contained in:
Sheetal Nandi 2023-09-22 10:24:37 -07:00 committed by GitHub
parent b47022b997
commit 83f02a4b7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
45 changed files with 304 additions and 544 deletions

View File

@ -238,18 +238,15 @@ export namespace BuilderState {
}
// Handle type reference directives
const resolvedTypeReferenceDirectiveNames = program.resolvedTypeReferenceDirectiveNames?.get(sourceFile.path);
if (resolvedTypeReferenceDirectiveNames) {
resolvedTypeReferenceDirectiveNames.forEach(({ resolvedTypeReferenceDirective }) => {
if (!resolvedTypeReferenceDirective) {
return;
}
program.forEachResolvedTypeReferenceDirective(({ resolvedTypeReferenceDirective }) => {
if (!resolvedTypeReferenceDirective) {
return;
}
const fileName = resolvedTypeReferenceDirective.resolvedFileName!; // TODO: GH#18217
const typeFilePath = getReferencedFileFromFileName(program, fileName, sourceFileDirectory, getCanonicalFileName);
addReferencedFile(typeFilePath);
});
}
const fileName = resolvedTypeReferenceDirective.resolvedFileName!; // TODO: GH#18217
const typeFilePath = getReferencedFileFromFileName(program, fileName, sourceFileDirectory, getCanonicalFileName);
addReferencedFile(typeFilePath);
}, sourceFile);
// Add module augmentation as references
if (sourceFile.moduleAugmentations.length) {

View File

@ -4959,7 +4959,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
(isLiteralImportTypeNode(location) ? location : undefined)?.argument.literal;
const mode = contextSpecifier && isStringLiteralLike(contextSpecifier) ? getModeForUsageLocation(currentSourceFile, contextSpecifier) : currentSourceFile.impliedNodeFormat;
const moduleResolutionKind = getEmitModuleResolutionKind(compilerOptions);
const resolvedModule = host.resolvedModules?.get(currentSourceFile.path)?.get(moduleReference, mode)?.resolvedModule;
const resolvedModule = host.getResolvedModule(currentSourceFile, moduleReference, mode)?.resolvedModule;
const resolutionDiagnostic = resolvedModule && getResolutionDiagnostic(compilerOptions, resolvedModule, currentSourceFile);
const sourceFile = resolvedModule
&& (!resolutionDiagnostic || resolutionDiagnostic === Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set)

View File

@ -1175,7 +1175,7 @@ export function getReferencedFileLocation(program: Program, ref: ReferencedFile)
switch (kind) {
case FileIncludeKind.Import:
const importLiteral = getModuleNameStringLiteralAt(file, index);
packageId = program.resolvedModules?.get(file.path)?.get(importLiteral.text, getModeForResolutionAtIndex(file, index))?.resolvedModule?.packageId;
packageId = program.getResolvedModule(file, importLiteral.text, getModeForResolutionAtIndex(file, index))?.resolvedModule?.packageId;
if (importLiteral.pos === -1) return { file, packageId, text: importLiteral.text };
pos = skipTrivia(file.text, importLiteral.pos);
end = importLiteral.end;
@ -1185,7 +1185,7 @@ export function getReferencedFileLocation(program: Program, ref: ReferencedFile)
break;
case FileIncludeKind.TypeReferenceDirective:
({ pos, end, resolutionMode } = file.typeReferenceDirectives[index]);
packageId = program.resolvedTypeReferenceDirectiveNames?.get(file.path)?.get(toFileNameLowerCase(file.typeReferenceDirectives[index].fileName), resolutionMode || file.impliedNodeFormat)?.resolvedTypeReferenceDirective?.packageId;
packageId = program.getResolvedTypeReferenceDirective(file, toFileNameLowerCase(file.typeReferenceDirectives[index].fileName), resolutionMode || file.impliedNodeFormat)?.resolvedTypeReferenceDirective?.packageId;
break;
case FileIncludeKind.LibReferenceDirective:
({ pos, end } = file.libReferenceDirectives[index]);
@ -1886,6 +1886,10 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
resolvedModules,
resolvedTypeReferenceDirectiveNames,
resolvedLibReferences,
getResolvedModule,
getResolvedTypeReferenceDirective,
forEachResolvedModule,
forEachResolvedTypeReferenceDirective,
getCurrentPackagesMap: () => packageMap,
typesPackageExists,
packageBundlesTypes,
@ -1935,6 +1939,37 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
return program;
function getResolvedModule(file: SourceFile, moduleName: string, mode: ResolutionMode) {
return resolvedModules?.get(file.path)?.get(moduleName, mode);
}
function getResolvedTypeReferenceDirective(file: SourceFile, typeDirectiveName: string, mode: ResolutionMode) {
return resolvedTypeReferenceDirectiveNames?.get(file.path)?.get(typeDirectiveName, mode);
}
function forEachResolvedModule(
callback: (resolution: ResolvedModuleWithFailedLookupLocations, moduleName: string, mode: ResolutionMode, filePath: Path) => void,
file?: SourceFile,
) {
forEachResolution(resolvedModules, callback, file);
}
function forEachResolvedTypeReferenceDirective(
callback: (resolution: ResolvedTypeReferenceDirectiveWithFailedLookupLocations, moduleName: string, mode: ResolutionMode, filePath: Path) => void,
file?: SourceFile,
): void {
forEachResolution(resolvedTypeReferenceDirectiveNames, callback, file);
}
function forEachResolution<T>(
resolutionCache: Map<Path, ModeAwareCache<T>> | undefined,
callback: (resolution: T, moduleName: string, mode: ResolutionMode, filePath: Path) => void,
file: SourceFile | undefined,
) {
if (file) resolutionCache?.get(file.path)?.forEach((resolution, name, mode) => callback(resolution, name, mode, file.path));
else resolutionCache?.forEach((resolutions, filePath) => resolutions.forEach((resolution, name, mode) => callback(resolution, name, mode, filePath)));
}
function getPackagesMap() {
if (packageMap) return packageMap;
packageMap = new Map();
@ -1942,11 +1977,9 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
// This is useful as an approximation of whether a package bundles its own types.
// Note: we only look at files already found by module resolution,
// so there may be files we did not consider.
files.forEach(sf =>
resolvedModules?.get(sf.path)?.forEach(({ resolvedModule }) => {
if (resolvedModule?.packageId) packageMap!.set(resolvedModule.packageId.name, resolvedModule.extension === Extension.Dts || !!packageMap!.get(resolvedModule.packageId.name));
})
);
forEachResolvedModule(({ resolvedModule }) => {
if (resolvedModule?.packageId) packageMap!.set(resolvedModule.packageId.name, resolvedModule.extension === Extension.Dts || !!packageMap!.get(resolvedModule.packageId.name));
});
return packageMap;
}
@ -2119,7 +2152,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
// If the source file is unchanged and doesnt have invalidated resolution, reuse the module resolutions
if (file === oldSourceFile && !hasInvalidatedResolutions(file.path)) {
const mode = getModeForUsageLocation(file, moduleName);
const oldResolution = oldProgram?.resolvedModules?.get(file.path)?.get(moduleName.text, mode);
const oldResolution = oldProgram?.getResolvedModule(file, moduleName.text, mode);
if (oldResolution?.resolvedModule) {
if (isTraceEnabled(options, host)) {
trace(
@ -2187,7 +2220,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
// If we change our policy of rechecking failed lookups on each program create,
// we should adjust the value returned here.
function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName: StringLiteralLike): boolean {
const resolutionToFile = oldProgram?.resolvedModules?.get(file.path)?.get(moduleName.text, getModeForUsageLocation(file, moduleName))?.resolvedModule;
const resolutionToFile = oldProgram?.getResolvedModule(file, moduleName.text, getModeForUsageLocation(file, moduleName))?.resolvedModule;
const resolvedFile = resolutionToFile && oldProgram!.getSourceFile(resolutionToFile.resolvedFileName);
if (resolutionToFile && resolvedFile) {
// In the old program, we resolved to an ambient module that was in the same
@ -2234,7 +2267,9 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
if (canReuseResolutions) {
const typeDirectiveName = getTypeReferenceResolutionName(entry);
const mode = getModeForFileReference(entry, containingSourceFile?.impliedNodeFormat);
const oldResolution = (!isString(containingFile) ? oldProgram?.resolvedTypeReferenceDirectiveNames?.get(containingFile.path) : oldProgram?.getAutomaticTypeDirectiveResolutions())?.get(typeDirectiveName, mode);
const oldResolution = !isString(containingFile) ?
oldProgram?.getResolvedTypeReferenceDirective(containingFile, typeDirectiveName, mode) :
oldProgram?.getAutomaticTypeDirectiveResolutions()?.get(typeDirectiveName, mode);
if (oldResolution?.resolvedTypeReferenceDirective) {
if (isTraceEnabled(options, host)) {
trace(
@ -2476,22 +2511,29 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
const moduleNames = getModuleNames(newSourceFile);
const resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFile);
(resolvedModulesProcessing ??= new Map()).set(newSourceFile.path, resolutions);
const oldResolutions = oldProgram.resolvedModules?.get(newSourceFile.path);
// ensure that module resolution results are still correct
const resolutionsChanged = hasChangesInResolutions(moduleNames, newSourceFile, resolutions, oldResolutions, moduleResolutionIsEqualTo, moduleResolutionNameAndModeGetter);
const resolutionsChanged = hasChangesInResolutions(
moduleNames,
newSourceFile,
resolutions,
(name, mode) => oldProgram!.getResolvedModule(newSourceFile, name, mode),
moduleResolutionIsEqualTo,
moduleResolutionNameAndModeGetter,
);
if (resolutionsChanged) structureIsReused = StructureIsReused.SafeModules;
const typesReferenceDirectives = newSourceFile.typeReferenceDirectives;
const typeReferenceResolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typesReferenceDirectives, newSourceFile);
(resolvedTypeReferenceDirectiveNamesProcessing ??= new Map()).set(newSourceFile.path, typeReferenceResolutions);
// ensure that types resolutions are still correct
const oldTypeResolutions = oldProgram.resolvedTypeReferenceDirectiveNames?.get(newSourceFile.path);
const typeReferenceResolutionsChanged = hasChangesInResolutions(typesReferenceDirectives, newSourceFile, typeReferenceResolutions, oldTypeResolutions, typeDirectiveIsEqualTo, typeReferenceResolutionNameAndModeGetter);
if (typeReferenceResolutionsChanged) {
structureIsReused = StructureIsReused.SafeModules;
}
else if (oldTypeResolutions) {
(resolvedTypeReferenceDirectiveNamesProcessing ??= new Map()).set(newSourceFile.path, oldTypeResolutions);
}
const typeReferenceResolutionsChanged = hasChangesInResolutions(
typesReferenceDirectives,
newSourceFile,
typeReferenceResolutions,
(name, mode) => oldProgram?.getResolvedTypeReferenceDirective(newSourceFile, name, mode),
typeDirectiveIsEqualTo,
typeReferenceResolutionNameAndModeGetter,
);
if (typeReferenceResolutionsChanged) structureIsReused = StructureIsReused.SafeModules;
}
if (structureIsReused !== StructureIsReused.Completely) {
@ -4931,7 +4973,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
symlinks = createSymlinkCache(currentDirectory, getCanonicalFileName);
}
if (files && !symlinks.hasProcessedResolutions()) {
symlinks.setSymlinksFromResolutions(resolvedModules, resolvedTypeReferenceDirectiveNames, automaticTypeDirectiveResolutions);
symlinks.setSymlinksFromResolutions(forEachResolvedModule, forEachResolvedTypeReferenceDirective, automaticTypeDirectiveResolutions);
}
return symlinks;
}

View File

@ -4651,6 +4651,20 @@ export interface Program extends ScriptReferenceHost {
resolvedModules: Map<Path, ModeAwareCache<ResolvedModuleWithFailedLookupLocations>> | undefined;
/** @internal */
resolvedTypeReferenceDirectiveNames: Map<Path, ModeAwareCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>> | undefined;
/** @internal */
getResolvedModule(f: SourceFile, moduleName: string, mode: ResolutionMode): ResolvedModuleWithFailedLookupLocations | undefined;
/** @internal */
getResolvedTypeReferenceDirective(f: SourceFile, typeDirectiveName: string, mode: ResolutionMode): ResolvedTypeReferenceDirectiveWithFailedLookupLocations | undefined;
/** @internal */
forEachResolvedModule(
callback: (resolution: ResolvedModuleWithFailedLookupLocations, moduleName: string, mode: ResolutionMode, filePath: Path) => void,
file?: SourceFile,
): void;
/** @internal */
forEachResolvedTypeReferenceDirective(
callback: (resolution: ResolvedTypeReferenceDirectiveWithFailedLookupLocations, moduleName: string, mode: ResolutionMode, filePath: Path) => void,
file?: SourceFile,
): void;
/**
* Emits the JavaScript and declaration files. If targetSourceFile is not specified, then
@ -4868,7 +4882,7 @@ export interface TypeCheckerHost extends ModuleSpecifierResolutionHost {
getProjectReferenceRedirect(fileName: string): string | undefined;
isSourceOfProjectReferenceRedirect(fileName: string): boolean;
resolvedModules: Map<Path, ModeAwareCache<ResolvedModuleWithFailedLookupLocations>> | undefined;
getResolvedModule(f: SourceFile, moduleName: string, mode: ResolutionMode): ResolvedModuleWithFailedLookupLocations | undefined;
readonly redirectTargetsMap: RedirectTargetsMap;

View File

@ -766,7 +766,7 @@ export function moduleResolutionIsEqualTo(oldResolution: ResolvedModuleWithFaile
/** @internal */
export function createModuleNotFoundChain(sourceFile: SourceFile, host: TypeCheckerHost, moduleReference: string, mode: ResolutionMode, packageName: string) {
const node10Result = host.resolvedModules?.get(sourceFile.path)?.get(moduleReference, mode)?.node10Result;
const node10Result = host.getResolvedModule(sourceFile, moduleReference, mode)?.node10Result;
const result = node10Result
? chainDiagnosticMessages(
/*details*/ undefined,
@ -828,7 +828,7 @@ export function hasChangesInResolutions<K, V>(
names: readonly K[],
newSourceFile: SourceFile,
newResolutions: readonly V[],
oldResolutions: ModeAwareCache<V> | undefined,
getOldResolution: (name: string, mode: ResolutionMode) => V | undefined,
comparer: (oldResolution: V, newResolution: V) => boolean,
nameAndModeGetter: ResolutionNameAndModeGetter<K, SourceFile>,
): boolean {
@ -839,7 +839,7 @@ export function hasChangesInResolutions<K, V>(
const entry = names[i];
const name = nameAndModeGetter.getName(entry);
const mode = nameAndModeGetter.getMode(entry, newSourceFile);
const oldResolution = oldResolutions && oldResolutions.get(name, mode);
const oldResolution = getOldResolution(name, mode);
const changed = oldResolution
? !newResolution || !comparer(oldResolution, newResolution)
: newResolution;
@ -8825,8 +8825,12 @@ export interface SymlinkCache {
* `hasProcessedResolutions` returns false (once per cache instance).
*/
setSymlinksFromResolutions(
resolvedModules: Map<Path, ModeAwareCache<ResolvedModuleWithFailedLookupLocations>> | undefined,
resolvedTypeReferenceDirectiveNames: Map<Path, ModeAwareCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>> | undefined,
forEachResolvedModule: (
callback: (resolution: ResolvedModuleWithFailedLookupLocations, moduleName: string, mode: ResolutionMode, filePath: Path) => void,
) => void,
forEachResolvedTypeReferenceDirective: (
callback: (resolution: ResolvedTypeReferenceDirectiveWithFailedLookupLocations, moduleName: string, mode: ResolutionMode, filePath: Path) => void,
) => void,
typeReferenceDirectives: ModeAwareCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>,
): void;
/**
@ -8860,11 +8864,11 @@ export function createSymlinkCache(cwd: string, getCanonicalFileName: GetCanonic
(symlinkedDirectories || (symlinkedDirectories = new Map())).set(symlinkPath, real);
}
},
setSymlinksFromResolutions(resolvedModules, resolvedTypeReferenceDirectiveNames, typeReferenceDirectives) {
setSymlinksFromResolutions(forEachResolvedModule, forEachResolvedTypeReferenceDirective, typeReferenceDirectives) {
Debug.assert(!hasProcessedResolutions);
hasProcessedResolutions = true;
resolvedModules?.forEach(cache => cache.forEach(resolution => processResolution(this, resolution.resolvedModule)));
resolvedTypeReferenceDirectiveNames?.forEach(cache => cache.forEach(resolution => processResolution(this, resolution.resolvedTypeReferenceDirective)));
forEachResolvedModule(resolution => processResolution(this, resolution.resolvedModule));
forEachResolvedTypeReferenceDirective(resolution => processResolution(this, resolution.resolvedTypeReferenceDirective));
typeReferenceDirectives.forEach(resolution => processResolution(this, resolution.resolvedTypeReferenceDirective));
},
hasProcessedResolutions: () => hasProcessedResolutions,

View File

@ -607,8 +607,8 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
}
if (this.program && !this.symlinks.hasProcessedResolutions()) {
this.symlinks.setSymlinksFromResolutions(
this.program.resolvedModules,
this.program.resolvedTypeReferenceDirectiveNames,
this.program.forEachResolvedModule,
this.program.forEachResolvedTypeReferenceDirective,
this.program.getAutomaticTypeDirectiveResolutions(),
);
}
@ -2254,10 +2254,8 @@ function extractUnresolvedImportsFromSourceFile(
cachedUnresolvedImportsPerFile: Map<Path, readonly string[]>,
): readonly string[] {
return getOrUpdate(cachedUnresolvedImportsPerFile, file.path, () => {
const resolvedModules = program.resolvedModules?.get(file.path);
if (!resolvedModules) return emptyArray;
let unresolvedImports: string[] | undefined;
resolvedModules.forEach(({ resolvedModule }, name) => {
program.forEachResolvedModule(({ resolvedModule }, name) => {
// pick unresolved non-relative names
if (
(!resolvedModule || !resolutionExtensionIsTSOrJson(resolvedModule.extension)) &&
@ -2266,7 +2264,7 @@ function extractUnresolvedImportsFromSourceFile(
) {
unresolvedImports = append(unresolvedImports, parsePackageName(name).packageName);
}
});
}, file);
return unresolvedImports || emptyArray;
});
}

View File

@ -107,7 +107,7 @@ function fixImportOfModuleExports(
quotePreference: QuotePreference,
) {
for (const moduleSpecifier of importingFile.imports) {
const imported = program.resolvedModules?.get(importingFile.path)?.get(moduleSpecifier.text, getModeForUsageLocation(importingFile, moduleSpecifier))?.resolvedModule;
const imported = program.getResolvedModule(importingFile, moduleSpecifier.text, getModeForUsageLocation(importingFile, moduleSpecifier))?.resolvedModule;
if (!imported || imported.resolvedFileName !== exportingFile.fileName) {
continue;
}

View File

@ -119,7 +119,7 @@ function getInfo(sourceFile: SourceFile, pos: number, program: Program): Info |
const moduleSpecifier = isStringLiteral(importDeclaration.moduleSpecifier) ? importDeclaration.moduleSpecifier.text : undefined;
if (moduleSpecifier === undefined) return undefined;
const resolvedModule = program.resolvedModules?.get(sourceFile.path)?.get(moduleSpecifier, /*mode*/ undefined)?.resolvedModule;
const resolvedModule = program.getResolvedModule(sourceFile, moduleSpecifier, /*mode*/ undefined)?.resolvedModule;
if (resolvedModule === undefined) return undefined;
const moduleSourceFile = program.getSourceFile(resolvedModule.resolvedFileName);

View File

@ -182,7 +182,7 @@ function convertSemanticMeaningToSymbolFlags(meaning: SemanticMeaning): SymbolFl
function getResolvedSourceFileFromImportDeclaration(sourceFile: SourceFile, context: CodeFixContextBase, importDeclaration: ImportDeclaration): SourceFile | undefined {
if (!importDeclaration || !isStringLiteralLike(importDeclaration.moduleSpecifier)) return undefined;
const resolvedModule = context.program.resolvedModules?.get(sourceFile.path)?.get(importDeclaration.moduleSpecifier.text, getModeForUsageLocation(sourceFile, importDeclaration.moduleSpecifier))?.resolvedModule;
const resolvedModule = context.program.getResolvedModule(sourceFile, importDeclaration.moduleSpecifier.text, getModeForUsageLocation(sourceFile, importDeclaration.moduleSpecifier))?.resolvedModule;
if (!resolvedModule) return undefined;
return context.program.getSourceFile(resolvedModule.resolvedFileName);

View File

@ -1427,7 +1427,7 @@ function promoteFromTypeOnly(
// Change .ts extension to .js if necessary
if (!compilerOptions.allowImportingTsExtensions) {
const moduleSpecifier = tryGetModuleSpecifierFromDeclaration(importClause.parent);
const resolvedModule = moduleSpecifier && program.resolvedModules?.get(sourceFile.path)?.get(moduleSpecifier.text, getModeForUsageLocation(sourceFile, moduleSpecifier))?.resolvedModule;
const resolvedModule = moduleSpecifier && program.getResolvedModule(sourceFile, moduleSpecifier.text, getModeForUsageLocation(sourceFile, moduleSpecifier))?.resolvedModule;
if (resolvedModule?.resolvedUsingTsExtension) {
const changedExtension = changeAnyExtension(moduleSpecifier!.text, getOutputExtension(moduleSpecifier!.text, compilerOptions));
changes.replaceNode(sourceFile, moduleSpecifier!, factory.createStringLiteral(changedExtension));

View File

@ -1009,7 +1009,7 @@ export namespace Core {
if (!options.implementations && isStringLiteralLike(node)) {
if (isModuleSpecifierLike(node)) {
const fileIncludeReasons = program.getFileIncludeReasons();
const referencedFileName = program.resolvedModules?.get(node.getSourceFile().path)?.get(node.text, getModeForUsageLocation(node.getSourceFile(), node))?.resolvedModule?.resolvedFileName;
const referencedFileName = program.getResolvedModule(node.getSourceFile(), node.text, getModeForUsageLocation(node.getSourceFile(), node))?.resolvedModule?.resolvedFileName;
const referencedFile = referencedFileName ? program.getSourceFile(referencedFileName) : undefined;
if (referencedFile) {
return [{ definition: { type: DefinitionKind.String, node }, references: getReferencesForNonModule(referencedFile, fileIncludeReasons, program) || emptyArray }];

View File

@ -249,7 +249,7 @@ function getSourceFileToImport(
else {
const mode = getModeForUsageLocation(importingSourceFile, importLiteral);
const resolved = host.resolveModuleNameLiterals || !host.resolveModuleNames ?
program.resolvedModules?.get(importingSourceFile.path)?.get(importLiteral.text, mode) :
program.getResolvedModule(importingSourceFile, importLiteral.text, mode) :
host.getResolvedModuleWithFailedLookupLocationsFromCache && host.getResolvedModuleWithFailedLookupLocationsFromCache(importLiteral.text, importingSourceFile.fileName, mode);
return getSourceFileToImportFromResolved(importLiteral, resolved, oldToNew, program.getSourceFiles());
}

View File

@ -82,6 +82,7 @@ import {
NodeFlags,
ObjectFlags,
Program,
ResolvedModuleWithFailedLookupLocations,
resolvePath,
ScriptElementKind,
SignatureDeclaration,
@ -179,7 +180,7 @@ export function getDefinitionAtPosition(program: Program, sourceFile: SourceFile
if (!symbol && isModuleSpecifierLike(fallbackNode)) {
// We couldn't resolve the module specifier as an external module, but it could
// be that module resolution succeeded but the target was not a module.
const ref = program.resolvedModules?.get(sourceFile.path)?.get(fallbackNode.text, getModeForUsageLocation(sourceFile, fallbackNode))?.resolvedModule;
const ref = program.getResolvedModule(sourceFile, fallbackNode.text, getModeForUsageLocation(sourceFile, fallbackNode))?.resolvedModule;
if (ref) {
return [{
name: fallbackNode.text,
@ -332,11 +333,11 @@ export function getReferenceAtPosition(sourceFile: SourceFile, position: number,
return file && { reference: libReferenceDirective, fileName: file.fileName, file, unverified: false };
}
const resolvedModules = program.resolvedModules?.get(sourceFile.path);
if (resolvedModules?.size()) {
if (sourceFile.imports.length || sourceFile.moduleAugmentations.length) {
const node = getTouchingToken(sourceFile, position);
if (isModuleSpecifierLike(node) && isExternalModuleNameRelative(node.text) && resolvedModules.has(node.text, getModeForUsageLocation(sourceFile, node))) {
const verifiedFileName = resolvedModules.get(node.text, getModeForUsageLocation(sourceFile, node))?.resolvedModule?.resolvedFileName;
let resolution: ResolvedModuleWithFailedLookupLocations | undefined;
if (isModuleSpecifierLike(node) && isExternalModuleNameRelative(node.text) && (resolution = program.getResolvedModule(sourceFile, node.text, getModeForUsageLocation(sourceFile, node)))) {
const verifiedFileName = resolution.resolvedModule?.resolvedFileName;
const fileName = verifiedFileName || resolvePath(getDirectoryPath(sourceFile.fileName), node.text);
return {
file: program.getSourceFile(fileName),

View File

@ -310,7 +310,7 @@ function getTargetFileImportsAndAddExportInOldFile(
forEachImportInStatement(oldStatement, i => {
// Recomputing module specifier
const moduleSpecifier = moduleSpecifierFromImport(i);
const resolved = program.resolvedModules?.get(oldFile.path)?.get(moduleSpecifier.text, getModeForUsageLocation(oldFile, moduleSpecifier));
const resolved = program.getResolvedModule(oldFile, moduleSpecifier.text, getModeForUsageLocation(oldFile, moduleSpecifier));
const fileName = resolved?.resolvedModule?.resolvedFileName;
if (fileName && targetSourceFile) {
const newModuleSpecifier = getModuleSpecifier(program.getCompilerOptions(), targetSourceFile, targetSourceFile.path, fileName, createModuleSpecifierResolutionHost(program, host));

View File

@ -88,7 +88,7 @@ export function computeSuggestionDiagnostics(sourceFile: SourceFile, program: Pr
const importNode = importFromModuleSpecifier(moduleSpecifier);
const name = importNameForConvertToDefaultImport(importNode);
if (!name) continue;
const module = program.resolvedModules?.get(sourceFile.path)?.get(moduleSpecifier.text, getModeForUsageLocation(sourceFile, moduleSpecifier))?.resolvedModule;
const module = program.getResolvedModule(sourceFile, moduleSpecifier.text, getModeForUsageLocation(sourceFile, moduleSpecifier))?.resolvedModule;
const resolvedFile = module && program.getSourceFile(module.resolvedFileName);
if (resolvedFile && resolvedFile.externalModuleIndicator && resolvedFile.externalModuleIndicator !== true && isExportAssignment(resolvedFile.externalModuleIndicator) && resolvedFile.externalModuleIndicator.isExportEquals) {
diags.push(createDiagnosticForNode(name, Diagnostics.Import_may_be_converted_to_a_default_import));

View File

@ -19,18 +19,35 @@ import {
} from "./helpers/virtualFileSystemWithWatch";
describe("unittests:: Reuse program structure:: General", () => {
function baselineCache<T>(baselines: string[], cacheType: string, cache: ts.ModeAwareCache<T> | undefined) {
baselines.push(`${cacheType}: ${!cache ? cache : ""}`);
cache?.forEach((resolved, key, mode) => baselines.push(`${key}: ${mode ? ts.getNameOfCompilerOptionValue(mode, ts.moduleOptionDeclaration.type) + ": " : ""}${JSON.stringify(resolved, /*replacer*/ undefined, 2)}`));
function baselineCache<File, T>(
baselines: string[],
cacheType: string,
file: File,
forEach: (
callback: (resolvedModule: T, moduleName: string, mode: ts.ResolutionMode) => void,
file: File,
) => void,
) {
let addedHeader = false;
forEach(baselineResolution, file);
function baselineResolution(resolved: T, key: string, mode: ts.ResolutionMode) {
if (!addedHeader) {
addedHeader = true;
baselines.push(`${cacheType}:`);
}
baselines.push(`${key}: ${mode ? ts.getNameOfCompilerOptionValue(mode, ts.moduleOptionDeclaration.type) + ": " : ""}${JSON.stringify(resolved, /*replacer*/ undefined, 2)}`);
}
}
function baselineProgram(baselines: string[], program: ts.Program, host?: TestCompilerHost) {
baselines.push(`Program Reused:: ${(ts as any).StructureIsReused[program.structureIsReused]}`);
program.getSourceFiles().forEach(f => {
baselines.push(`File: ${f.fileName}`, f.text);
baselineCache(baselines, "resolvedModules", program.resolvedModules?.get(f.path));
baselineCache(baselines, "resolvedTypeReferenceDirectiveNames", program.resolvedTypeReferenceDirectiveNames?.get(f.path));
baselineCache(baselines, "resolvedModules", f, program.forEachResolvedModule);
baselineCache(baselines, "resolvedTypeReferenceDirectiveNames", f, program.forEachResolvedTypeReferenceDirective);
baselines.push("");
});
baselineCache(baselines, "automaticTypeDirectiveResolutions", /*file*/ undefined, cb => program.getAutomaticTypeDirectiveResolutions().forEach(cb));
host ??= (program as ProgramWithSourceTexts).host;
host.getTrace().forEach(trace => baselines.push(Utils.sanitizeTraceResolutionLogEntry(trace)));
host.clearTrace();

View File

@ -82,7 +82,7 @@ describe("unittests:: tsserver:: symlinkCache", () => {
resolvedFileName: "/one/two/foo",
},
});
cache.setSymlinksFromResolutions(/*resolvedModules*/ undefined, /*resolvedTypeReferenceDirectiveNames*/ undefined, map);
cache.setSymlinksFromResolutions(ts.noop, ts.noop, map);
});
});

View File

@ -2314,7 +2314,7 @@ describe("unittests:: tsserver:: typingsInstaller:: recomputing resolutions of u
ts.server.updateProjectIfDirty(project);
const program = project.getLanguageService().getProgram()!;
const sourceFile = program.getSourceFileByPath(appPath)!;
const foooResolution = program.resolvedModules!.get(sourceFile.path)!.get("fooo", /*mode*/ undefined)!.resolvedModule!;
const foooResolution = program.getResolvedModule(sourceFile, "fooo", /*mode*/ undefined)!.resolvedModule!;
assert.equal(foooResolution.resolvedFileName, foooPath);
return foooResolution;
}

View File

@ -3,7 +3,7 @@ File: /a/b/app.ts
import * as fs from 'fs'
resolvedModules:
resolvedModules:
fs: {
"failedLookupLocations": [
"/a/b/fs.ts",
@ -32,14 +32,11 @@ fs: {
"/fs.jsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a/b/node.d.ts
declare module 'fs' {}
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
======== Resolving module 'fs' from '/a/b/app.ts'. ========
Module resolution kind is not specified, using 'Classic'.
@ -80,7 +77,7 @@ File: /a/b/app.ts
import * as fs from 'fs'
var x = 1;
resolvedModules:
resolvedModules:
fs: {
"failedLookupLocations": [
"/a/b/fs.ts",
@ -109,14 +106,11 @@ fs: {
"/fs.jsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a/b/node.d.ts
declare module 'fs' {}
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
Module 'fs' was resolved as ambient module declared in '/a/b/node.d.ts' since this file was not modified.
@ -130,7 +124,7 @@ File: /a/b/app.ts
import * as fs from 'fs'
var y = 1;
resolvedModules:
resolvedModules:
fs: {
"failedLookupLocations": [
"/a/b/fs.ts",
@ -159,14 +153,11 @@ fs: {
"/fs.jsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a/b/node.d.ts
declare var process: any
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
======== Resolving module 'fs' from '/a/b/app.ts'. ========
Module resolution kind is not specified, using 'Classic'.

View File

@ -3,43 +3,31 @@ File: a1.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a2.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b1.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b2.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs1/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs2/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: f1.ts
/// <reference path="a1.ts"/>
@ -48,7 +36,7 @@ File: f1.ts
import { B } from './b1';
export let BB = B;
declare module './b1' { interface B { y: string; } }
resolvedModules:
resolvedModules:
./b1: {
"resolvedModule": {
"resolvedFileName": "b1.ts",
@ -57,7 +45,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs1: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -75,7 +63,7 @@ File: f2.ts
import { B } from './b2';
import { BB } from './f1';
(new BB).x; (new BB).y;
resolvedModules:
resolvedModules:
./b2: {
"resolvedModule": {
"resolvedFileName": "b2.ts",
@ -92,7 +80,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs2: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -141,43 +129,31 @@ File: a1.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a2.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b1.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b2.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs1/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs2/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: f1.ts
/// <reference path="a1.ts"/>
@ -185,7 +161,7 @@ File: f1.ts
import { B } from './b1';
export let BB = B;
declare module './b1' { interface B { y: string; } }
resolvedModules:
resolvedModules:
./b1: {
"resolvedModule": {
"resolvedFileName": "b1.ts",
@ -194,7 +170,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs1: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -212,7 +188,7 @@ File: f2.ts
import { B } from './b2';
import { BB } from './f1';
(new BB).x; (new BB).y;
resolvedModules:
resolvedModules:
./b2: {
"resolvedModule": {
"resolvedFileName": "b2.ts",
@ -229,7 +205,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs2: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -268,50 +244,38 @@ File: a1.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a2.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b1.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b2.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs1/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs2/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: f1.ts
/// <reference path="a1.ts"/>
import { B } from './b1';
export let BB = B;
declare module './b1' { interface B { y: string; } }
resolvedModules:
resolvedModules:
./b1: {
"resolvedModule": {
"resolvedFileName": "b1.ts",
@ -320,7 +284,6 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
File: f2.ts
/// <reference path="a2.ts"/>
@ -328,7 +291,7 @@ File: f2.ts
import { B } from './b2';
import { BB } from './f1';
(new BB).x; (new BB).y;
resolvedModules:
resolvedModules:
./b2: {
"resolvedModule": {
"resolvedFileName": "b2.ts",
@ -345,7 +308,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs2: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -379,50 +342,38 @@ File: a1.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a2.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b1.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b2.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs1/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs2/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: f1.ts
import { B } from './b1';
export let BB = B;
declare module './b1' { interface B { y: string; } }
resolvedModules:
resolvedModules:
./b1: {
"resolvedModule": {
"resolvedFileName": "b1.ts",
@ -431,7 +382,6 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
File: f2.ts
/// <reference path="a2.ts"/>
@ -439,7 +389,7 @@ File: f2.ts
import { B } from './b2';
import { BB } from './f1';
(new BB).x; (new BB).y;
resolvedModules:
resolvedModules:
./b2: {
"resolvedModule": {
"resolvedFileName": "b2.ts",
@ -456,7 +406,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs2: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -490,49 +440,37 @@ File: a1.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a2.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b1.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b2.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs1/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs2/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: f1.ts
import { B } from './b1';
declare module './b1' { interface B { y: string; } }
resolvedModules:
resolvedModules:
./b1: {
"resolvedModule": {
"resolvedFileName": "b1.ts",
@ -541,7 +479,6 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
File: f2.ts
/// <reference path="a2.ts"/>
@ -549,7 +486,7 @@ File: f2.ts
import { B } from './b2';
import { BB } from './f1';
(new BB).x; (new BB).y;
resolvedModules:
resolvedModules:
./b2: {
"resolvedModule": {
"resolvedFileName": "b2.ts",
@ -566,7 +503,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs2: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -598,49 +535,37 @@ File: a1.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a2.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b1.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b2.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs1/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs2/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: f1.ts
import { B } from './b1';
resolvedModules:
resolvedModules:
./b1: {
"resolvedModule": {
"resolvedFileName": "b1.ts",
@ -649,7 +574,6 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
File: f2.ts
/// <reference path="a2.ts"/>
@ -657,7 +581,7 @@ File: f2.ts
import { B } from './b2';
import { BB } from './f1';
(new BB).x; (new BB).y;
resolvedModules:
resolvedModules:
./b2: {
"resolvedModule": {
"resolvedFileName": "b2.ts",
@ -674,7 +598,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs2: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -709,50 +633,36 @@ File: a1.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a2.ts
let x = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b1.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b2.ts
export class B { x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs1/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: node_modules/@types/typerefs2/index.d.ts
declare let z: string;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: f1.ts
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: f2.ts
/// <reference path="a2.ts"/>
@ -760,7 +670,7 @@ File: f2.ts
import { B } from './b2';
import { BB } from './f1';
(new BB).x; (new BB).y;
resolvedModules:
resolvedModules:
./b2: {
"resolvedModule": {
"resolvedFileName": "b2.ts",
@ -777,7 +687,7 @@ resolvedModules:
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs2: {
"resolvedTypeReferenceDirective": {
"primary": true,

View File

@ -3,14 +3,12 @@ File: /node_modules/b/internal.d.ts
export const b = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
export * from './internal';
resolvedModules:
resolvedModules:
./internal: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/internal.d.ts",
@ -31,13 +29,12 @@ resolvedModules:
"/node_modules/b/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import {b} from 'b'
var a = b;
resolvedModules:
resolvedModules:
b: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/index.d.ts",
@ -61,7 +58,6 @@ b: {
"/node_modules/b/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -74,14 +70,12 @@ File: /node_modules/b/internal.d.ts
export const b = 2;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
export * from './internal';
resolvedModules:
resolvedModules:
./internal: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/internal.d.ts",
@ -102,13 +96,12 @@ resolvedModules:
"/node_modules/b/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import {b} from 'b'
var a = b;
resolvedModules:
resolvedModules:
b: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/index.d.ts",
@ -132,7 +125,6 @@ b: {
"/node_modules/b/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -49,7 +44,7 @@ File: c.ts
import x from 'b'
var z = 1;
resolvedModules:
resolvedModules:
b: {
"resolvedModule": {
"resolvedFileName": "b.ts",
@ -58,14 +53,11 @@ b: {
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -75,8 +67,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -49,15 +44,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
/// <reference path='b.ts'/>
@ -65,8 +56,6 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -49,15 +44,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -66,8 +57,7 @@ File: a.ts
/// <reference types="typerefs1" />
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs1: {
"failedLookupLocations": [
"node_modules/@types/typerefs1/package.json",

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -36,6 +31,19 @@ typerefs: {
]
}
automaticTypeDirectiveResolutions:
a: {
"failedLookupLocations": [
"node_modules/@types/a/package.json",
"node_modules/@types/a/index.d.ts",
"node_modules/a/package.json",
"node_modules/a.d.ts",
"node_modules/a/index.d.ts",
"node_modules/@types/a/package.json",
"node_modules/@types/a.d.ts",
"node_modules/@types/a/index.d.ts"
]
}
MissingPaths:: ["non-existing-file.ts","lib.d.ts"]
@ -49,15 +57,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -67,8 +71,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -82,6 +85,19 @@ typerefs: {
]
}
automaticTypeDirectiveResolutions:
b: {
"failedLookupLocations": [
"node_modules/@types/b/package.json",
"node_modules/@types/b/index.d.ts",
"node_modules/b/package.json",
"node_modules/b.d.ts",
"node_modules/b/index.d.ts",
"node_modules/@types/b/package.json",
"node_modules/@types/b.d.ts",
"node_modules/@types/b/index.d.ts"
]
}
MissingPaths:: ["non-existing-file.ts","lib.d.ts"]

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -49,15 +44,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -67,8 +58,7 @@ File: a.ts
var x = 100
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -36,6 +31,19 @@ typerefs: {
]
}
automaticTypeDirectiveResolutions:
a: {
"failedLookupLocations": [
"node_modules/@types/a/package.json",
"node_modules/@types/a/index.d.ts",
"node_modules/a/package.json",
"node_modules/a.d.ts",
"node_modules/a/index.d.ts",
"node_modules/@types/a/package.json",
"node_modules/@types/a.d.ts",
"node_modules/@types/a/index.d.ts"
]
}
MissingPaths:: ["non-existing-file.ts","lib.d.ts"]
@ -49,15 +57,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -67,8 +71,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -82,6 +85,19 @@ typerefs: {
]
}
automaticTypeDirectiveResolutions:
a: {
"failedLookupLocations": [
"node_modules/@types/a/package.json",
"node_modules/@types/a/index.d.ts",
"node_modules/a/package.json",
"node_modules/a.d.ts",
"node_modules/a/index.d.ts",
"node_modules/@types/a/package.json",
"node_modules/@types/a.d.ts",
"node_modules/@types/a/index.d.ts"
]
}
MissingPaths:: ["non-existing-file.ts","lib.d.ts"]

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"/a/b/node_modules/@types/typerefs/package.json",
@ -53,15 +48,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -71,8 +62,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"/a/c/node_modules/@types/typerefs/package.json",

View File

@ -3,7 +3,7 @@ File: file1.ts
import * as a from "a";
const myX: number = a.x;
resolvedModules:
resolvedModules:
a: {
"failedLookupLocations": [
"node_modules/a/package.json",
@ -23,14 +23,11 @@ a: {
"node_modules/a/index.jsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: file2.ts
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
======== Resolving module 'a' from 'file1.ts'. ========
Explicitly specified module resolution kind: 'Node10'.
@ -66,14 +63,12 @@ File: node_modules/a/index.d.ts
export declare let x: number;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: file1.ts
import * as a from "a";
const myX: number = a.x;
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "node_modules/a/index.d.ts",
@ -90,14 +85,11 @@ a: {
"node_modules/a/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: file2.ts
/// <reference no-default-lib="true"/>
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
======== Resolving module 'a' from 'file1.ts'. ========
Explicitly specified module resolution kind: 'Node10'.

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -49,22 +44,16 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: non-existing-file.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -74,8 +63,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -49,15 +44,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -67,8 +58,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -49,15 +44,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -67,8 +58,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",

View File

@ -3,14 +3,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -34,20 +32,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -71,13 +66,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -110,7 +104,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -123,14 +116,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -154,20 +145,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -191,13 +179,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
const x = 1;
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -230,7 +217,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,14 +3,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -34,20 +32,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export = class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -71,13 +66,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -110,7 +104,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -125,14 +118,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -156,20 +147,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -193,13 +181,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -232,7 +219,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,14 +3,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -34,20 +32,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -71,13 +66,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -110,7 +104,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -123,14 +116,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; private y: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -149,20 +140,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -186,13 +174,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -225,7 +212,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,14 +3,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -34,20 +32,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -71,13 +66,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -110,7 +104,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -123,14 +116,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -154,20 +145,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; private y: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -191,13 +179,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -230,7 +217,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,14 +3,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -34,20 +32,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -71,13 +66,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -110,7 +104,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -123,14 +116,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -154,20 +145,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -191,13 +179,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
const x = 1;
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -230,7 +217,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,14 +3,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -34,20 +32,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export = class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -71,13 +66,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -110,7 +104,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -125,14 +118,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -156,20 +147,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -193,13 +181,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -232,7 +219,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,14 +3,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -34,20 +32,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -71,13 +66,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -110,7 +104,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -123,14 +116,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; private y: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -149,20 +140,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -186,13 +174,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -225,7 +212,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,14 +3,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -34,20 +32,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -71,13 +66,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -110,7 +104,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -123,14 +116,12 @@ File: /node_modules/a/node_modules/x/index.d.ts
export default class X { private x: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/a/index.d.ts
import X from "x";
export function a(x: X): void;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/node_modules/x/index.d.ts",
@ -154,20 +145,17 @@ x: {
"/node_modules/a/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/node_modules/x/index.d.ts
export default class X { private x: number; private y: number; }
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /node_modules/b/index.d.ts
import X from "x";
export const b: X;
resolvedModules:
resolvedModules:
x: {
"resolvedModule": {
"resolvedFileName": "/node_modules/b/node_modules/x/index.d.ts",
@ -191,13 +179,12 @@ x: {
"/node_modules/b/node_modules/x/package.json"
]
}
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
import { a } from "a"; import { b } from "b";
a(b)
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/node_modules/a/index.d.ts",
@ -230,7 +217,6 @@ b: {
"/node_modules/b/index.tsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,14 +3,12 @@ File: b.ts
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
import {_} from 'b'
var x = 1
resolvedModules:
resolvedModules:
b: {
"resolvedModule": {
"resolvedFileName": "b.ts",
@ -19,7 +17,6 @@ b: {
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -33,14 +30,12 @@ File: b.ts
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
import {_} from 'b'
var x = 2
resolvedModules:
resolvedModules:
b: {
"resolvedModule": {
"resolvedFileName": "b.ts",
@ -49,7 +44,6 @@ b: {
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -63,8 +57,6 @@ File: a.ts
var x = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -77,8 +69,6 @@ File: b.ts
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -86,7 +76,7 @@ import x from 'b'
import y from 'c'
var x = 2
resolvedModules:
resolvedModules:
b: {
"resolvedModule": {
"resolvedFileName": "b.ts",
@ -107,7 +97,6 @@ c: {
"c.jsx"
]
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,15 +3,12 @@ File: /types/typedefs/index.d.ts
declare var $: number
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
/// <reference types='typedefs'/>
var x = $
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typedefs: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -35,15 +32,12 @@ File: /types/typedefs/index.d.ts
declare var $: number
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
/// <reference types='typedefs'/>
var x = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typedefs: {
"resolvedTypeReferenceDirective": {
"primary": true,
@ -67,8 +61,6 @@ File: /a.ts
var x = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -81,8 +73,6 @@ File: /types/typedefs/index.d.ts
declare var $: number
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: /a.ts
/// <reference types="typedefs"/>
@ -90,8 +80,7 @@ File: /a.ts
var x = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typedefs: {
"resolvedTypeReferenceDirective": {
"primary": true,

View File

@ -3,7 +3,7 @@ File: /a.ts
import * as a from "a";
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/a.ts",
@ -12,7 +12,6 @@ a: {
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -25,7 +24,7 @@ File: /a.ts
import * as aa from "a";
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/a.ts",
@ -34,7 +33,6 @@ a: {
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]

View File

@ -3,15 +3,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -21,8 +17,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",
@ -51,15 +46,11 @@ File: c.ts
var z = 1;
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: b.ts
/// <reference path='c.ts'/>
var y = 2
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames: undefined
File: a.ts
@ -69,8 +60,7 @@ File: a.ts
var x = 1
resolvedModules: undefined
resolvedTypeReferenceDirectiveNames:
resolvedTypeReferenceDirectiveNames:
typerefs: {
"failedLookupLocations": [
"node_modules/@types/typerefs/package.json",

View File

@ -3,7 +3,7 @@ File: /a.ts
import * as a from "a";a;
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/a.ts",
@ -12,7 +12,6 @@ a: {
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]
@ -26,7 +25,7 @@ File: /a.ts
'use strict';
import * as a from "a";a;
resolvedModules:
resolvedModules:
a: {
"resolvedModule": {
"resolvedFileName": "/a.ts",
@ -35,7 +34,6 @@ a: {
"resolvedUsingTsExtension": false
}
}
resolvedTypeReferenceDirectiveNames: undefined
MissingPaths:: ["lib.d.ts"]