FIR: Optimize case with no annotations on package

This commit is contained in:
Denis.Zharkov
2021-09-15 17:53:33 +03:00
committed by TeamCityServer
parent 37785eb244
commit 38fa900e56
7 changed files with 21 additions and 9 deletions
@@ -23,7 +23,8 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
class JavaPackageImpl(
psiPackage: PsiPackage, private val scope: GlobalSearchScope
psiPackage: PsiPackage, private val scope: GlobalSearchScope,
private val mayHaveAnnotations: Boolean = true,
) : JavaElementImpl<PsiPackage>(psiPackage), JavaPackage, MapBasedJavaAnnotationOwner {
override fun getClasses(nameFilter: (Name) -> Boolean): Collection<JavaClass> {
@@ -41,7 +42,11 @@ class JavaPackageImpl(
get() = FqName(psi.qualifiedName)
override val annotations: Collection<JavaAnnotation>
get() = org.jetbrains.kotlin.load.java.structure.impl.annotations(psi.annotationList?.annotations.orEmpty())
get() =
if (mayHaveAnnotations)
org.jetbrains.kotlin.load.java.structure.impl.annotations(psi.annotationList?.annotations.orEmpty())
else
emptyList()
override val annotationsByFqName: Map<FqName?, JavaAnnotation> by buildLazyValueForMap()
}