FirSyntheticProperty: take returnTypeRef directly from delegate
This commit is contained in:
-1
@@ -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) {
|
||||
|
||||
+4
-2
@@ -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?) {
|
||||
|
||||
+1
-1
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user