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:
Mikhail Glukhikh
2020-02-25 11:57:16 +03:00
parent 8c155578f7
commit d1fac6dce1
32 changed files with 158 additions and 124 deletions
@@ -28,9 +28,10 @@ FILE fqName:<root> fileName:/receiverParameterWithAnnotations.kt
RETURN type=kotlin.Nothing from='public final fun f (): kotlin.String declared in <root>.A'
CONST String type=kotlin.String value=""
PROPERTY name:p visibility:public modality:FINAL [val]
FUN name:<get-p> visibility:public modality:FINAL <> ($this:<root>.A) returnType:kotlin.String
FUN name:<get-p> visibility:public modality:FINAL <> ($this:<root>.A, $receiver:kotlin.String?) returnType:kotlin.String
correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.A
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String?
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-p> (): kotlin.String declared in <root>.A'
CONST String type=kotlin.String value=""
@@ -53,8 +54,9 @@ FILE fqName:<root> fileName:/receiverParameterWithAnnotations.kt
RETURN type=kotlin.Nothing from='public final fun topLevelF (): kotlin.String declared in <root>'
CONST String type=kotlin.String value=""
PROPERTY name:topLevelP visibility:public modality:FINAL [val]
FUN name:<get-topLevelP> visibility:public modality:FINAL <> () returnType:kotlin.String
FUN name:<get-topLevelP> visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.String
correspondingProperty: PROPERTY name:topLevelP visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-topLevelP> (): kotlin.String declared in <root>'
CONST String type=kotlin.String value=""