comparison graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FrameTest.java @ 9258:07f8d136a05e

Truffle API changes for the Frame API. Introduction of Assumptions class.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 23 Apr 2013 15:34:06 +0200
parents f07cafa29db1
children cd1a1d92b3e3
comparison
equal deleted inserted replaced
9257:542712a4732a 9258:07f8d136a05e
62 62
63 @Test 63 @Test
64 public void test() { 64 public void test() {
65 TruffleRuntime runtime = Truffle.getRuntime(); 65 TruffleRuntime runtime = Truffle.getRuntime();
66 FrameDescriptor frameDescriptor = new FrameDescriptor(); 66 FrameDescriptor frameDescriptor = new FrameDescriptor();
67 FrameSlot slot = frameDescriptor.addFrameSlot("localVar", Integer.class); 67 FrameSlot slot = frameDescriptor.addFrameSlot("localVar", int.class);
68 TestRootNode rootNode = new TestRootNode(new AssignLocal(slot), new ReadLocal(slot)); 68 TestRootNode rootNode = new TestRootNode(new AssignLocal(slot), new ReadLocal(slot));
69 CallTarget target = runtime.createCallTarget(rootNode, frameDescriptor); 69 CallTarget target = runtime.createCallTarget(rootNode, frameDescriptor);
70 Object result = target.call(); 70 Object result = target.call();
71 Assert.assertEquals(42, result); 71 Assert.assertEquals(42, result);
72 } 72 }
107 super(slot); 107 super(slot);
108 } 108 }
109 109
110 @Override 110 @Override
111 int execute(VirtualFrame frame) { 111 int execute(VirtualFrame frame) {
112 frame.setInt(slot, 42); 112 try {
113 frame.setInt(slot, 42);
114 } catch (FrameSlotTypeException e) {
115 throw new IllegalStateException(e);
116 }
113 return 0; 117 return 0;
114 } 118 }
115 } 119 }
116 120
117 class ReadLocal extends FrameSlotNode { 121 class ReadLocal extends FrameSlotNode {
120 super(slot); 124 super(slot);
121 } 125 }
122 126
123 @Override 127 @Override
124 int execute(VirtualFrame frame) { 128 int execute(VirtualFrame frame) {
125 return frame.getInt(slot); 129 try {
130 return frame.getInt(slot);
131 } catch (FrameSlotTypeException e) {
132 throw new IllegalStateException(e);
133 }
126 } 134 }
127 } 135 }
128 } 136 }