Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.api.codegen.test/src/com/oracle/truffle/api/codegen/test/ExecuteEvaluatedTest.java @ 9229:76a6e7907b67
Minor cleanup.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 22 Apr 2013 16:39:47 +0200 |
parents | 5f7f0d3e3638 |
children | 8e3a1635cc9e |
comparison
equal
deleted
inserted
replaced
9228:bc82cde765b9 | 9229:76a6e7907b67 |
---|---|
24 | 24 |
25 import com.oracle.truffle.api.*; | 25 import com.oracle.truffle.api.*; |
26 import com.oracle.truffle.api.codegen.*; | 26 import com.oracle.truffle.api.codegen.*; |
27 import com.oracle.truffle.api.codegen.test.TypeSystemTest.ValueNode; | 27 import com.oracle.truffle.api.codegen.test.TypeSystemTest.ValueNode; |
28 import com.oracle.truffle.api.frame.*; | 28 import com.oracle.truffle.api.frame.*; |
29 import com.oracle.truffle.api.nodes.*; | |
30 | 29 |
31 public class ExecuteEvaluatedTest { | 30 public class ExecuteEvaluatedTest { |
32 | 31 |
33 public abstract static class ExtValueNode extends ValueNode { | |
34 | |
35 public CallTarget executeCallTarget(VirtualFrame frame) throws UnexpectedResultException { | |
36 return SimpleTypesGen.SIMPLETYPES.expectCallTarget(execute(frame)); | |
37 } | |
38 | |
39 } | |
40 | |
41 /* Represents target[element] */ | 32 /* Represents target[element] */ |
42 @NodeChildren({@NodeChild("targetNode"), @NodeChild("elementNode")}) | 33 @NodeChildren({@NodeChild("target"), @NodeChild("element")}) |
43 abstract static class ReadElementNode extends ExtValueNode { | 34 abstract static class ReadElementNode extends ValueNode { |
44 | 35 |
45 @Specialization | 36 @Specialization |
46 int getInt(Object[] target, int element) { | 37 int getInt(Object[] target, int element) { |
47 return (int) target[element]; | 38 return (int) target[element]; |
48 } | 39 } |
49 | 40 |
50 public abstract Object executeWith(VirtualFrame frame, Object targetValue); | 41 public abstract Object executeWith(VirtualFrame frame, Object targetValue); |
51 } | 42 } |
52 | 43 |
53 /* Represents target[element]() */ | 44 /* Represents target[element]() */ |
54 @NodeChildren({@NodeChild("targetNode"), @NodeChild(value = "elementNode", type = ReadElementNode.class, executeWith = "targetNode")}) | 45 @NodeChildren({@NodeChild("target"), @NodeChild(value = "element", type = ReadElementNode.class, executeWith = "target")}) |
55 abstract static class ElementCallNode extends ExtValueNode { | 46 abstract static class ElementCallNode extends ValueNode { |
56 | 47 |
57 @Specialization | 48 @Specialization |
58 Object call(Object receiver, CallTarget callTarget) { | 49 Object call(Object receiver, Object callTarget) { |
59 return callTarget.call(new TestArguments(receiver)); | 50 return ((CallTarget) callTarget).call(new TestArguments(receiver)); |
60 } | 51 } |
61 | 52 |
62 } | 53 } |
63 | 54 |
64 public static class TestArguments extends Arguments { | 55 public static class TestArguments extends Arguments { |