提交 1816ff7c 编写于 作者: D Dmitry Jemerov

StackValue.Property also needs to implement dupReceiver()

上级 6e1d79e5
......@@ -427,5 +427,17 @@ public abstract class StackValue {
v.visitMethodInsn(isStatic ? Opcodes.INVOKESTATIC : isInterface ? Opcodes.INVOKEINTERFACE : Opcodes.INVOKEVIRTUAL, owner, setter.getName(), setter.getDescriptor());
}
}
@Override
public void dupReceiver(InstructionAdapter v, int below) {
if (!isStatic) {
if (below == 1) {
v.dupX1();
}
else {
v.dup();
}
}
}
}
}
class Slot() {
var vitality: Int = 10000
fun increaseVitality(delta: Int) {
vitality += delta
if (vitality > 65535) vitality = 65535;
}
}
fun box(): String {
val s = Slot()
s.increaseVitality(1000)
return if (s.vitality == 11000) "OK" else "fail"
}
......@@ -414,4 +414,8 @@ public class NamespaceGenTest extends CodegenTestCase {
final Method main = generateFunction();
main.invoke(null); // must not fail
}
public void testIncrementProperty() throws Exception {
blackBoxFile("incrementProperty.jet");
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册