diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQIRWrapperNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQIRWrapperNode.java index 5644e696343ea5ff93c51aa75161ddfcbf5ff9b5..31d954defdac50402052c378ac0a7cb0bdbb36e4 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQIRWrapperNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQIRWrapperNode.java @@ -71,16 +71,16 @@ public final class RQIRWrapperNode extends RSourceSectionNode implements RSyntax @Override public RSyntaxElement[] getSyntaxArgumentDefaults() { - return null; + return new RSyntaxElement[0]; } @Override public RSyntaxElement getSyntaxBody() { - return null; + return this; } @Override public String getSyntaxDebugName() { - return null; + return getSourceSection().getCode(); } } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQueryNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQueryNode.java index fdcc9ab41b1abd3ce04cd6e09d6a1b94a13305f7..2697e2f79f472f4914011975a1bdedc8941b876a 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQueryNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/query/RQueryNode.java @@ -26,14 +26,10 @@ import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.nodes.NodeInfo; import com.oracle.truffle.api.object.DynamicObject; import com.oracle.truffle.api.source.SourceSection; -import com.oracle.truffle.r.runtime.ArgumentsSignature; import com.oracle.truffle.r.runtime.nodes.RSourceSectionNode; -import com.oracle.truffle.r.runtime.nodes.RSyntaxElement; -import com.oracle.truffle.r.runtime.nodes.RSyntaxFunction; -import com.oracle.truffle.r.runtime.nodes.RSyntaxNode; @NodeInfo(shortName = "Query") -public abstract class RQueryNode extends RSourceSectionNode implements RSyntaxNode, RSyntaxFunction { +public abstract class RQueryNode extends RSourceSectionNode { public RQueryNode(final SourceSection src) { super(src); } @@ -42,24 +38,4 @@ public abstract class RQueryNode extends RSourceSectionNode implements RSyntaxNo public final DynamicObject execute(final VirtualFrame frame) { throw new RuntimeException("We should not execute a RQueryNode directly."); } - - @Override - public ArgumentsSignature getSyntaxSignature() { - return null; - } - - @Override - public RSyntaxElement[] getSyntaxArgumentDefaults() { - return null; - } - - @Override - public RSyntaxElement getSyntaxBody() { - return null; - } - - @Override - public String getSyntaxDebugName() { - return null; - } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RCodeBuilder.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RCodeBuilder.java index 968444aeb98030261b27e368066ad0f0004269bd..0c7f9944842b3ff05069568bfb4162f5007faf52 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RCodeBuilder.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RCodeBuilder.java @@ -200,6 +200,8 @@ public interface RCodeBuilder<T> { @Override protected T visit(RSyntaxFunction element) { + if (element.getSyntaxBody() == element) + return (T) element; ArrayList<Argument<T>> params = createArguments(element.getSyntaxSignature(), element.getSyntaxArgumentDefaults()); return function(element.getLazySourceSection(), params, accept(element.getSyntaxBody()), element.getSyntaxDebugName()); }