[pypy-commit] pypy default: fix union
fijal
noreply at buildbot.pypy.org
Thu Jul 23 22:06:53 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
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])
More information about the pypy-commit
mailing list