@@ -38,6 +38,7 @@ class ImportAnalyzer2(val holder: ProblemsHolder): MvVisitor() {
3838 .flatMap { it.descendantsOfType<MvPath >() }
3939 .filter { it.basePath() == it }
4040 .filter { it.usageScope == itemScope }
41+ // remove paths inside the use stmts
4142 .filter { ! it.hasAncestor<MvUseSpeck >() }
4243
4344 for (path in reachablePaths) {
@@ -75,15 +76,15 @@ class ImportAnalyzer2(val holder: ProblemsHolder): MvVisitor() {
7576 for (itemsOwner in reachableItemsOwners) {
7677 val scopeUseStmts = itemsOwner.useStmtList.filter { it.usageScope == itemScope }
7778 for (useStmt in scopeUseStmts) {
78- val unusedUseItems = useStmt.useItems.toSet() - allUseItemsHit
79- holder.registerStmtSpeckError2(useStmt, unusedUseItems)
79+ holder.registerStmtSpeckError(useStmt, allUseItemsHit)
8080 }
8181 }
8282 }
8383}
8484
85- fun ProblemsHolder.registerStmtSpeckError2 (useStmt : MvUseStmt , useItems : Set <UseItem >) {
86- val moduleUseItems = useItems.filter { it.type is UseItemType .Module }
85+ fun ProblemsHolder.registerStmtSpeckError (useStmt : MvUseStmt , allUseItemsHit : Set <UseItem >) {
86+ val unusedUseItems = useStmt.useItems.toSet() - allUseItemsHit
87+ val moduleUseItems = unusedUseItems.filter { it.type is UseItemType .Module }
8788 if (moduleUseItems.isNotEmpty()) {
8889 this .registerProblem(
8990 useStmt,
@@ -93,15 +94,15 @@ fun ProblemsHolder.registerStmtSpeckError2(useStmt: MvUseStmt, useItems: Set<Use
9394 return
9495 }
9596
96- if (useStmt.useItems.size == useItems .size) {
97+ if (useStmt.useItems.size == unusedUseItems .size) {
9798 // all inner speck types are covered, highlight complete useStmt
9899 this .registerProblem(
99100 useStmt,
100101 " Unused use item" ,
101102 ProblemHighlightType .LIKE_UNUSED_SYMBOL
102103 )
103104 } else {
104- for (useItem in useItems ) {
105+ for (useItem in unusedUseItems ) {
105106 this .registerProblem(
106107 useItem.useSpeck,
107108 " Unused use item" ,
0 commit comments