From 6a5e5d670a9533c4a727383866eb3a0e0897b5cc Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Fri, 9 Feb 2018 14:57:55 +0100
Subject: [PATCH] support assigning pairlists to function formals

---
 .../com/oracle/truffle/r/engine/RRuntimeASTAccessImpl.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 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 a92e04a362..c4ad3c6e49 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
@@ -251,13 +251,13 @@ class RRuntimeASTAccessImpl implements RRuntimeASTAccess {
             }
             return addAttributes(result, list);
         } else if (repType == RLanguage.RepType.FUNCTION) {
-            RList argsList = (RList) list.getDataAt(1);
+            RAbstractContainer argsList = (RAbstractContainer) list.getDataAt(1);
             RSyntaxNode body = (RSyntaxNode) unwrapToRNode(list.getDataAt(2), false);
             List<Argument<RSyntaxNode>> resArgs = new LinkedList<>();
             RStringVector argsNames = argsList.getNames();
             for (int i = 0; i < argsList.getLength(); i++) {
                 String argName = argsNames == null ? null : argsNames.getDataAt(i);
-                Object argVal = argsList.getDataAt(i);
+                Object argVal = argsList.getDataAtAsObject(i);
                 Argument<RSyntaxNode> arg = RCodeBuilder.argument(RSyntaxNode.LAZY_DEPARSE, argName, argVal == RSymbol.MISSING ? null : (RSyntaxNode) unwrapToRNode(argVal, false));
                 resArgs.add(arg);
             }
-- 
GitLab