diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt index 604d216b827..25e195c42c2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt @@ -11,10 +11,7 @@ import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.isStatic import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull -import org.jetbrains.kotlin.fir.scopes.FirScope -import org.jetbrains.kotlin.fir.scopes.FirTypeScope -import org.jetbrains.kotlin.fir.scopes.ProcessorAction -import org.jetbrains.kotlin.fir.scopes.processOverriddenFunctionsAndSelf +import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.SyntheticSymbol @@ -38,7 +35,7 @@ class FirSyntheticFunctionSymbol( class FirSyntheticPropertiesScope( val session: FirSession, private val baseScope: FirTypeScope -) : FirScope() { +) : FirScope(), FirContainingNamesAwareScope { private val syntheticNamesProvider = session.syntheticNamesProvider override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) { @@ -50,6 +47,12 @@ class FirSyntheticPropertiesScope( } } + override fun getCallableNames(): Set = baseScope.getCallableNames().flatMapTo(hashSetOf()) { propertyName -> + syntheticNamesProvider.possiblePropertyNamesByAccessorName(propertyName) + } + + override fun getClassifierNames(): Set = emptySet() + private fun checkGetAndCreateSynthetic( propertyName: Name, getterName: Name,