diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallBaseNodeWrapperFactory.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallBaseNodeWrapperFactory.java index 70d38d3f2926de903d95478bf63be2b43ed43aae..8bb9c406adcb49b193584313a8100758349bc011 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallBaseNodeWrapperFactory.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallBaseNodeWrapperFactory.java @@ -28,6 +28,7 @@ import com.oracle.truffle.api.instrumentation.ProbeNode; import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.NodeCost; import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.r.runtime.nodes.RSyntaxNode; public class RCallBaseNodeWrapperFactory implements InstrumentableFactory<RCallBaseNode> { @@ -96,6 +97,11 @@ public class RCallBaseNodeWrapperFactory implements InstrumentableFactory<RCallB public RSyntaxNode getRSyntaxNode() { return delegate.asRSyntaxNode(); } + + @Override + public SourceSection getSourceSection() { + return delegate.getSourceSection(); + } } @Override diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/WrapArgumentBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/WrapArgumentBaseNode.java index a86dd95a42ace8bde644958eb8ce6ae1289d1681..6822dd5e8a72b9c0f29adaf4f1bdb9e0adc94dae 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/WrapArgumentBaseNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/WrapArgumentBaseNode.java @@ -24,6 +24,7 @@ package com.oracle.truffle.r.nodes.function; import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.profiles.ConditionProfile; +import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.data.RSharingAttributeStorage; import com.oracle.truffle.r.runtime.nodes.RNode; @@ -42,7 +43,7 @@ public abstract class WrapArgumentBaseNode extends RNode { this.operand = operand; } - public RNode getOperand() { + public final RNode getOperand() { return operand; } @@ -76,6 +77,11 @@ public abstract class WrapArgumentBaseNode extends RNode { @Override public RSyntaxNode getRSyntaxNode() { - return getOperand().asRSyntaxNode(); + return operand == null ? null : operand.asRSyntaxNode(); + } + + @Override + public SourceSection getSourceSection() { + return operand == null ? null : operand.getSourceSection(); } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/instrumentation/RNodeWrapperFactory.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/instrumentation/RNodeWrapperFactory.java index b385fc6fe9e9e4f4e5d4c02a47eafeed9e53ae18..de50cdebb746e6df003362d6becab0266bca2c69 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/instrumentation/RNodeWrapperFactory.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/instrumentation/RNodeWrapperFactory.java @@ -28,6 +28,7 @@ import com.oracle.truffle.api.instrumentation.ProbeNode; import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.NodeCost; import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.r.runtime.nodes.RNode; import com.oracle.truffle.r.runtime.nodes.RSyntaxNode; @@ -97,6 +98,11 @@ public final class RNodeWrapperFactory implements InstrumentableFactory<RNode> { public RSyntaxNode getRSyntaxNode() { return delegate.asRSyntaxNode(); } + + @Override + public SourceSection getSourceSection() { + return delegate.getSourceSection(); + } } @Override