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> {
|
override fun transformProperty(property: FirProperty, data: ResolutionMode): CompositeTransformResult<FirProperty> {
|
||||||
if (property is FirSyntheticProperty) {
|
if (property is FirSyntheticProperty) {
|
||||||
transformSimpleFunction(property.getter.delegate, data)
|
transformSimpleFunction(property.getter.delegate, data)
|
||||||
property.replaceReturnTypeRef(property.getter.delegate.returnTypeRef)
|
|
||||||
return property.compose()
|
return property.compose()
|
||||||
}
|
}
|
||||||
return withTypeParametersOf(property) {
|
return withTypeParametersOf(property) {
|
||||||
|
|||||||
+4
-2
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
|
|||||||
|
|
||||||
class FirSyntheticProperty(
|
class FirSyntheticProperty(
|
||||||
override val session: FirSession,
|
override val session: FirSession,
|
||||||
override var returnTypeRef: FirTypeRef,
|
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val isVar: Boolean,
|
override val isVar: Boolean,
|
||||||
override val symbol: FirAccessorSymbol,
|
override val symbol: FirAccessorSymbol,
|
||||||
@@ -36,6 +35,9 @@ class FirSyntheticProperty(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val returnTypeRef: FirTypeRef
|
||||||
|
get() = getter.returnTypeRef
|
||||||
|
|
||||||
override val source: FirSourceElement?
|
override val source: FirSourceElement?
|
||||||
get() = null
|
get() = null
|
||||||
|
|
||||||
@@ -130,7 +132,7 @@ class FirSyntheticProperty(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
throw AssertionError("Mutation of synthetic property isn't supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ class FirSyntheticPropertyBuilder {
|
|||||||
var delegateSetter: FirSimpleFunction? = null
|
var delegateSetter: FirSimpleFunction? = null
|
||||||
|
|
||||||
fun build(): FirSyntheticProperty = FirSyntheticProperty(
|
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),
|
status = FirDeclarationStatusImpl(delegateGetter.visibility, delegateGetter.modality),
|
||||||
resolvePhase = delegateGetter.resolvePhase,
|
resolvePhase = delegateGetter.resolvePhase,
|
||||||
getter = FirSyntheticPropertyAccessor(delegateGetter, isGetter = true),
|
getter = FirSyntheticPropertyAccessor(delegateGetter, isGetter = true),
|
||||||
|
|||||||
Reference in New Issue
Block a user