Raw FIR: make component call a function call, its argument -> receiver
This commit is contained in:
@@ -354,9 +354,7 @@ internal fun generateDestructuringBlock(
|
||||
statements += FirVariableImpl(
|
||||
session, entry, entry.nameAsSafeName,
|
||||
entry.typeReference.toFirOrImplicitTypeRef(), isVar,
|
||||
FirComponentCallImpl(session, entry, index + 1).apply {
|
||||
arguments += generateAccessExpression(session, entry, container.name)
|
||||
},
|
||||
FirComponentCallImpl(session, entry, index + 1, generateAccessExpression(session, entry, container.name)),
|
||||
FirVariableSymbol(entry.nameAsSafeName) // TODO?
|
||||
).apply {
|
||||
entry.extractAnnotationsTo(this)
|
||||
|
||||
@@ -28,6 +28,6 @@ FILE: annotated.kt
|
||||
}
|
||||
public? final? fun bar(two: Two): kotlin/Unit {
|
||||
lval <destruct>: <implicit> = two#
|
||||
@Ann() lval x: <implicit> = component1(<destruct>#)
|
||||
@Ann() lval y: <implicit> = component2(<destruct>#)
|
||||
@Ann() lval x: <implicit> = <destruct>#.component1()
|
||||
@Ann() lval y: <implicit> = <destruct>#.component2()
|
||||
}
|
||||
|
||||
@@ -14,9 +14,9 @@ FILE: destructuring.kt
|
||||
}
|
||||
public? final? fun foo(some: Some): kotlin/Unit {
|
||||
lval <destruct>: <implicit> = some#
|
||||
lvar x: <implicit> = component1(<destruct>#)
|
||||
lvar y: <implicit> = component2(<destruct>#)
|
||||
lvar z: String = component3(<destruct>#)
|
||||
lvar x: <implicit> = <destruct>#.component1()
|
||||
lvar y: <implicit> = <destruct>#.component2()
|
||||
lvar z: String = <destruct>#.component3()
|
||||
lval <unary>: <implicit> = x#
|
||||
x# = inc#(<unary>#)
|
||||
<unary>#
|
||||
|
||||
@@ -39,8 +39,8 @@ FILE: for.kt
|
||||
lval <iterator>: <implicit> = <range>#.iterator#()
|
||||
while(<iterator>#.hasNext#()) {
|
||||
lval <destruct>: <implicit> = <iterator>#.next#()
|
||||
lval x: <implicit> = component1(<destruct>#)
|
||||
lval y: <implicit> = component2(<destruct>#)
|
||||
lval x: <implicit> = <destruct>#.component1()
|
||||
lval y: <implicit> = <destruct>#.component2()
|
||||
println#(plus#(String(x = ), x#, String( y = ), y#))
|
||||
}
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@ FILE: lambda.kt
|
||||
|
||||
use#(use@fun <implicit>.<anonymous>(<destruct>: <implicit>): <implicit> {
|
||||
^ {
|
||||
lval x: <implicit> = component1(<destruct>#)
|
||||
lval y: <implicit> = component2(<destruct>#)
|
||||
lval x: <implicit> = <destruct>#.component1()
|
||||
lval y: <implicit> = <destruct>#.component2()
|
||||
plus#(x#, y#)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user