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()
|
if (property.returnTypeRef !is FirImplicitTypeRef && implicitTypeOnly) return property.compose()
|
||||||
return withScopeCleanup(localScopes) {
|
return withScopeCleanup(localScopes) {
|
||||||
localScopes.addIfNotNull(primaryConstructorParametersScope)
|
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'
|
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
|
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
|
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]
|
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL [var]
|
||||||
$this: VALUE_PARAMETER name:<this> type:<root>.TestInitVarWithCustomSetter
|
$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
|
BLOCK_BODY
|
||||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
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
|
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'
|
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
|
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
|
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]
|
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [var]
|
||||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
$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
|
BLOCK_BODY
|
||||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
||||||
PROPERTY name:test5 visibility:public modality:FINAL [var]
|
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'
|
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
|
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
|
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]
|
correspondingProperty: PROPERTY name:test5 visibility:public modality:FINAL [var]
|
||||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
$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]
|
PROPERTY name:test6 visibility:public modality:FINAL [val]
|
||||||
FIELD PROPERTY_BACKING_FIELD name:test6 type:kotlin.Int visibility:public [final]
|
FIELD PROPERTY_BACKING_FIELD name:test6 type:kotlin.Int visibility:public [final]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
|
|||||||
@@ -38,9 +38,9 @@ FILE fqName:<root> fileName:/packageLevelProperties.kt
|
|||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='public final fun <get-test4> (): kotlin.Int declared in <root>'
|
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
|
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]
|
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
|
BLOCK_BODY
|
||||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
||||||
PROPERTY name:test5 visibility:public modality:FINAL [var]
|
PROPERTY name:test5 visibility:public modality:FINAL [var]
|
||||||
@@ -52,9 +52,9 @@ FILE fqName:<root> fileName:/packageLevelProperties.kt
|
|||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='public final fun <get-test5> (): kotlin.Int declared in <root>'
|
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
|
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]
|
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]
|
PROPERTY name:test6 visibility:public modality:FINAL [val]
|
||||||
FIELD PROPERTY_BACKING_FIELD name:test6 type:kotlin.Int visibility:public [final,static]
|
FIELD PROPERTY_BACKING_FIELD name:test6 type:kotlin.Int visibility:public [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
|
|||||||
@@ -131,9 +131,9 @@ FILE fqName:<root> fileName:/propertyReferences.kt
|
|||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='public final fun <get-varWithBackingFieldAndAccessors> (): kotlin.Int declared in <root>'
|
RETURN type=kotlin.Nothing from='public final fun <get-varWithBackingFieldAndAccessors> (): kotlin.Int declared in <root>'
|
||||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
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]
|
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
|
BLOCK_BODY
|
||||||
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
ERROR_CALL 'Unresolved reference: <Unresolved name: field>#' type=IrErrorType
|
||||||
PROPERTY name:test_varWithBackingFieldAndAccessors visibility:public modality:FINAL [val]
|
PROPERTY name:test_varWithBackingFieldAndAccessors visibility:public modality:FINAL [val]
|
||||||
|
|||||||
Reference in New Issue
Block a user