FirSyntheticProperty: take returnTypeRef directly from delegate

This commit is contained in:
Mikhail Glukhikh
2020-07-14 18:20:37 +03:00
parent e2678149cb
commit 9107944b05
3 changed files with 5 additions and 4 deletions
@@ -98,7 +98,6 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
override fun transformProperty(property: FirProperty, data: ResolutionMode): CompositeTransformResult<FirProperty> {
if (property is FirSyntheticProperty) {
transformSimpleFunction(property.getter.delegate, data)
property.replaceReturnTypeRef(property.getter.delegate.returnTypeRef)
return property.compose()
}
return withTypeParametersOf(property) {
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
class FirSyntheticProperty(
override val session: FirSession,
override var returnTypeRef: FirTypeRef,
override val name: Name,
override val isVar: Boolean,
override val symbol: FirAccessorSymbol,
@@ -36,6 +35,9 @@ class FirSyntheticProperty(
symbol.bind(this)
}
override val returnTypeRef: FirTypeRef
get() = getter.returnTypeRef
override val source: FirSourceElement?
get() = null
@@ -130,7 +132,7 @@ class FirSyntheticProperty(
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
throw AssertionError("Mutation of synthetic property isn't supported")
}
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
@@ -21,7 +21,7 @@ class FirSyntheticPropertyBuilder {
var delegateSetter: FirSimpleFunction? = null
fun build(): FirSyntheticProperty = FirSyntheticProperty(
session, delegateGetter.returnTypeRef, name, isVar = delegateSetter != null, symbol = symbol,
session, name, isVar = delegateSetter != null, symbol = symbol,
status = FirDeclarationStatusImpl(delegateGetter.visibility, delegateGetter.modality),
resolvePhase = delegateGetter.resolvePhase,
getter = FirSyntheticPropertyAccessor(delegateGetter, isGetter = true),