[pypy-svn] r48526 - in pypy/branch/unicode-objspace/pypy/annotation: . test
fijal at codespeak.net
fijal at codespeak.net
Sat Nov 10 19:57:15 CET 2007
Author: fijal
Date: Sat Nov 10 19:57:15 2007
New Revision: 48526
Modified:
pypy/branch/unicode-objspace/pypy/annotation/binaryop.py
pypy/branch/unicode-objspace/pypy/annotation/test/test_annrpython.py
Log:
The case str[:-1] is also fine.
Modified: pypy/branch/unicode-objspace/pypy/annotation/binaryop.py
==============================================================================
--- pypy/branch/unicode-objspace/pypy/annotation/binaryop.py (original)
+++ pypy/branch/unicode-objspace/pypy/annotation/binaryop.py Sat Nov 10 19:57:15 2007
@@ -602,7 +602,8 @@
def check_negative_slice(s_slice):
if isinstance(s_slice.start, SomeInteger) and not s_slice.start.nonneg:
raise TypeError("%s not proven to have negative start" % s_slice)
- if isinstance(s_slice.stop, SomeInteger) and not s_slice.stop.nonneg:
+ if isinstance(s_slice.stop, SomeInteger) and not s_slice.stop.nonneg and\
+ getattr(s_slice.stop, 'const', 0) != -1:
raise TypeError("%s not proven to have negative stop" % s_slice)
class __extend__(pairtype(SomeList, SomeSlice)):
Modified: pypy/branch/unicode-objspace/pypy/annotation/test/test_annrpython.py
==============================================================================
--- pypy/branch/unicode-objspace/pypy/annotation/test/test_annrpython.py (original)
+++ pypy/branch/unicode-objspace/pypy/annotation/test/test_annrpython.py Sat Nov 10 19:57:15 2007
@@ -2970,6 +2970,10 @@
py.test.raises(TypeError, "a.build_types(f, [int, int])")
a.build_types(f, [annmodel.SomeInteger(nonneg=True),
annmodel.SomeInteger(nonneg=True)])
+ def f(x):
+ return x[:-1]
+
+ a.build_types(f, [str])
def g(n):
return [0,1,2,n]
More information about the Pypy-commit
mailing list