[FIR] Extract java synthetic names calculation to platform specific component

This commit is contained in:
Dmitriy Novozhilov
2020-08-28 13:54:05 +03:00
parent 375140ebcc
commit 28e6050551
5 changed files with 70 additions and 36 deletions
@@ -9,10 +9,12 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.registerJvmEffectiveVisibilityResolver
import org.jetbrains.kotlin.fir.resolve.calls.jvm.registerJvmCallConflictResolverFactory
import org.jetbrains.kotlin.fir.resolve.registerJavaClassMapper
import org.jetbrains.kotlin.fir.resolve.registerJavaSyntheticNamesProvider
fun FirSession.registerJavaSpecificComponents() {
registerJavaVisibilityChecker()
registerJvmCallConflictResolverFactory()
registerJvmEffectiveVisibilityResolver()
registerJavaClassMapper()
registerJavaSyntheticNamesProvider()
}
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.java.JavaTypeParameterStack
import org.jetbrains.kotlin.fir.java.declarations.*
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticPropertiesScope
import org.jetbrains.kotlin.fir.resolve.FirJavaSyntheticNamesProvider
import org.jetbrains.kotlin.fir.scopes.FirScope
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
import org.jetbrains.kotlin.fir.scopes.getContainingCallableNamesIfPresent
@@ -157,7 +157,7 @@ class JavaClassUseSiteMemberScope(
if (name.isSpecial) {
return processAccessorFunctionsAndPropertiesByName(name, emptyList(), processor)
}
val getterNames = FirSyntheticPropertiesScope.possibleGetterNamesByPropertyName(name)
val getterNames = FirJavaSyntheticNamesProvider.possibleGetterNamesByPropertyName(name)
val setterName = Name.identifier(SETTER_PREFIX + name.identifier.capitalize())
return processAccessorFunctionsAndPropertiesByName(name, getterNames, processor)
}