Optimize FirImportsChecker using lazy evaluation
This commit is contained in:
committed by
teamcityserver
parent
18f7a760bb
commit
f09fc9a473
+17
-15
@@ -79,21 +79,23 @@ object FirImportsChecker : FirFileChecker() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
return
|
||||||
val importedClassId = ClassId.topLevel(importedFqName)
|
}
|
||||||
val resolvedToClass = importedClassId.resolveToClass(context) != null
|
when {
|
||||||
val resolvedToSymbols = symbolProvider.getTopLevelCallableSymbols(importedFqName.parent(), importedName).isNotEmpty()
|
ClassId.topLevel(importedFqName).resolveToClass(context) != null -> return
|
||||||
val resolvedToPackages = symbolProvider.getPackage(importedFqName) != null
|
// Note: two checks below are both heavyweight, so we should do them lazily!
|
||||||
when {
|
symbolProvider.getTopLevelCallableSymbols(importedFqName.parent(), importedName).isNotEmpty() -> return
|
||||||
resolvedToClass || resolvedToSymbols -> return
|
symbolProvider.getPackage(importedFqName) != null -> reporter.reportOn(
|
||||||
resolvedToPackages -> reporter.reportOn(import.source, FirErrors.PACKAGE_CANNOT_BE_IMPORTED, context)
|
import.source,
|
||||||
else -> reporter.reportOn(
|
FirErrors.PACKAGE_CANNOT_BE_IMPORTED,
|
||||||
import.source,
|
context
|
||||||
FirErrors.UNRESOLVED_IMPORT,
|
)
|
||||||
importedName.asString(),
|
else -> reporter.reportOn(
|
||||||
context,
|
import.source,
|
||||||
)
|
FirErrors.UNRESOLVED_IMPORT,
|
||||||
}
|
importedName.asString(),
|
||||||
|
context,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user