From bc32db0c5639ef999a8c11ff59c9dce9ed35a1f4 Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Fri, 18 Aug 2017 17:08:21 +0200
Subject: [PATCH] promises cannot contain active bindings

---
 .../truffle/r/nodes/access/variables/ReadVariableNode.java     | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java
index 7fe705bfcb..0eab69dc38 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java
@@ -260,8 +260,7 @@ public final class ReadVariableNode extends RBaseNode {
                 promiseHelper = insert(new PromiseHelperNode());
             }
             result = promiseHelper.evaluate(frame, (RPromise) result);
-        }
-        if (isActiveBindingProfile.profile(ActiveBinding.isActiveBinding(result))) {
+        } else if (isActiveBindingProfile.profile(ActiveBinding.isActiveBinding(result))) {
             Object readValue = ((ActiveBinding) result).readValue();
             if (readValue == RMissing.instance) {
                 throw error(mode == RType.Function ? RError.Message.UNKNOWN_FUNCTION : RError.Message.UNKNOWN_OBJECT, identifier);
-- 
GitLab