[LL FIR] KT-57455 Avoid creating optional annotation class providers
- An `OptionalAnnotationClassesProvider` only needs to be created if the package part provider may even have optional annotation classes. - In the IDE case, the package part provider never provides optional annotation classes, so especially in the IDE, we can avoid a lot of useless symbol providers with this.
This commit is contained in:
committed by
Space Team
parent
d3be38476a
commit
f9785c1050
+7
@@ -28,6 +28,11 @@ interface PackagePartProvider {
|
||||
|
||||
fun getAllOptionalAnnotationClasses(): List<ClassData>
|
||||
|
||||
/**
|
||||
* Returns `true` if [getAllOptionalAnnotationClasses] may return a non-empty list.
|
||||
*/
|
||||
fun mayHaveOptionalAnnotationClasses(): Boolean
|
||||
|
||||
object Empty : PackagePartProvider {
|
||||
override fun findPackageParts(packageFqName: String): List<String> = emptyList()
|
||||
|
||||
@@ -35,6 +40,8 @@ interface PackagePartProvider {
|
||||
|
||||
override fun getAllOptionalAnnotationClasses(): List<ClassData> = emptyList()
|
||||
|
||||
override fun mayHaveOptionalAnnotationClasses(): Boolean = false
|
||||
|
||||
override fun computePackageSetWithNonClassDeclarations(): Set<String> = emptySet()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user