FIR resolve: set setter value-parameter type properly
This commit is contained in:
committed by
Mikhail Glukhikh
parent
38d3438101
commit
58873b2d7b
+3
-1
@@ -938,7 +938,9 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
if (property.returnTypeRef !is FirImplicitTypeRef && implicitTypeOnly) return property.compose()
|
||||
return withScopeCleanup(localScopes) {
|
||||
localScopes.addIfNotNull(primaryConstructorParametersScope)
|
||||
transformVariable(property, data)
|
||||
(transformVariable(property, data).single as FirProperty).apply {
|
||||
setter?.let { it.valueParameters[0].transformReturnTypeRef(StoreType, property.returnTypeRef) }
|
||||
}.compose()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -133,10 +133,10 @@ FILE fqName:<root> fileName:/initVar.kt
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-x> (): kotlin.Int declared in <root>.TestInitVarWithCustomSetter'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
|
||||
receiver: GET_VAR '<this>: <root>.TestInitVarWithCustomSetter declared in <root>.TestInitVarWithCustomSetter.<get-x>' type=<root>.TestInitVarWithCustomSetter origin=null
|
||||
FUN name:<set-x> visibility:public modality:FINAL <> ($this:<root>.TestInitVarWithCustomSetter, value:IrErrorType) returnType:kotlin.Unit
|
||||
FUN name:<set-x> visibility:public modality:FINAL <> ($this:<root>.TestInitVarWithCustomSetter, value:kotlin.Int) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL [var]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.TestInitVarWithCustomSetter
|
||||
VALUE_PARAMETER name:value index:0 type:IrErrorType
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
|
||||
|
||||
@@ -53,10 +53,10 @@ FILE fqName:<root> fileName:/classLevelProperties.kt
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test4> (): kotlin.Int declared in <root>.C'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-test4>' type=<root>.C origin=null
|
||||
FUN name:<set-test4> visibility:public modality:FINAL <> ($this:<root>.C, value:IrErrorType) returnType:kotlin.Unit
|
||||
FUN name:<set-test4> visibility:public modality:FINAL <> ($this:<root>.C, value:kotlin.Int) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [var]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:value index:0 type:IrErrorType
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
||||
PROPERTY name:test5 visibility:public modality:FINAL [var]
|
||||
@@ -70,10 +70,10 @@ FILE fqName:<root> fileName:/classLevelProperties.kt
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test5> (): kotlin.Int declared in <root>.C'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test5 type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-test5>' type=<root>.C origin=null
|
||||
FUN name:<set-test5> visibility:private modality:FINAL <> ($this:<root>.C, value:IrErrorType) returnType:kotlin.Unit
|
||||
FUN name:<set-test5> visibility:private modality:FINAL <> ($this:<root>.C, value:kotlin.Int) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:test5 visibility:public modality:FINAL [var]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:value index:0 type:IrErrorType
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int
|
||||
PROPERTY name:test6 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test6 type:kotlin.Int visibility:public [final]
|
||||
EXPRESSION_BODY
|
||||
|
||||
@@ -38,9 +38,9 @@ FILE fqName:<root> fileName:/packageLevelProperties.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test4> (): kotlin.Int declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.Int visibility:public [static] ' type=kotlin.Int origin=null
|
||||
FUN name:<set-test4> visibility:public modality:FINAL <> (value:IrErrorType) returnType:kotlin.Unit
|
||||
FUN name:<set-test4> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [var]
|
||||
VALUE_PARAMETER name:value index:0 type:IrErrorType
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
||||
PROPERTY name:test5 visibility:public modality:FINAL [var]
|
||||
@@ -52,9 +52,9 @@ FILE fqName:<root> fileName:/packageLevelProperties.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test5> (): kotlin.Int declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test5 type:kotlin.Int visibility:public [static] ' type=kotlin.Int origin=null
|
||||
FUN name:<set-test5> visibility:private modality:FINAL <> (value:IrErrorType) returnType:kotlin.Unit
|
||||
FUN name:<set-test5> visibility:private modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:test5 visibility:public modality:FINAL [var]
|
||||
VALUE_PARAMETER name:value index:0 type:IrErrorType
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int
|
||||
PROPERTY name:test6 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test6 type:kotlin.Int visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
|
||||
@@ -131,9 +131,9 @@ FILE fqName:<root> fileName:/propertyReferences.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-varWithBackingFieldAndAccessors> (): kotlin.Int declared in <root>'
|
||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
||||
FUN name:<set-varWithBackingFieldAndAccessors> visibility:public modality:FINAL <> (value:IrErrorType) returnType:kotlin.Unit
|
||||
FUN name:<set-varWithBackingFieldAndAccessors> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:varWithBackingFieldAndAccessors visibility:public modality:FINAL [var]
|
||||
VALUE_PARAMETER name:value index:0 type:IrErrorType
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
||||
PROPERTY name:test_varWithBackingFieldAndAccessors visibility:public modality:FINAL [val]
|
||||
|
||||
Reference in New Issue
Block a user