[FIR] Don't transform setter parameter type if it's given explicitly

This commit is contained in:
Mikhail Glukhikh
2020-08-03 10:02:25 +03:00
parent 8813ebd950
commit 4332e95b8a
2 changed files with 5 additions and 3 deletions
@@ -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)
}
}
+2 -2
View File
@@ -9,8 +9,8 @@ enum class Color {
class MyColor(val x: <!UNRESOLVED_REFERENCE!>Color.RED<!>, y: <!UNRESOLVED_REFERENCE!>Color.RED<!>) : <!UNRESOLVED_REFERENCE!>Color.RED<!> {
var z: <!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>Color.RED<!> = Color.RED
set(arg: Color.RED) { z = arg }
var z: <!UNRESOLVED_REFERENCE!>Color.RED<!> = Color.RED
set(arg: <!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>Color.RED<!>) { z = arg }
fun foo(arg: <!UNRESOLVED_REFERENCE!>Color.RED<!>): <!UNRESOLVED_REFERENCE!>Color.RED<!> = arg