Skip to content

Commit f7ea0ba

Browse files
committed
Refactoring
1 parent f9e4b91 commit f7ea0ba

File tree

8 files changed

+16
-14
lines changed

8 files changed

+16
-14
lines changed

src/compiler/program.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ namespace ts {
814814
let projectReferenceRedirects: Map<ResolvedProjectReference | false> | undefined;
815815
let mapFromFileToProjectReferenceRedirects: Map<Path> | undefined;
816816
let mapFromToProjectReferenceRedirectSource: Map<SourceOfProjectReferenceRedirect> | undefined;
817-
const useSourceOfReference = useSourceInsteadOfReferenceRedirect(host);
817+
const useSourceOfReference = !!host.useSourceInsteadOfReferenceRedirect && host.useSourceInsteadOfReferenceRedirect();
818818

819819
const shouldCreateNewSourceFile = shouldProgramCreateNewSourceFiles(oldProgram, options);
820820
const structuralIsReused = tryReuseStructureFromOldProgram();
@@ -964,6 +964,7 @@ namespace ts {
964964
getResolvedProjectReferenceToRedirect,
965965
getResolvedProjectReferenceByPath,
966966
forEachResolvedProjectReference,
967+
isSourceOfProjectReferenceRedirect,
967968
emitBuildInfo
968969
};
969970

@@ -2496,6 +2497,10 @@ namespace ts {
24962497
return mapFromToProjectReferenceRedirectSource.get(toPath(file));
24972498
}
24982499

2500+
function isSourceOfProjectReferenceRedirect(fileName: string) {
2501+
return useSourceOfReference && !!getResolvedProjectReferenceToRedirect(fileName);
2502+
}
2503+
24992504
function forEachProjectReference<T>(
25002505
projectReferences: ReadonlyArray<ProjectReference> | undefined,
25012506
resolvedProjectReferences: ReadonlyArray<ResolvedProjectReference | undefined> | undefined,

src/compiler/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2993,6 +2993,7 @@ namespace ts {
29932993
/*@internal*/ getResolvedProjectReferenceToRedirect(fileName: string): ResolvedProjectReference | undefined;
29942994
/*@internal*/ forEachResolvedProjectReference<T>(cb: (resolvedProjectReference: ResolvedProjectReference | undefined, resolvedProjectReferencePath: Path) => T | undefined): T | undefined;
29952995
/*@internal*/ getResolvedProjectReferenceByPath(projectReferencePath: Path): ResolvedProjectReference | undefined;
2996+
/*@internal*/ isSourceOfProjectReferenceRedirect(fileName: string): boolean;
29962997
/*@internal*/ getProgramBuildInfo?(): ProgramBuildInfo | undefined;
29972998
/*@internal*/ emitBuildInfo(writeFile?: WriteFileCallback, cancellationToken?: CancellationToken): EmitResult;
29982999
}
@@ -3090,6 +3091,7 @@ namespace ts {
30903091
getSourceFile(fileName: string): SourceFile | undefined;
30913092
getResolvedTypeReferenceDirectives(): ReadonlyMap<ResolvedTypeReferenceDirective | undefined>;
30923093
getProjectReferenceRedirect(fileName: string): string | undefined;
3094+
isSourceOfProjectReferenceRedirect(fileName: string): boolean;
30933095

30943096
readonly redirectTargetsMap: RedirectTargetsMap;
30953097
}

src/compiler/utilities.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4616,10 +4616,6 @@ namespace ts {
46164616
return false;
46174617
}
46184618
}
4619-
4620-
export function useSourceInsteadOfReferenceRedirect(host: { useSourceInsteadOfReferenceRedirect?(): boolean; }) {
4621-
return host.useSourceInsteadOfReferenceRedirect && host.useSourceInsteadOfReferenceRedirect();
4622-
}
46234619
}
46244620

46254621
namespace ts {

src/server/editorServices.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2570,7 +2570,7 @@ namespace ts.server {
25702570

25712571
/*@internal*/
25722572
getOriginalLocationEnsuringConfiguredProject(project: Project, location: DocumentPosition): DocumentPosition | undefined {
2573-
const originalLocation = useSourceInsteadOfReferenceRedirect(project) && project.getResolvedProjectReferenceToRedirect(location.fileName) ?
2573+
const originalLocation = project.isSourceOfProjectReferenceRedirect(location.fileName) ?
25742574
location :
25752575
project.getSourceMapper().tryGetSourcePosition(location);
25762576
if (!originalLocation) return undefined;

src/server/project.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,6 @@ namespace ts.server {
196196
/*@internal*/
197197
originalConfiguredProjects: Map<true> | undefined;
198198

199-
/*@internal*/
200-
useSourceInsteadOfReferenceRedirect?: () => boolean;
201-
202199
/*@internal*/
203200
getResolvedProjectReferenceToRedirect(_fileName: string): ResolvedProjectReference | undefined {
204201
return undefined;
@@ -1231,6 +1228,11 @@ namespace ts.server {
12311228
this.rootFilesMap.delete(info.path);
12321229
}
12331230

1231+
/*@internal*/
1232+
isSourceOfProjectReferenceRedirect(fileName: string) {
1233+
return !!this.program && this.program.isSourceOfProjectReferenceRedirect(fileName);
1234+
}
1235+
12341236
protected enableGlobalPlugins(options: CompilerOptions, pluginConfigOverrides: Map<any> | undefined) {
12351237
const host = this.projectService.host;
12361238

src/server/session.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,7 @@ namespace ts.server {
443443

444444
function getDefinitionInProject(definition: DocumentPosition | undefined, definingProject: Project, project: Project): DocumentPosition | undefined {
445445
if (!definition || project.containsFile(toNormalizedPath(definition.fileName))) return definition;
446-
const mappedDefinition = useSourceInsteadOfReferenceRedirect(definingProject) && definingProject.getResolvedProjectReferenceToRedirect(definition.fileName) ?
446+
const mappedDefinition = definingProject.isSourceOfProjectReferenceRedirect(definition.fileName) ?
447447
definition :
448448
definingProject.getLanguageService().getSourceMapper().tryGetGeneratedPosition(definition);
449449
return mappedDefinition && project.containsFile(toNormalizedPath(mappedDefinition.fileName)) ? mappedDefinition : undefined;

src/services/services.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1151,7 +1151,6 @@ namespace ts {
11511151
fileExists: maybeBind(host, host.fileExists),
11521152
readFile: maybeBind(host, host.readFile),
11531153
getDocumentPositionMapper: maybeBind(host, host.getDocumentPositionMapper),
1154-
useSourceInsteadOfReferenceRedirect: maybeBind(host, host.useSourceInsteadOfReferenceRedirect),
11551154
getSourceFileLike: maybeBind(host, host.getSourceFileLike),
11561155
log
11571156
});

src/services/sourcemaps.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ namespace ts {
1717
readFile?(path: string, encoding?: string): string | undefined;
1818
getSourceFileLike?(fileName: string): SourceFileLike | undefined;
1919
getDocumentPositionMapper?(generatedFileName: string, sourceFileName?: string): DocumentPositionMapper | undefined;
20-
/* @internal */ useSourceInsteadOfReferenceRedirect?(): boolean;
2120
log(s: string): void;
2221
}
2322

@@ -72,8 +71,7 @@ namespace ts {
7271

7372
const program = host.getProgram()!;
7473
// If this is source file of project reference source (instead of redirect) there is no generated position
75-
if (useSourceInsteadOfReferenceRedirect(host) &&
76-
program.getResolvedProjectReferenceToRedirect(sourceFile.fileName)) {
74+
if (program.isSourceOfProjectReferenceRedirect(sourceFile.fileName)) {
7775
return undefined;
7876
}
7977

0 commit comments

Comments
 (0)