@@ -3,15 +3,15 @@ namespace ts.Rename {
33 export function getRenameInfo ( program : Program , sourceFile : SourceFile , position : number , options ?: RenameInfoOptions ) : RenameInfo {
44 const node = getAdjustedRenameLocation ( getTouchingPropertyName ( sourceFile , position ) ) ;
55 if ( nodeIsEligibleForRename ( node ) ) {
6- const renameInfo = getRenameInfoForNode ( node , program . getTypeChecker ( ) , sourceFile , declaration => program . isSourceFileDefaultLibrary ( declaration . getSourceFile ( ) ) , options ) ;
6+ const renameInfo = getRenameInfoForNode ( node , program . getTypeChecker ( ) , sourceFile , program , options ) ;
77 if ( renameInfo ) {
88 return renameInfo ;
99 }
1010 }
1111 return getRenameInfoError ( Diagnostics . You_cannot_rename_this_element ) ;
1212 }
1313
14- function getRenameInfoForNode ( node : Node , typeChecker : TypeChecker , sourceFile : SourceFile , isDefinedInLibraryFile : ( declaration : Node ) => boolean , options ?: RenameInfoOptions ) : RenameInfo | undefined {
14+ function getRenameInfoForNode ( node : Node , typeChecker : TypeChecker , sourceFile : SourceFile , program : Program , options ?: RenameInfoOptions ) : RenameInfo | undefined {
1515 const symbol = typeChecker . getSymbolAtLocation ( node ) ;
1616 if ( ! symbol ) {
1717 if ( isStringLiteralLike ( node ) ) {
@@ -33,7 +33,7 @@ namespace ts.Rename {
3333 if ( ! declarations || declarations . length === 0 ) return ;
3434
3535 // Disallow rename for elements that are defined in the standard TypeScript library.
36- if ( declarations . some ( isDefinedInLibraryFile ) ) {
36+ if ( declarations . some ( declaration => isDefinedInLibraryFile ( program , declaration ) ) ) {
3737 return getRenameInfoError ( Diagnostics . You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library ) ;
3838 }
3939
@@ -55,6 +55,11 @@ namespace ts.Rename {
5555 return getRenameInfoSuccess ( displayName , fullDisplayName , kind , SymbolDisplay . getSymbolModifiers ( typeChecker , symbol ) , node , sourceFile ) ;
5656 }
5757
58+ function isDefinedInLibraryFile ( program : Program , declaration : Node ) {
59+ const sourceFile = declaration . getSourceFile ( ) ;
60+ return program . isSourceFileDefaultLibrary ( sourceFile ) && fileExtensionIs ( sourceFile . fileName , Extension . Dts ) ;
61+ }
62+
5863 function getRenameInfoForModule ( node : StringLiteralLike , sourceFile : SourceFile , moduleSymbol : Symbol ) : RenameInfo | undefined {
5964 if ( ! isExternalModuleNameRelative ( node . text ) ) {
6065 return getRenameInfoError ( Diagnostics . You_cannot_rename_a_module_via_a_global_import ) ;
0 commit comments