Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteEvaluatedTest.java @ 11445:5fbd1ba4a5f3
Truffle-DSL: execute evaluated methods can now be declared using any type in the typesystem as parameters.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Wed, 28 Aug 2013 18:45:32 +0200 |
parents | 79041ab43660 |
children | 2b9fcffd6f36 |
comparison
equal
deleted
inserted
replaced
11444:89febfdb81d2 | 11445:5fbd1ba4a5f3 |
---|---|
24 | 24 |
25 import org.junit.*; | 25 import org.junit.*; |
26 | 26 |
27 import com.oracle.truffle.api.*; | 27 import com.oracle.truffle.api.*; |
28 import com.oracle.truffle.api.dsl.*; | 28 import com.oracle.truffle.api.dsl.*; |
29 import com.oracle.truffle.api.dsl.test.ExecuteEvaluatedTestFactory.DoubleEvaluatedNodeFactory; | 29 import com.oracle.truffle.api.dsl.test.ExecuteEvaluatedTestFactory.*; |
30 import com.oracle.truffle.api.dsl.test.ExecuteEvaluatedTestFactory.EvaluatedNodeFactory; | 30 import com.oracle.truffle.api.dsl.test.TypeSystemTest.*; |
31 import com.oracle.truffle.api.dsl.test.ExecuteEvaluatedTestFactory.UseDoubleEvaluatedNodeFactory; | |
32 import com.oracle.truffle.api.dsl.test.ExecuteEvaluatedTestFactory.UseEvaluatedNodeFactory; | |
33 import com.oracle.truffle.api.dsl.test.TypeSystemTest.ArgumentNode; | |
34 import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestArguments; | |
35 import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; | |
36 import com.oracle.truffle.api.frame.*; | 31 import com.oracle.truffle.api.frame.*; |
37 import com.oracle.truffle.api.nodes.*; | 32 import com.oracle.truffle.api.nodes.*; |
38 | 33 |
39 public class ExecuteEvaluatedTest { | 34 public class ExecuteEvaluatedTest { |
40 | 35 |
102 Assert.assertEquals(exp0 + exp1, exp2); | 97 Assert.assertEquals(exp0 + exp1, exp2); |
103 return exp2; | 98 return exp2; |
104 } | 99 } |
105 } | 100 } |
106 | 101 |
102 @Test | |
103 public void testEvaluatedGeneration() throws UnexpectedResultException { | |
104 TestRootNode<TestEvaluatedGeneration> root = TestHelper.createRoot(TestEvaluatedGenerationFactory.getInstance()); | |
105 | |
106 Assert.assertEquals(42, root.getNode().executeEvaluated1(null, 42)); | |
107 Assert.assertEquals(42, root.getNode().executeEvaluated2(null, 42)); | |
108 Assert.assertEquals(42, root.getNode().executeEvaluated3(null, 42)); | |
109 Assert.assertEquals(42, root.getNode().executeEvaluated4(null, 42)); | |
110 } | |
111 | |
112 @NodeChildren({@NodeChild("exp0")}) | |
113 abstract static class TestEvaluatedGeneration extends ValueNode { | |
114 | |
115 public abstract Object executeEvaluated1(VirtualFrame frame, Object value); | |
116 | |
117 public abstract Object executeEvaluated2(VirtualFrame frame, int value); | |
118 | |
119 public abstract int executeEvaluated3(VirtualFrame frame, Object value) throws UnexpectedResultException; | |
120 | |
121 public abstract int executeEvaluated4(VirtualFrame frame, int value) throws UnexpectedResultException; | |
122 | |
123 @Specialization | |
124 int call(int exp0) { | |
125 return exp0; | |
126 } | |
127 } | |
128 | |
107 } | 129 } |