[FIR] Reuse calculated values and clean up code

This commit is contained in:
Ivan Kochurkin
2021-10-27 18:25:57 +03:00
committed by teamcity
parent 0dab39b6e3
commit 646d156bde
8 changed files with 25 additions and 22 deletions
@@ -76,8 +76,9 @@ class FirSignatureEnhancement(
): FirFunctionSymbol<*> {
return enhancements.getOrPut(function) {
enhance(function, name).also { enhancedVersion ->
(enhancedVersion.fir.initialSignatureAttr as? FirSimpleFunction)?.let {
enhancedVersion.fir.initialSignatureAttr = enhancedFunction(it.symbol, it.name).fir
val enhancedVersionFir = enhancedVersion.fir
(enhancedVersionFir.initialSignatureAttr as? FirSimpleFunction)?.let {
enhancedVersionFir.initialSignatureAttr = enhancedFunction(it.symbol, it.name).fir
}
}
} as FirFunctionSymbol<*>
@@ -52,7 +52,7 @@ class JavaClassUseSiteMemberScope(
private val typeParameterStack = klass.javaTypeParameterStack
private val specialFunctions = hashMapOf<Name, Collection<FirNamedFunctionSymbol>>()
private val syntheticPropertyByNameMap = hashMapOf<Name, FirSyntheticPropertySymbol>()
private val canUseSpecialGetters: Boolean by lazy { !klass.hasKotlinSuper(session) }
private val callableNamesCached by lazy(LazyThreadSafetyMode.PUBLICATION) {
@@ -161,11 +161,8 @@ class JavaClassUseSiteMemberScope(
scope: FirScope,
): FirNamedFunctionSymbol? {
val specialGetterName = if (canUseSpecialGetters) getBuiltinSpecialPropertyGetterName() else null
if (specialGetterName != null) {
return findGetterByName(specialGetterName.asString(), scope)
}
return findGetterByName(JvmAbi.getterName(fir.name.asString()), scope)
val name = specialGetterName?.asString() ?: JvmAbi.getterName(fir.name.asString())
return findGetterByName(name, scope)
}
private fun FirPropertySymbol.findGetterByName(