diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index 0052c1f1b87..c3618e4854e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -578,9 +578,6 @@ open class FirBodyResolveTransformer( return super.transformPropertyAccessor(propertyAccessor, data) } val returnTypeRef = propertyAccessor.returnTypeRef - if (returnTypeRef !is FirImplicitTypeRef && implicitTypeOnly) { - return propertyAccessor.compose() - } if (returnTypeRef is FirImplicitTypeRef && data !is FirResolvedTypeRef) { propertyAccessor.transformReturnTypeRef(StoreType, FirComputingImplicitTypeRef) } @@ -639,8 +636,8 @@ open class FirBodyResolveTransformer( enhancedTypeRef = returnTypeRef } setter?.let { - it.transform(this@FirBodyResolveTransformer, enhancedTypeRef) it.valueParameters[0].transformReturnTypeRef(StoreType, enhancedTypeRef) + it.transform(this@FirBodyResolveTransformer, enhancedTypeRef) } } @@ -674,6 +671,7 @@ open class FirBodyResolveTransformer( override fun transformProperty(property: FirProperty, data: Any?): CompositeTransformResult { val returnTypeRef = property.returnTypeRef if (returnTypeRef !is FirImplicitTypeRef && implicitTypeOnly) return property.compose() + if (property.resolvePhase == transformerPhase) return property.compose() if (returnTypeRef is FirImplicitTypeRef) { property.transformReturnTypeRef(StoreType, FirComputingImplicitTypeRef) } diff --git a/compiler/fir/resolve/testData/resolve/cast.txt b/compiler/fir/resolve/testData/resolve/cast.txt index 88f49f9312c..887d1e62d3d 100644 --- a/compiler/fir/resolve/testData/resolve/cast.txt +++ b/compiler/fir/resolve/testData/resolve/cast.txt @@ -18,7 +18,7 @@ FILE: cast.kt } public get(): R|kotlin/Function1| - public final val hError: R|kotlin/Function1| = fun (_: R|class error: No type for parameter|): R|kotlin/Boolean| { + public final val hError: R|kotlin/Function1| = fun (_: ): R|kotlin/Boolean| { Boolean(true) } diff --git a/compiler/testData/ir/irText/lambdas/justLambda.fir.txt b/compiler/testData/ir/irText/lambdas/justLambda.fir.txt index c93fc4bdc02..09378ee57ee 100644 --- a/compiler/testData/ir/irText/lambdas/justLambda.fir.txt +++ b/compiler/testData/ir/irText/lambdas/justLambda.fir.txt @@ -5,7 +5,7 @@ FILE fqName: fileName:/justLambda.kt FUN_EXPR type=kotlin.Function0 origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> () returnType:kotlin.Int BLOCK_BODY - CONST Int type=kotlin.Function0 value=42 + CONST Int type=kotlin.Int value=42 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:kotlin.Function0 correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val] BLOCK_BODY