[pypy-svn] r76112 - pypy/branch/fast-forward/pypy/rlib
benjamin at codespeak.net
benjamin at codespeak.net
Sun Jul 11 23:43:02 CEST 2010
Author: benjamin
Date: Sun Jul 11 23:43:01 2010
New Revision: 76112
Modified:
pypy/branch/fast-forward/pypy/rlib/rstring.py
Log:
enforce type strictness untranslated
Modified: pypy/branch/fast-forward/pypy/rlib/rstring.py
==============================================================================
--- pypy/branch/fast-forward/pypy/rlib/rstring.py (original)
+++ pypy/branch/fast-forward/pypy/rlib/rstring.py Sun Jul 11 23:43:01 2010
@@ -53,22 +53,26 @@
self.l = []
def append(self, s):
+ assert isinstance(s, self.tp)
self.l.append(s)
def append_slice(self, s, start, end):
+ assert isinstance(s, self.tp)
assert 0 <= start <= end <= len(s)
self.l.append(s[start:end])
def append_multiple_char(self, c, times):
+ assert isinstance(c, self.tp)
self.l.append(c * times)
-class StringBuilder(AbstractStringBuilder):
def build(self):
- return "".join(self.l)
+ return self.tp("").join(self.l)
+
+class StringBuilder(AbstractStringBuilder):
+ tp = str
class UnicodeBuilder(AbstractStringBuilder):
- def build(self):
- return u''.join(self.l)
+ tp = unicode
# XXX: This does log(mul) mallocs, the GCs probably make that efficient, but
More information about the Pypy-commit
mailing list