From d279bcff8a18c2153557c2e83cd397f266b5199d Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Thu, 16 Mar 2017 14:30:04 +1100
Subject: [PATCH] py/objstr: Fix eager optimisation of str/bytes addition.

The RHS can only be returned if it is the same type as the LHS.
---
 py/objstr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/py/objstr.c b/py/objstr.c
index 17d06f88e..2331004a5 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -354,7 +354,7 @@ mp_obj_t mp_obj_str_binary_op(mp_uint_t op, mp_obj_t lhs_in, mp_obj_t rhs_in) {
     switch (op) {
         case MP_BINARY_OP_ADD:
         case MP_BINARY_OP_INPLACE_ADD: {
-            if (lhs_len == 0) {
+            if (lhs_len == 0 && mp_obj_get_type(rhs_in) == lhs_type) {
                 return rhs_in;
             }
             if (rhs_len == 0) {
-- 
GitLab