From 10bd8ae49b9c9a00b88314ced153757c68954207 Mon Sep 17 00:00:00 2001
From: stepan <stepan.sindelar@oracle.com>
Date: Tue, 8 Aug 2017 11:36:58 +0200
Subject: [PATCH] Fix: use lookup node for REngine#eval instead of
 ReadVariableNode

---
 .../truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java       | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java
index 7c50bb2d2d..384967e805 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java
@@ -47,7 +47,6 @@ import com.oracle.truffle.r.ffi.impl.nodes.FFIUpCallRootNode;
 import com.oracle.truffle.r.ffi.impl.upcalls.RFFIUpCallTable;
 import com.oracle.truffle.r.ffi.impl.upcalls.UpCallsRFFI;
 import com.oracle.truffle.r.nodes.RASTUtils;
-import com.oracle.truffle.r.nodes.access.variables.ReadVariableNode;
 import com.oracle.truffle.r.nodes.function.ClassHierarchyNode;
 import com.oracle.truffle.r.runtime.ArgumentsSignature;
 import com.oracle.truffle.r.runtime.RArguments;
@@ -839,8 +838,8 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
                                 argsList.getDataNonShared());
             }
         } else if (expr instanceof RSymbol) {
-            ReadVariableNode rvn = ReadVariableNode.create(((RSymbol) expr).getName());
-            result = RContext.getEngine().eval(RDataFactory.createLanguage(rvn), (REnvironment) env, RCaller.topLevel);
+            RSyntaxNode lookup = RContext.getASTBuilder().lookup(RSyntaxNode.LAZY_DEPARSE, ((RSymbol) expr).getName(), false);
+            result = RContext.getEngine().eval(RDataFactory.createLanguage(lookup.asRNode()), (REnvironment) env, RCaller.topLevel);
         } else {
             // just return value
             result = expr;
-- 
GitLab