Skip to content
Snippets Groups Projects
Commit ee8f6092 authored by Lukas Stadler's avatar Lukas Stadler
Browse files

more careful with "null" source sections: wrappers need to return their delegate's source sections

parent 0e813b8a
Branches
No related tags found
No related merge requests found
...@@ -28,6 +28,7 @@ import com.oracle.truffle.api.instrumentation.ProbeNode; ...@@ -28,6 +28,7 @@ import com.oracle.truffle.api.instrumentation.ProbeNode;
import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost; import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.nodes.NodeInfo; import com.oracle.truffle.api.nodes.NodeInfo;
import com.oracle.truffle.api.source.SourceSection;
import com.oracle.truffle.r.runtime.nodes.RSyntaxNode; import com.oracle.truffle.r.runtime.nodes.RSyntaxNode;
public class RCallBaseNodeWrapperFactory implements InstrumentableFactory<RCallBaseNode> { public class RCallBaseNodeWrapperFactory implements InstrumentableFactory<RCallBaseNode> {
...@@ -96,6 +97,11 @@ public class RCallBaseNodeWrapperFactory implements InstrumentableFactory<RCallB ...@@ -96,6 +97,11 @@ public class RCallBaseNodeWrapperFactory implements InstrumentableFactory<RCallB
public RSyntaxNode getRSyntaxNode() { public RSyntaxNode getRSyntaxNode() {
return delegate.asRSyntaxNode(); return delegate.asRSyntaxNode();
} }
@Override
public SourceSection getSourceSection() {
return delegate.getSourceSection();
}
} }
@Override @Override
......
...@@ -24,6 +24,7 @@ package com.oracle.truffle.r.nodes.function; ...@@ -24,6 +24,7 @@ package com.oracle.truffle.r.nodes.function;
import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.profiles.ConditionProfile; 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.RInternalError;
import com.oracle.truffle.r.runtime.data.RSharingAttributeStorage; import com.oracle.truffle.r.runtime.data.RSharingAttributeStorage;
import com.oracle.truffle.r.runtime.nodes.RNode; import com.oracle.truffle.r.runtime.nodes.RNode;
...@@ -42,7 +43,7 @@ public abstract class WrapArgumentBaseNode extends RNode { ...@@ -42,7 +43,7 @@ public abstract class WrapArgumentBaseNode extends RNode {
this.operand = operand; this.operand = operand;
} }
public RNode getOperand() { public final RNode getOperand() {
return operand; return operand;
} }
...@@ -76,6 +77,11 @@ public abstract class WrapArgumentBaseNode extends RNode { ...@@ -76,6 +77,11 @@ public abstract class WrapArgumentBaseNode extends RNode {
@Override @Override
public RSyntaxNode getRSyntaxNode() { public RSyntaxNode getRSyntaxNode() {
return getOperand().asRSyntaxNode(); return operand == null ? null : operand.asRSyntaxNode();
}
@Override
public SourceSection getSourceSection() {
return operand == null ? null : operand.getSourceSection();
} }
} }
...@@ -28,6 +28,7 @@ import com.oracle.truffle.api.instrumentation.ProbeNode; ...@@ -28,6 +28,7 @@ import com.oracle.truffle.api.instrumentation.ProbeNode;
import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost; import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.nodes.NodeInfo; 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.RNode;
import com.oracle.truffle.r.runtime.nodes.RSyntaxNode; import com.oracle.truffle.r.runtime.nodes.RSyntaxNode;
...@@ -97,6 +98,11 @@ public final class RNodeWrapperFactory implements InstrumentableFactory<RNode> { ...@@ -97,6 +98,11 @@ public final class RNodeWrapperFactory implements InstrumentableFactory<RNode> {
public RSyntaxNode getRSyntaxNode() { public RSyntaxNode getRSyntaxNode() {
return delegate.asRSyntaxNode(); return delegate.asRSyntaxNode();
} }
@Override
public SourceSection getSourceSection() {
return delegate.getSourceSection();
}
} }
@Override @Override
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment