Assignments to qualified expressions are supported in CF
This commit is contained in:
@@ -187,6 +187,11 @@ public class JetControlFlowProcessor {
|
|||||||
else if (left instanceof JetArrayAccessExpression) {
|
else if (left instanceof JetArrayAccessExpression) {
|
||||||
JetArrayAccessExpression arrayAccessExpression = (JetArrayAccessExpression) left;
|
JetArrayAccessExpression arrayAccessExpression = (JetArrayAccessExpression) left;
|
||||||
visitAssignToArrayAccess(expression, arrayAccessExpression);
|
visitAssignToArrayAccess(expression, arrayAccessExpression);
|
||||||
|
} else if (left instanceof JetQualifiedExpression) {
|
||||||
|
JetQualifiedExpression qualifiedExpression = (JetQualifiedExpression) left;
|
||||||
|
value(qualifiedExpression.getReceiverExpression(), false, false);
|
||||||
|
value(expression.getOperationReference(), false, false);
|
||||||
|
builder.write(expression, left);
|
||||||
} else {
|
} else {
|
||||||
builder.unsupported(expression); // TODO
|
builder.unsupported(expression); // TODO
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ fun assignments() : Unit {
|
|||||||
|
|
||||||
val y = true && false
|
val y = true && false
|
||||||
val z = false && true
|
val z = false && true
|
||||||
|
|
||||||
|
val t = new Test();
|
||||||
|
t.x = 1
|
||||||
}
|
}
|
||||||
---------------------
|
---------------------
|
||||||
l0:
|
l0:
|
||||||
@@ -40,6 +43,12 @@ l4:
|
|||||||
l5:
|
l5:
|
||||||
r(false && true)
|
r(false && true)
|
||||||
w(z)
|
w(z)
|
||||||
|
r(new Test())
|
||||||
|
w(t)
|
||||||
|
r(1)
|
||||||
|
r(t)
|
||||||
|
r(=)
|
||||||
|
w(t.x)
|
||||||
l1:
|
l1:
|
||||||
<END>
|
<END>
|
||||||
error:
|
error:
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
class Test {
|
||||||
|
var x : Int;
|
||||||
|
}
|
||||||
|
|
||||||
fun assignments() : Unit {
|
fun assignments() : Unit {
|
||||||
var x = 1
|
var x = 1
|
||||||
x = 2
|
x = 2
|
||||||
@@ -7,4 +11,7 @@ fun assignments() : Unit {
|
|||||||
|
|
||||||
val y = true && false
|
val y = true && false
|
||||||
val z = false && true
|
val z = false && true
|
||||||
|
|
||||||
|
val t = new Test();
|
||||||
|
t.x = 1
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user