[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