Author: Brian Kearns <bdkea...@gmail.com> Branch: use-file-star-for-file Changeset: r73405:74ed616baf65 Date: 2014-09-09 16:28 -0400 http://bitbucket.org/pypy/pypy/changeset/74ed616baf65/
Log: merge default diff --git a/rpython/rtyper/rbuiltin.py b/rpython/rtyper/rbuiltin.py --- a/rpython/rtyper/rbuiltin.py +++ b/rpython/rtyper/rbuiltin.py @@ -269,17 +269,19 @@ hop.exception_cannot_occur() v_self = hop.args_v[0] r_self = hop.args_r[0] - if hop.nb_args >= 2: + if hop.nb_args <= 2: + v_errno = hop.inputconst(lltype.Signed, 0) + if hop.nb_args == 2: + v_strerror = hop.inputarg(rstr.string_repr, arg=1) + r_self.setfield(v_self, 'strerror', v_strerror, hop.llops) + else: v_errno = hop.inputarg(lltype.Signed, arg=1) - else: - v_errno = hop.inputconst(lltype.Signed, 0) - r_self.setfield(v_self, 'errno', v_errno, hop.llops) - if hop.nb_args >= 3: v_strerror = hop.inputarg(rstr.string_repr, arg=2) r_self.setfield(v_self, 'strerror', v_strerror, hop.llops) if hop.nb_args >= 4: v_filename = hop.inputarg(rstr.string_repr, arg=3) r_self.setfield(v_self, 'filename', v_filename, hop.llops) + r_self.setfield(v_self, 'errno', v_errno, hop.llops) def rtype_WindowsError__init__(hop): hop.exception_cannot_occur() diff --git a/rpython/rtyper/test/test_exception.py b/rpython/rtyper/test/test_exception.py --- a/rpython/rtyper/test/test_exception.py +++ b/rpython/rtyper/test/test_exception.py @@ -36,7 +36,7 @@ class TestException(BaseRtypingTest): def test_exception_with_arg(self): def g(n): - raise IOError(n) + raise IOError("test") def h(n): raise OSError(n, "?", None) def i(n): @@ -49,8 +49,8 @@ try: g(n) except IOError, e: - assert e.errno == 42 - assert e.strerror is None + assert e.errno == 0 + assert e.strerror == "test" assert e.filename is None else: assert False _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit