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
@@ -53,9 +53,16 @@ class FirJavaFacade(
) {
companion object {
val VALUE_METHOD_NAME = Name.identifier("value")
private const val PACKAGE_INFO_CLASS_NAME = "package-info"
}
private val packageCache = session.firCachesFactory.createCache(classFinder::findPackage)
private val packageCache = session.firCachesFactory.createCache { fqName: FqName ->
val knownClassNames: Set<String>? = knownClassNamesInPackage.getValue(fqName)
classFinder.findPackage(
fqName,
mayHaveAnnotations = if (knownClassNames != null) PACKAGE_INFO_CLASS_NAME in knownClassNames else true
)
}
private val knownClassNamesInPackage = session.firCachesFactory.createCache(classFinder::knownClassNamesInPackage)
private val parentClassTypeParameterStackCache = mutableMapOf<FirRegularClassSymbol, JavaTypeParameterStack>()