From bb2d1fdce87b427df79bc0a88e69594252538fc0 Mon Sep 17 00:00:00 2001
From: stepan <stepan.sindelar@oracle.com>
Date: Wed, 13 Dec 2017 14:23:11 +0100
Subject: [PATCH] Recognize '**' as alias for '^'

---
 .../com/oracle/truffle/r/runtime/ops/BinaryArithmetic.java    | 2 +-
 .../src/com/oracle/truffle/r/test/ExpectedTestOutput.test     | 4 ++++
 .../truffle/r/test/library/base/TestSimpleArithmetic.java     | 1 +
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ops/BinaryArithmetic.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ops/BinaryArithmetic.java
index b7883f3806..d81c83297e 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ops/BinaryArithmetic.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ops/BinaryArithmetic.java
@@ -68,7 +68,7 @@ public abstract class BinaryArithmetic extends Operation {
     public static class MultiplyBuiltin {
     }
 
-    @RBuiltin(name = "^", kind = PRIMITIVE, parameterNames = {"", ""}, alwaysSplit = true, dispatch = OPS_GROUP_GENERIC, behavior = PURE_ARITHMETIC)
+    @RBuiltin(name = "^", aliases = "**", kind = PRIMITIVE, parameterNames = {"", ""}, alwaysSplit = true, dispatch = OPS_GROUP_GENERIC, behavior = PURE_ARITHMETIC)
     public static class PowBuiltin {
     }
 
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 7ef462cd65..68c0f9b81b 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
@@ -85980,6 +85980,10 @@ Error in x + y : non-conformable arrays
 #{ x <- 1:2 ; dim(x) <- 1:2 ; y <- 2:3 ; dim(y) <- c(1,1,2) ; x + y }
 Error in x + y : non-conformable arrays
 
+##com.oracle.truffle.r.test.library.base.TestSimpleArithmetic.testVectorsOperations#
+#3 ** 4
+[1] 81
+
 ##com.oracle.truffle.r.test.library.base.TestSimpleArithmetic.testVectorsOperations#
 #{ -2:2 / 0:0 }
 [1] -Inf -Inf  NaN  Inf  Inf
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleArithmetic.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleArithmetic.java
index be6e824235..5f458da3df 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleArithmetic.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleArithmetic.java
@@ -288,6 +288,7 @@ public class TestSimpleArithmetic extends TestBase {
         assertEval("{ c(1,3) / c(2,4) }");
         assertEval("{ 1:1 / 0:0 }");
         assertEval("{ -2:2 / 0:0 }");
+        assertEval("3 ** 4");
     }
 
     @Test
-- 
GitLab