FIR2IR: declare receivers for all accessors of extension properties
Before this commit, extension receivers were declared only for properties with container source, which is strange & inconsistent. Now we declare accessor extension receiver iff corresponding property has extension receiver.
This commit is contained in:
@@ -40,9 +40,10 @@ FILE fqName:<root> fileName:/multipleImplicitReceivers.kt
|
||||
CLASS INTERFACE name:IFoo modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IFoo
|
||||
PROPERTY name:foo visibility:public modality:OPEN [val]
|
||||
FUN name:<get-foo> visibility:public modality:OPEN <> ($this:<root>.IFoo) returnType:<root>.B
|
||||
FUN name:<get-foo> visibility:public modality:OPEN <> ($this:<root>.IFoo, $receiver:<root>.A) returnType:<root>.B
|
||||
correspondingProperty: PROPERTY name:foo visibility:public modality:OPEN [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.IFoo
|
||||
$receiver: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-foo> (): <root>.B declared in <root>.IFoo'
|
||||
GET_OBJECT 'CLASS OBJECT name:B modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.B
|
||||
@@ -113,3 +114,6 @@ FILE fqName:<root> fileName:/multipleImplicitReceivers.kt
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.test.<anonymous>.<anonymous>'
|
||||
CALL 'public open fun invoke (): kotlin.Int [operator] declared in <root>.IInvoke' type=kotlin.Int origin=null
|
||||
$this: GET_VAR '<this>: <root>.IInvoke declared in special.<anonymous>' type=<root>.IInvoke origin=null
|
||||
$receiver: CALL 'public open fun <get-foo> (): <root>.B declared in <root>.IFoo' type=<root>.B origin=null
|
||||
$this: GET_VAR '<this>: <root>.IFoo declared in special.<anonymous>' type=<root>.IFoo origin=null
|
||||
$receiver: GET_VAR '<this>: <root>.A declared in special.<anonymous>' type=<root>.A origin=null
|
||||
|
||||
Reference in New Issue
Block a user