comparison graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ReplaceTest.java @ 14628:a08b8694f556

Truffle: Node API changes deprecate adoptChild, no longer needed in constructor add Node#insert for inserting new nodes into the tree (previously adoptChild) add Node#adoptChildren() helper method that adopts all (direct and indirect) children of a node, automatically called in TruffleRuntime#createCallTarget
author Andreas Woess <andreas.woess@jku.at>
date Wed, 19 Mar 2014 23:11:46 +0100
parents df1d665ca846
children 1cde96b96673
comparison
equal deleted inserted replaced
14627:46c020971d9c 14628:a08b8694f556
57 public void test() { 57 public void test() {
58 TruffleRuntime runtime = Truffle.getRuntime(); 58 TruffleRuntime runtime = Truffle.getRuntime();
59 UnresolvedNode leftChild = new UnresolvedNode("20"); 59 UnresolvedNode leftChild = new UnresolvedNode("20");
60 UnresolvedNode rightChild = new UnresolvedNode("22"); 60 UnresolvedNode rightChild = new UnresolvedNode("22");
61 TestRootNode rootNode = new TestRootNode(new ValueNode[]{leftChild, rightChild}); 61 TestRootNode rootNode = new TestRootNode(new ValueNode[]{leftChild, rightChild});
62 CallTarget target = runtime.createCallTarget(rootNode);
62 assertEquals(rootNode, leftChild.getParent()); 63 assertEquals(rootNode, leftChild.getParent());
63 assertEquals(rootNode, rightChild.getParent()); 64 assertEquals(rootNode, rightChild.getParent());
64 Iterator<Node> iterator = rootNode.getChildren().iterator(); 65 Iterator<Node> iterator = rootNode.getChildren().iterator();
65 Assert.assertEquals(leftChild, iterator.next()); 66 Assert.assertEquals(leftChild, iterator.next());
66 Assert.assertEquals(rightChild, iterator.next()); 67 Assert.assertEquals(rightChild, iterator.next());
67 Assert.assertFalse(iterator.hasNext()); 68 Assert.assertFalse(iterator.hasNext());
68 CallTarget target = runtime.createCallTarget(rootNode);
69 Object result = target.call(); 69 Object result = target.call();
70 assertEquals(42, result); 70 assertEquals(42, result);
71 assertEquals(42, target.call()); 71 assertEquals(42, target.call());
72 iterator = rootNode.getChildren().iterator(); 72 iterator = rootNode.getChildren().iterator();
73 Assert.assertEquals(ResolvedNode.class, iterator.next().getClass()); 73 Assert.assertEquals(ResolvedNode.class, iterator.next().getClass());
83 83
84 @Children private final ValueNode[] children; 84 @Children private final ValueNode[] children;
85 85
86 public TestRootNode(ValueNode[] children) { 86 public TestRootNode(ValueNode[] children) {
87 super(null); 87 super(null);
88 this.children = adoptChildren(children); 88 this.children = children;
89 } 89 }
90 90
91 @Override 91 @Override
92 public Object execute(VirtualFrame frame) { 92 public Object execute(VirtualFrame frame) {
93 int sum = 0; 93 int sum = 0;