changeset 18794:e688e42b41e3

Truffle: LoopNode: child field type can be RepeatingNode now
author Andreas Woess <andreas.woess@jku.at>
date Mon, 05 Jan 2015 19:01:01 +0100
parents 7bb1abca2c0d
children e9cbe1618733
files graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RepeatingNode.java
diffstat 2 files changed, 4 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java	Wed Jan 07 13:40:01 2015 +0100
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java	Mon Jan 05 19:01:01 2015 +0100
@@ -31,13 +31,10 @@
  */
 public abstract class LoopNode extends Node {
 
-    /*
-     * TODO Unfortunately we cannot yet use interface typed fields as child fields.
-     */
-    @Child protected Node repeatingNode;
+    @Child protected RepeatingNode repeatingNode;
 
     public LoopNode(RepeatingNode repeatingNode) {
-        this.repeatingNode = (Node) repeatingNode;
+        this.repeatingNode = repeatingNode;
     }
 
     public abstract void executeLoop(VirtualFrame frame);
@@ -47,7 +44,7 @@
     }
 
     public final RepeatingNode getRepeatingNode() {
-        return (RepeatingNode) repeatingNode;
+        return repeatingNode;
     }
 
 }
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RepeatingNode.java	Wed Jan 07 13:40:01 2015 +0100
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RepeatingNode.java	Mon Jan 05 19:01:01 2015 +0100
@@ -29,7 +29,7 @@
 /**
  * Experimental API: may change significantly without notice.
  */
-public interface RepeatingNode {
+public interface RepeatingNode extends NodeInterface {
 
     boolean executeRepeating(VirtualFrame frame);