Implement ts.OrganizeImports.removeUnusedImports#22007
Conversation
| return true; | ||
| } | ||
|
|
||
| const entries = FindAllReferences.getReferenceEntriesForNode(identifier.pos, identifier, program, [sourceFile], { |
There was a problem hiding this comment.
I have a repro where this returns entries from other files. I have yet to figure out why.
There was a problem hiding this comment.
I can just add .filter(e => e.type === "node" && e.node.getSourceFile() === sourceFile), but first I'd like to confirm that this isn't a bug in FAR.
There was a problem hiding this comment.
Per our offline discussion, I've added filtering at the call site.
|
Failures are, once again, due to uppercase/lowercase mismatch. Investigating. |
TODO: Still need to add support for organizing imports in ambient modules
0bf182f to
fee1df3
Compare
|
|
||
| return usedImports; | ||
|
|
||
| function isDeclarationUsed(identifier: Identifier) { |
There was a problem hiding this comment.
return !!program.getTypeChecker().getSymbolAtLocation(identifier)!.isReferenced;, and at top, program.getSemanticDiagnostics(sourceFile); // Ensure we've checked this file so 'isReferenced' is defined on symbols.. Also must change check isUse && result && nameNotFoundMessage && noUnusedIdentifiers in checker.ts to not include && noUnusedIdentifiers, so we always set isReferenced accurately.
There was a problem hiding this comment.
I'll defer to @mhegazy, who asked me to do it this way.
There was a problem hiding this comment.
Any progress towards reaching a consensus on how to identify unused imports?
|
|
||
| const usedImports: ImportDeclaration[] = []; | ||
|
|
||
| for (const importDecl of oldImports) { |
There was a problem hiding this comment.
return mapDefined(oldImports, importDecl => <<<importDecl, updated import, or undefined>>>)
There was a problem hiding this comment.
I'm not sure I understand the advantage of doing it that way.
ghost
left a comment
There was a problem hiding this comment.
Have some ideas for how to improve the findAllRefs use but I'll do that in a later PR.
TODO: Still need to add support for organizing imports in ambient
modules