diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Bind.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Bind.java index 4f6dba39bcf6f755e02e3d4248270f4fedd84b60..acc4e16ed1125299c906d41728949def4943c29e 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Bind.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Bind.java @@ -585,7 +585,12 @@ public abstract class Bind extends RBaseNode { CompilerDirectives.transferToInterpreterAndInvalidate(); bind = insert(BindNodeGen.create(type)); } - return bind.execute(frame, deparseLevel, args.getArguments(), (RArgsValuesAndNames) RArguments.getArgument(frame, 0), precedence(args.getArguments())); + Object firstArg = RArguments.getArgument(frame, 0); + RArgsValuesAndNames promisedArgs = args; + if (firstArg instanceof RArgsValuesAndNames) { + promisedArgs = (RArgsValuesAndNames) firstArg; + } + return bind.execute(frame, deparseLevel, args.getArguments(), promisedArgs, precedence(args.getArguments())); } } 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 322f7f2982969487d5eef7207afc71be99a48059..4a91d4b30caaa431b89e5fdc7ad587b97fcbfb05 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 @@ -13334,6 +13334,17 @@ structure(integer(0), .Dim = c(0L, 3L), .Dimnames = list(NULL, 5th break 1201 1466 6th break 1467 1600 +##com.oracle.truffle.r.test.builtins.TestBuiltin_cbind.testcbind6# +#cbind2(3, 4) + [,1] [,2] +[1,] 3 4 + +##com.oracle.truffle.r.test.builtins.TestBuiltin_cbind.testcbind6# +#cbind2(matrix(1:10, 2, 2), matrix(11:20, 2, 2)) + [,1] [,2] [,3] [,4] +[1,] 1 3 11 13 +[2,] 2 4 12 14 + ##com.oracle.truffle.r.test.builtins.TestBuiltin_ceiling.testCeiling# #{ ceiling(c(0.2,-3.4,NA,0/0,1/0)) } [1] 1 -3 NA NaN Inf diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_cbind.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_cbind.java index cccb74db2a90c019cccf53a714362371e920a6e4..d675297dfde60ea95f8c542ac019a3b20c5f6fd6 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_cbind.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_cbind.java @@ -49,6 +49,12 @@ public class TestBuiltin_cbind extends TestBase { "do.call('cbind', argv)"); } + @Test + public void testcbind6() { + assertEval("cbind2(3, 4)"); + assertEval("cbind2(matrix(1:10, 2, 2), matrix(11:20, 2, 2))"); + } + @Test public void testCbind() { assertEval("{ cbind() }");