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 {