Hi Maciej, can you please write some tests for this change?
Cheers, Carl Friedrich On 09/10/13 09:57, fijal wrote: > Author: Maciej Fijalkowski <[email protected]> > Branch: > Changeset: r67229:c214edb11c30 > Date: 2013-10-09 09:55 +0200 > http://bitbucket.org/pypy/pypy/changeset/c214edb11c30/ > > Log: be a little more stringent about checking negative numbers early > > diff --git a/rpython/annotator/unaryop.py b/rpython/annotator/unaryop.py > --- a/rpython/annotator/unaryop.py > +++ b/rpython/annotator/unaryop.py > @@ -333,12 +333,13 @@ > check_negative_slice(s_start, s_stop) > lst.listdef.resize() > > -def check_negative_slice(s_start, s_stop): > +def check_negative_slice(s_start, s_stop, error="slicing"): > if isinstance(s_start, SomeInteger) and not s_start.nonneg: > - raise AnnotatorError("slicing: not proven to have non-negative > start") > + raise AnnotatorError("%s: not proven to have non-negative start" % > + error) > if isinstance(s_stop, SomeInteger) and not s_stop.nonneg and \ > getattr(s_stop, 'const', 0) != -1: > - raise AnnotatorError("slicing: not proven to have non-negative stop") > + raise AnnotatorError("%s: not proven to have non-negative stop" % > error) > > > class __extend__(SomeDict): > @@ -448,12 +449,15 @@ > return s_Bool > > def method_find(str, frag, start=None, end=None): > + check_negative_slice(start, end, "find") > return SomeInteger() > > def method_rfind(str, frag, start=None, end=None): > + check_negative_slice(start, end, "rfind") > return SomeInteger() > > def method_count(str, frag, start=None, end=None): > + check_negative_slice(start, end, "count") > return SomeInteger(nonneg=True) > > def method_strip(str, chr): > _______________________________________________ > pypy-commit mailing list > [email protected] > https://mail.python.org/mailman/listinfo/pypy-commit > _______________________________________________ pypy-dev mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-dev
