FIR Tree: make FirDefaultPropertyAccessor propagate dispatchReceiverType

Custom property accessor has this property set and hence it make sense
for the default accessor to have it too. Also, FE1.0's counterpart
has this bit set and it's returned through the analysis API.
This commit is contained in:
Tianyu Geng
2021-11-12 15:18:35 -08:00
committed by Mikhail Glukhikh
parent 03d8a3927b
commit 1c8d1fcdba
9 changed files with 10 additions and 21 deletions
@@ -1,4 +0,0 @@
KtFunctionCall:
argumentMapping = { }
targetFunction = <getter>(<dispatch receiver>: A): kotlin.Int
substitutor = <empty substitutor>
@@ -1,4 +1,4 @@
KtFunctionCall:
argumentMapping = { }
targetFunction = <getter>(): kotlin.Int
targetFunction = <getter>(<dispatch receiver>: A): kotlin.Int
substitutor = <empty substitutor>
@@ -1,4 +0,0 @@
KtFunctionCall:
argumentMapping = { }
targetFunction = <getter>(<dispatch receiver>: KtClass): KtSubClass
substitutor = <empty substitutor>
@@ -1,4 +1,4 @@
KtFunctionCall:
argumentMapping = { }
targetFunction = <getter>(): KtSubClass
targetFunction = <getter>(<dispatch receiver>: KtClass): KtSubClass
substitutor = <empty substitutor>
@@ -1,4 +0,0 @@
KtFunctionCall:
argumentMapping = { 42 -> (value: kotlin.Int) }
targetFunction = <setter>(<dispatch receiver>: KtClass, value: kotlin.Int): kotlin.Unit
substitutor = <empty substitutor>
@@ -1,4 +1,4 @@
KtFunctionCall:
argumentMapping = { 42 -> (value: kotlin.Int) }
targetFunction = <setter>(value: kotlin.Int): kotlin.Unit
targetFunction = <setter>(<dispatch receiver>: KtClass, value: kotlin.Int): kotlin.Unit
substitutor = <empty substitutor>
@@ -1,4 +0,0 @@
KtFunctionCall:
argumentMapping = { 1 -> (value: kotlin.Int) }
targetFunction = <setter>(<dispatch receiver>: A, value: kotlin.Int): kotlin.Unit
substitutor = <empty substitutor>
@@ -1,4 +1,4 @@
KtFunctionCall:
argumentMapping = { 1 -> (value: kotlin.Int) }
targetFunction = <setter>(value: kotlin.Int): kotlin.Unit
targetFunction = <setter>(<dispatch receiver>: A, value: kotlin.Int): kotlin.Unit
substitutor = <empty substitutor>
@@ -11,7 +11,8 @@ import org.jetbrains.kotlin.descriptors.EffectiveVisibility
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fakeElement
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.buildDefaultSetterValueParameter
@@ -20,6 +21,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.name.Name
@@ -64,6 +66,9 @@ abstract class FirDefaultPropertyAccessor(
get() = if (status is FirResolvedDeclarationStatus) FirResolvePhase.BODY_RESOLVE else FirResolvePhase.TYPES
set(_) {}
override val dispatchReceiverType: ConeKotlinType?
get() = propertySymbol?.dispatchReceiverType
final override var body: FirBlock?
get() = null
set(_) {}