diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Repeat.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Repeat.java index 83f22bc1cda9ac45a2c3e828750a9722a7d436f2..2f2187d7e1176349bdf376577096eabc8d2a5a4f 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Repeat.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Repeat.java @@ -115,7 +115,9 @@ public abstract class Repeat extends RBuiltinNode.Arg2 { RError.Message.FIRST_ELEMENT_USED, "each").findFirst(1, RError.Message.FIRST_ELEMENT_USED, "each").replaceNA(1).mustBe(gte(0)); - ArgumentsSignature signature = ArgumentsSignature.get("times", "length.out", "each"); + // "..." in signature ensures that the matcher will not report additional arguments which + // are also ignored by GNUR + ArgumentsSignature signature = ArgumentsSignature.get("times", "length.out", "each", "..."); ARG_IDX_TIMES = 0; ARG_IDX_LENGHT_OUT = 1; ARG_IDX_EACH = 2; diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test index e523da3a8135bed4770db3cb3538d013c8be3b5b..7ef462cd656cd18132ad44000628f3c29506e0c3 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test @@ -51308,6 +51308,11 @@ attr(,"useBytes") #argv <- structure(list(x = c('A', 'B', 'C'), m = structure(c(1L, -1L, 1L), match.length = c(1L, -1L, 1L), useBytes = TRUE), value = c('A', 'C')), .Names = c('x', 'm', 'value'));do.call('regmatches<-', argv) [1] "A" "B" "C" +##com.oracle.truffle.r.test.builtins.TestBuiltin_rep.testRep# +#rep(' ', 20L, collapse = ' ') + [1] " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " +[20] " " + ##com.oracle.truffle.r.test.builtins.TestBuiltin_rep.testRep# #rep(x<-42) [1] 42 diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_rep.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_rep.java index 0d31bcabae80de7fd0b243076eaccd85b213046e..01f86871e8cad4e923c8c993ea1f46017d932923 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_rep.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_rep.java @@ -239,5 +239,7 @@ public class TestBuiltin_rep extends TestBase { assertEval("{ rep(paste0('hello', 1:10), 10) }"); assertEval("{ rep(paste0('hello', 1:10), 1:10) }"); + + assertEval("rep(' ', 20L, collapse = ' ')"); } }