From 2c2de34de689b67b6402b5cf5e26de8092ce583f Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Tue, 28 Nov 2017 17:13:17 +0100
Subject: [PATCH] fix overly conservative assertion in BinaryMapNode

---
 .../com/oracle/truffle/r/nodes/primitive/BinaryMapNode.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/primitive/BinaryMapNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/primitive/BinaryMapNode.java
index 51200dd1cf..501e831a8f 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/primitive/BinaryMapNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/primitive/BinaryMapNode.java
@@ -496,7 +496,7 @@ abstract class VectorMapBinaryInternalNode extends RBaseNode {
                     @Cached("createCountingProfile()") LoopConditionProfile leftProfile,
                     @Cached("createCountingProfile()") LoopConditionProfile rightProfile,
                     @Cached("createBinaryProfile()") ConditionProfile smallRemainderProfile) {
-        assert result != right;
+        assert result != right || rightLength == leftLength;
         leftProfile.profileCounted(leftLength);
         rightProfile.profileCounted(rightLength);
         while (leftProfile.inject(leftIter.getIndex() + 1 < leftLength)) {
@@ -527,7 +527,7 @@ abstract class VectorMapBinaryInternalNode extends RBaseNode {
                     @Cached("createCountingProfile()") LoopConditionProfile leftProfile,
                     @Cached("createCountingProfile()") LoopConditionProfile rightProfile,
                     @Cached("createBinaryProfile()") ConditionProfile smallRemainderProfile) {
-        assert result != left;
+        assert result != left || rightLength == leftLength;
         leftProfile.profileCounted(leftLength);
         rightProfile.profileCounted(rightLength);
         while (rightProfile.inject(rightIter.getIndex() + 1 < rightLength)) {
-- 
GitLab