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