[pypy-svn] r48335 - in pypy/branch/pypy-rpython-unicode/annotation: . test
fijal at codespeak.net
fijal at codespeak.net
Tue Nov 6 13:19:18 CET 2007
Author: fijal
Date: Tue Nov 6 13:19:17 2007
New Revision: 48335
Modified:
pypy/branch/pypy-rpython-unicode/annotation/binaryop.py
pypy/branch/pypy-rpython-unicode/annotation/test/test_annrpython.py
Log:
Forbid mixing unicode and string (this leaves some desgin flaw around
as mixing of unichr and chr is ok)
Modified: pypy/branch/pypy-rpython-unicode/annotation/binaryop.py
==============================================================================
--- pypy/branch/pypy-rpython-unicode/annotation/binaryop.py (original)
+++ pypy/branch/pypy-rpython-unicode/annotation/binaryop.py Tue Nov 6 13:19:17 2007
@@ -426,10 +426,12 @@
return SomeChar()
-class __extend__(pairtype(SomeUnicodeCodePoint, SomeUnicodeCodePoint),
- pairtype(SomeChar, SomeUnicodeCodePoint),
+class __extend__(pairtype(SomeChar, SomeUnicodeCodePoint),
pairtype(SomeUnicodeCodePoint, SomeChar)):
+ def union((uchr1, uchr2)):
+ return SomeUnicodeCodePoint()
+class __extend__(pairtype(SomeUnicodeCodePoint, SomeUnicodeCodePoint)):
def union((uchr1, uchr2)):
return SomeUnicodeCodePoint()
@@ -665,14 +667,8 @@
getbookkeeper().count("str_mul", str2, int1)
return SomeString()
-class __extend__(pairtype(SomeString, SomeUnicodeString),
- pairtype(SomeUnicodeString, SomeString),
- pairtype(SomeUnicodeCodePoint, SomeString),
- pairtype(SomeString, SomeUnicodeCodePoint),
- pairtype(SomeUnicodeCodePoint, SomeUnicodeString),
+class __extend__(pairtype(SomeUnicodeCodePoint, SomeUnicodeString),
pairtype(SomeUnicodeString, SomeUnicodeCodePoint),
- pairtype(SomeUnicodeString, SomeChar),
- pairtype(SomeChar, SomeUnicodeString),
pairtype(SomeUnicodeString, SomeUnicodeString)):
def union((str1, str2)):
return SomeUnicodeString(can_be_None=str1.can_be_none() or
Modified: pypy/branch/pypy-rpython-unicode/annotation/test/test_annrpython.py
==============================================================================
--- pypy/branch/pypy-rpython-unicode/annotation/test/test_annrpython.py (original)
+++ pypy/branch/pypy-rpython-unicode/annotation/test/test_annrpython.py Tue Nov 6 13:19:17 2007
@@ -2883,7 +2883,7 @@
def test_unicode(self):
def g(n):
if n > 0:
- return "xxx"
+ return unichr(1234)
else:
return u"x\xe4x"
@@ -2913,19 +2913,12 @@
def g(x):
return unichr(x) + unichr(2)
- def h(x):
- return x + u'a'
-
- def i(x):
- return unicode(x) + 'xxx'
-
- for func in f, h, i:
- a = self.RPythonAnnotator()
- s = a.build_types(f, [str])
- assert isinstance(s, annmodel.SomeUnicodeString)
a = self.RPythonAnnotator()
- s = a.build_types(f, [int])
+ s = a.build_types(f, [str])
assert isinstance(s, annmodel.SomeUnicodeString)
+ a = self.RPythonAnnotator()
+ s = a.build_types(f, [int])
+ assert isinstance(s, annmodel.SomeUnicodeString)
def g(n):
More information about the Pypy-commit
mailing list