From 91f0ae0cc9c0ef5b9bfad70d8a2e9e8148b5c7e6 Mon Sep 17 00:00:00 2001
From: Adam Welc <adam.welc@oracle.com>
Date: Tue, 16 Aug 2016 20:13:02 -0700
Subject: [PATCH] Rewritten parameter casts for .cache_class builtin.

---
 .../com/oracle/truffle/r/nodes/builtin/base/CacheClass.java  | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CacheClass.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CacheClass.java
index 9cf229dc33..2d78a5d73a 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CacheClass.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CacheClass.java
@@ -31,6 +31,11 @@ public abstract class CacheClass extends RBuiltinNode {
     @Override
     protected void createCasts(CastBuilder casts) {
         casts.arg("class").defaultError(RError.Message.GENERIC, "invalid class argument to internal .class_cache").mustBe(stringValue()).asStringVector().findFirst();
+        // apparently, "extends" does not have to be a string vector (GNU R will not signal this
+        // error) - but it does not seem to make much sense and it's doubtful if it's worth
+        // supporting since this is internal function
+        casts.arg("extends").defaultError(RError.Message.GENERIC, "invalid extends argument to internal .class_cache").mustBe(stringValue()).asStringVector();
+
     }
 
     @TruffleBoundary
-- 
GitLab