@@ -498,7 +498,7 @@ namespace ts.codefix {
498
498
const compilerOptions = program . getCompilerOptions ( ) ;
499
499
const preferTypeOnlyImport = compilerOptions . importsNotUsedAsValues === ImportsNotUsedAsValues . Error && isValidTypeOnlyAliasUseSite ( symbolToken ) ;
500
500
const useRequire = shouldUseRequire ( sourceFile , compilerOptions ) ;
501
- const exportInfos = getExportInfos ( symbolName , getMeaningFromLocation ( symbolToken ) , cancellationToken , sourceFile , checker , program , useAutoImportProvider , host ) ;
501
+ const exportInfos = getExportInfos ( symbolName , getMeaningFromLocation ( symbolToken ) , cancellationToken , sourceFile , program , useAutoImportProvider , host ) ;
502
502
const fixes = arrayFrom ( flatMapIterator ( exportInfos . entries ( ) , ( [ _ , exportInfos ] ) =>
503
503
getFixForImport ( exportInfos , symbolName , symbolToken . getStart ( sourceFile ) , preferTypeOnlyImport , useRequire , program , sourceFile , host , preferences ) ) ) ;
504
504
return { fixes, symbolName } ;
@@ -521,29 +521,29 @@ namespace ts.codefix {
521
521
currentTokenMeaning : SemanticMeaning ,
522
522
cancellationToken : CancellationToken ,
523
523
sourceFile : SourceFile ,
524
- checker : TypeChecker ,
525
524
program : Program ,
526
525
useAutoImportProvider : boolean ,
527
526
host : LanguageServiceHost
528
527
) : ReadonlyESMap < string , readonly SymbolExportInfo [ ] > {
529
528
// For each original symbol, keep all re-exports of that symbol together so we can call `getCodeActionsForImport` on the whole group at once.
530
529
// Maps symbol id to info for modules providing that symbol (original export + re-exports).
531
530
const originalSymbolToExportInfos = createMultiMap < SymbolExportInfo > ( ) ;
532
- function addSymbol ( moduleSymbol : Symbol , exportedSymbol : Symbol , importKind : ImportKind ) : void {
531
+ function addSymbol ( moduleSymbol : Symbol , exportedSymbol : Symbol , importKind : ImportKind , checker : TypeChecker ) : void {
533
532
originalSymbolToExportInfos . add ( getUniqueSymbolId ( exportedSymbol , checker ) . toString ( ) , { moduleSymbol, importKind, exportedSymbolIsTypeOnly : isTypeOnlySymbol ( exportedSymbol , checker ) } ) ;
534
533
}
535
- forEachExternalModuleToImportFrom ( program , host , sourceFile , /*filterByPackageJson*/ true , useAutoImportProvider , moduleSymbol => {
534
+ forEachExternalModuleToImportFrom ( program , host , sourceFile , /*filterByPackageJson*/ true , useAutoImportProvider , ( moduleSymbol , _ , program ) => {
535
+ const checker = program . getTypeChecker ( ) ;
536
536
cancellationToken . throwIfCancellationRequested ( ) ;
537
537
538
538
const defaultInfo = getDefaultLikeExportInfo ( sourceFile , moduleSymbol , checker , program . getCompilerOptions ( ) ) ;
539
539
if ( defaultInfo && defaultInfo . name === symbolName && symbolHasMeaning ( defaultInfo . symbolForMeaning , currentTokenMeaning ) ) {
540
- addSymbol ( moduleSymbol , defaultInfo . symbol , defaultInfo . kind ) ;
540
+ addSymbol ( moduleSymbol , defaultInfo . symbol , defaultInfo . kind , checker ) ;
541
541
}
542
542
543
543
// check exports with the same name
544
544
const exportSymbolWithIdenticalName = checker . tryGetMemberInModuleExportsAndProperties ( symbolName , moduleSymbol ) ;
545
545
if ( exportSymbolWithIdenticalName && symbolHasMeaning ( exportSymbolWithIdenticalName , currentTokenMeaning ) ) {
546
- addSymbol ( moduleSymbol , exportSymbolWithIdenticalName , ImportKind . Named ) ;
546
+ addSymbol ( moduleSymbol , exportSymbolWithIdenticalName , ImportKind . Named , checker ) ;
547
547
}
548
548
} ) ;
549
549
return originalSymbolToExportInfos ;
0 commit comments