Author: Maciej Fijalkowski <[email protected]>
Branch: 
Changeset: r78642:df782d94c19b
Date: 2015-07-23 22:07 +0200
http://bitbucket.org/pypy/pypy/changeset/df782d94c19b/

Log:    fix union

diff --git a/rpython/rlib/rstring.py b/rpython/rlib/rstring.py
--- a/rpython/rlib/rstring.py
+++ b/rpython/rlib/rstring.py
@@ -684,6 +684,16 @@
     _about_ = UnicodeBuilder
     use_unicode = True
 
+class __extend__(pairtype(SomeStringBuilder, SomeStringBuilder)):
+
+    def union((obj1, obj2)):
+        return obj1
+
+class __extend__(pairtype(SomeUnicodeBuilder, SomeUnicodeBuilder)):
+
+    def union((obj1, obj2)):
+        return obj1
+
 class PrebuiltStringBuilderEntry(ExtRegistryEntry):
     _type_ = StringBuilder
 
diff --git a/rpython/rtyper/test/test_rbuilder.py 
b/rpython/rtyper/test/test_rbuilder.py
--- a/rpython/rtyper/test/test_rbuilder.py
+++ b/rpython/rtyper/test/test_rbuilder.py
@@ -214,3 +214,15 @@
 
         res = self.interpret(f, [])
         assert res == 3
+
+    def test_string_builder_union(self):
+        s = StringBuilder()
+
+        def f(i):
+            if i % 2:
+                s2 = StringBuilder()
+            else:
+                s2 = s
+            return s2.build()
+
+        self.interpret(f, [3])
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to