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: KtFunctionCall:
argumentMapping = { } argumentMapping = { }
targetFunction = <getter>(): kotlin.Int targetFunction = <getter>(<dispatch receiver>: A): kotlin.Int
substitutor = <empty substitutor> substitutor = <empty substitutor>
@@ -1,4 +0,0 @@
KtFunctionCall:
argumentMapping = { }
targetFunction = <getter>(<dispatch receiver>: KtClass): KtSubClass
substitutor = <empty substitutor>
@@ -1,4 +1,4 @@
KtFunctionCall: KtFunctionCall:
argumentMapping = { } argumentMapping = { }
targetFunction = <getter>(): KtSubClass targetFunction = <getter>(<dispatch receiver>: KtClass): KtSubClass
substitutor = <empty substitutor> 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: KtFunctionCall:
argumentMapping = { 42 -> (value: kotlin.Int) } 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> 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: KtFunctionCall:
argumentMapping = { 1 -> (value: kotlin.Int) } 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> substitutor = <empty substitutor>
@@ -11,7 +11,8 @@ import org.jetbrains.kotlin.descriptors.EffectiveVisibility
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fakeElement 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.contracts.impl.FirEmptyContractDescription
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.buildDefaultSetterValueParameter 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.FirPropertyAccessorSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol 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.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -64,6 +66,9 @@ abstract class FirDefaultPropertyAccessor(
get() = if (status is FirResolvedDeclarationStatus) FirResolvePhase.BODY_RESOLVE else FirResolvePhase.TYPES get() = if (status is FirResolvedDeclarationStatus) FirResolvePhase.BODY_RESOLVE else FirResolvePhase.TYPES
set(_) {} set(_) {}
override val dispatchReceiverType: ConeKotlinType?
get() = propertySymbol?.dispatchReceiverType
final override var body: FirBlock? final override var body: FirBlock?
get() = null get() = null
set(_) {} set(_) {}