From 083c5ea4b2f4dcfe5f94495fed1cdeebcf8eccee Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Wed, 9 Nov 2016 14:47:25 +0100
Subject: [PATCH] provide better source sections in various places

---
 .../src/com/oracle/truffle/r/engine/RRuntimeASTAccessImpl.java | 2 +-
 .../src/com/oracle/truffle/r/nodes/control/BreakNode.java      | 3 ++-
 .../src/com/oracle/truffle/r/runtime/RDeparse.java             | 2 +-
 .../src/com/oracle/truffle/r/runtime/nodes/RSyntaxLookup.java  | 3 +--
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/RRuntimeASTAccessImpl.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/RRuntimeASTAccessImpl.java
index e35e7bff99..60b6a08902 100644
--- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/RRuntimeASTAccessImpl.java
+++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/RRuntimeASTAccessImpl.java
@@ -186,7 +186,7 @@ class RRuntimeASTAccessImpl implements RRuntimeASTAccess {
             } else {
                 result = call.getSyntaxArguments()[index - 1];
                 if (result == null) {
-                    result = RSyntaxLookup.createDummyLookup(null, "", false);
+                    result = RSyntaxLookup.createDummyLookup(RSyntaxNode.LAZY_DEPARSE, "", false);
                 }
             }
         } else if (s instanceof RSyntaxFunction) {
diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/BreakNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/BreakNode.java
index fc8bfd04c6..c7053bbd4e 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/BreakNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/control/BreakNode.java
@@ -27,12 +27,13 @@ import com.oracle.truffle.api.source.SourceSection;
 import com.oracle.truffle.r.nodes.function.visibility.SetVisibilityNode;
 import com.oracle.truffle.r.runtime.ArgumentsSignature;
 import com.oracle.truffle.r.runtime.nodes.RSyntaxElement;
+import com.oracle.truffle.r.runtime.nodes.RSyntaxLookup;
 
 public final class BreakNode extends OperatorNode {
 
     @Child private SetVisibilityNode visibility = SetVisibilityNode.create();
 
-    public BreakNode(SourceSection src, RSyntaxElement operator) {
+    public BreakNode(SourceSection src, RSyntaxLookup operator) {
         super(src, operator);
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RDeparse.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RDeparse.java
index b1129553c4..17ab018095 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RDeparse.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RDeparse.java
@@ -772,7 +772,7 @@ public class RDeparse {
         private static RSyntaxElement wrap(Object v, boolean isCallLHS) {
             Object value = RRuntime.asAbstractVector(v);
             if (value instanceof RSymbol) {
-                return RSyntaxLookup.createDummyLookup(null, ((RSymbol) value).getName(), isCallLHS);
+                return RSyntaxLookup.createDummyLookup(RSyntaxNode.INTERNAL, ((RSymbol) value).getName(), isCallLHS);
             } else if (value instanceof RLanguage) {
                 return ((RLanguage) value).getRep().asRSyntaxNode();
             } else if (value instanceof RPairList) {
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RSyntaxLookup.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RSyntaxLookup.java
index d3c0626c40..eb5d2c888e 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RSyntaxLookup.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nodes/RSyntaxLookup.java
@@ -41,8 +41,7 @@ public interface RSyntaxLookup extends RSyntaxElement {
      * characters of the original source section (if non-null) will be used as the new source
      * section.
      */
-    static RSyntaxLookup createDummyLookup(SourceSection originalSource, String identifier, boolean isFunctionLookup) {
-        SourceSection source = originalSource == null || originalSource.getCharEndIndex() == 0 ? null : originalSource.getSource().createSection(originalSource.getCharIndex(), 1);
+    static RSyntaxLookup createDummyLookup(SourceSection source, String identifier, boolean isFunctionLookup) {
         return new RSyntaxLookup() {
             @Override
             public SourceSection getLazySourceSection() {
-- 
GitLab