Skip to content

Commit dc2dc8d

Browse files
author
Andy
authored
rename: Re-use code for isDefinedInLibraryFile (#25367)
1 parent 7dc66e9 commit dc2dc8d

File tree

3 files changed

+4
-16
lines changed

3 files changed

+4
-16
lines changed

src/services/rename.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,11 @@
11
/* @internal */
22
namespace ts.Rename {
3-
export function getRenameInfo(typeChecker: TypeChecker, defaultLibFileName: string, getCanonicalFileName: GetCanonicalFileName, sourceFile: SourceFile, position: number): RenameInfo {
4-
const getCanonicalDefaultLibName = memoize(() => getCanonicalFileName(normalizePath(defaultLibFileName)));
3+
export function getRenameInfo(program: Program, sourceFile: SourceFile, position: number): RenameInfo {
54
const node = getTouchingPropertyName(sourceFile, position);
65
const renameInfo = node && nodeIsEligibleForRename(node)
7-
? getRenameInfoForNode(node, typeChecker, sourceFile, isDefinedInLibraryFile)
6+
? getRenameInfoForNode(node, program.getTypeChecker(), sourceFile, declaration => program.isSourceFileDefaultLibrary(declaration.getSourceFile()))
87
: undefined;
98
return renameInfo || getRenameInfoError(Diagnostics.You_cannot_rename_this_element);
10-
11-
function isDefinedInLibraryFile(declaration: Node) {
12-
if (!defaultLibFileName) {
13-
return false;
14-
}
15-
16-
const sourceFile = declaration.getSourceFile();
17-
const canonicalName = getCanonicalFileName(normalizePath(sourceFile.fileName));
18-
return canonicalName === getCanonicalDefaultLibName();
19-
}
209
}
2110

2211
function getRenameInfoForNode(node: Node, typeChecker: TypeChecker, sourceFile: SourceFile, isDefinedInLibraryFile: (declaration: Node) => boolean): RenameInfo | undefined {

src/services/services.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2202,8 +2202,7 @@ namespace ts {
22022202

22032203
function getRenameInfo(fileName: string, position: number): RenameInfo {
22042204
synchronizeHostData();
2205-
const defaultLibFileName = host.getDefaultLibFileName(host.getCompilationSettings());
2206-
return Rename.getRenameInfo(program.getTypeChecker(), defaultLibFileName, getCanonicalFileName, getValidSourceFile(fileName), position);
2205+
return Rename.getRenameInfo(program, getValidSourceFile(fileName), position);
22072206
}
22082207

22092208
function getRefactorContext(file: SourceFile, positionOrRange: number | TextRange, preferences: UserPreferences, formatOptions?: FormatCodeSettings): RefactorContext {

tests/baselines/reference/api/tsserverlibrary.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11227,7 +11227,7 @@ declare namespace ts {
1122711227
function preProcessFile(sourceText: string, readImportFiles?: boolean, detectJavaScriptImports?: boolean): PreProcessedFileInfo;
1122811228
}
1122911229
declare namespace ts.Rename {
11230-
function getRenameInfo(typeChecker: TypeChecker, defaultLibFileName: string, getCanonicalFileName: GetCanonicalFileName, sourceFile: SourceFile, position: number): RenameInfo;
11230+
function getRenameInfo(program: Program, sourceFile: SourceFile, position: number): RenameInfo;
1123111231
}
1123211232
declare namespace ts.SignatureHelp {
1123311233
function getSignatureHelpItems(program: Program, sourceFile: SourceFile, position: number, cancellationToken: CancellationToken): SignatureHelpItems | undefined;

0 commit comments

Comments
 (0)