[FIR] Don't call componentX for anonymous destructuring entry

This commit is contained in:
Mikhail Glukhikh
2021-01-13 15:00:00 +03:00
parent 795bd26eaf
commit 6cee4e968e
19 changed files with 37 additions and 34 deletions
@@ -31,6 +31,5 @@ object B {
fun B.test() {
val <destruct>: A = A
val x: Int = (<this>, <destruct>).component1()
val _: Int = (<this>, <destruct>).component2()
val z: Int = (<this>, <destruct>).component3()
}
@@ -64,10 +64,6 @@ FILE fqName:<root> fileName:/destructuringWithUnderscore.kt
CALL 'public final fun component1 (): kotlin.Int [operator] declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR '<this>: <root>.B declared in <root>.test' type=<root>.B origin=null
$receiver: GET_VAR 'val tmp_0: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
VAR name:_ type:kotlin.Int [val]
CALL 'public final fun component2 (): kotlin.Int [operator] declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR '<this>: <root>.B declared in <root>.test' type=<root>.B origin=null
$receiver: GET_VAR 'val tmp_0: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
VAR name:z type:kotlin.Int [val]
CALL 'public final fun component3 (): kotlin.Int [operator] declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR '<this>: <root>.B declared in <root>.test' type=<root>.B origin=null
@@ -56,7 +56,6 @@ data class A {
var fn: Function1<A, Int>
field = local fun <anonymous>(<destruct>: A): Int {
val _: Int = <destruct>.component1()
val y: Int = <destruct>.component2()
return 42.plus(other = y)
}
@@ -142,9 +142,6 @@ FILE fqName:<root> fileName:/destructuringInLambda.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (<destruct>:<root>.A) returnType:kotlin.Int
VALUE_PARAMETER name:<destruct> index:0 type:<root>.A
BLOCK_BODY
VAR name:_ type:kotlin.Int [val]
CALL 'public final fun component1 (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
$this: GET_VAR '<destruct>: <root>.A declared in <root>.fn.<anonymous>' type=<root>.A origin=null
VAR name:y type:kotlin.Int [val]
CALL 'public final fun component2 (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
$this: GET_VAR '<destruct>: <root>.A declared in <root>.fn.<anonymous>' type=<root>.A origin=null