[pypy-commit] pypy fix-strbuf: (fijal, arigo)
arigo
noreply at buildbot.pypy.org
Sun Jul 26 14:32:37 CEST 2015
Author: Armin Rigo <arigo at tunes.org>
Branch: fix-strbuf
Changeset: r78668:b21a6e8e8f70
Date: 2015-07-26 14:32 +0200
http://bitbucket.org/pypy/pypy/changeset/b21a6e8e8f70/
Log: (fijal, arigo)
Argh, bug and fix
diff --git a/rpython/rlib/rstring.py b/rpython/rlib/rstring.py
--- a/rpython/rlib/rstring.py
+++ b/rpython/rlib/rstring.py
@@ -687,12 +687,12 @@
class __extend__(pairtype(SomeStringBuilder, SomeStringBuilder)):
def union((obj1, obj2)):
- return obj1
+ return SomeStringBuilder()
class __extend__(pairtype(SomeUnicodeBuilder, SomeUnicodeBuilder)):
def union((obj1, obj2)):
- return obj1
+ return SomeUnicodeBuilder()
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
@@ -217,12 +217,17 @@
def test_string_builder_union(self):
s = StringBuilder()
+ s.append('foo')
def f(i):
if i % 2:
s2 = StringBuilder()
+ s2.append('x')
else:
s2 = s
- return s2.build()
+ return len(s2.build())
- self.interpret(f, [3])
+ res = self.interpret(f, [33])
+ assert res == 1
+ res = self.interpret(f, [34])
+ assert res == 3
More information about the pypy-commit
mailing list