diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index f8a137f3313..b9b608215cd 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -294,7 +294,9 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor enhancedTypeRef = returnTypeRef } setter?.let { - it.valueParameters[0].transformReturnTypeRef(StoreType, enhancedTypeRef) + if (it.valueParameters[0].returnTypeRef is FirImplicitTypeRef) { + it.valueParameters[0].transformReturnTypeRef(StoreType, enhancedTypeRef) + } transformAccessor(it, enhancedTypeRef, this) } } diff --git a/compiler/testData/diagnostics/tests/EnumEntryAsType.fir.kt b/compiler/testData/diagnostics/tests/EnumEntryAsType.fir.kt index 22e54ee7a22..0e4171e9987 100644 --- a/compiler/testData/diagnostics/tests/EnumEntryAsType.fir.kt +++ b/compiler/testData/diagnostics/tests/EnumEntryAsType.fir.kt @@ -9,8 +9,8 @@ enum class Color { class MyColor(val x: Color.RED, y: Color.RED) : Color.RED { - var z: Color.RED = Color.RED - set(arg: Color.RED) { z = arg } + var z: Color.RED = Color.RED + set(arg: Color.RED) { z = arg } fun foo(arg: Color.RED): Color.RED = arg