Kaydet (Commit) 9ffc0205 authored tarafından Mark Dickinson's avatar Mark Dickinson

Issue 4842, patch 2/2: int('3L') should be invalid in Python 3.x.

üst 8dd05147
......@@ -284,6 +284,16 @@ class LongTest(unittest.TestCase):
self.assertRaises(ValueError, int, '123\0')
self.assertRaises(ValueError, int, '53', 40)
# trailing L should no longer be accepted...
self.assertRaises(ValueError, int, '123L')
self.assertRaises(ValueError, int, '123l')
self.assertRaises(ValueError, int, '0L')
self.assertRaises(ValueError, int, '-37L')
self.assertRaises(ValueError, int, '0x32L', 16)
self.assertRaises(ValueError, int, '1L', 21)
# ... but it's just a normal digit if base >= 22
self.assertEqual(int('1L', 22), 43)
self.assertRaises(TypeError, int, 1, 12)
# SF patch #1638879: embedded NULs were not detected with
......
......@@ -12,6 +12,9 @@ What's New in Python 3.1 alpha 0
Core and Builtins
-----------------
- Issue #4842: Don't allow trailing 'L' when constructing an integer
from a string.
- Issue #4991: os.fdopen now raises an OSError for invalid file descriptors.
- Issue #4838: When a module is deallocated, free the memory backing the
......
......@@ -1990,8 +1990,6 @@ digit beyond the first.
goto onError;
if (sign < 0)
Py_SIZE(z) = -(Py_SIZE(z));
if (*str == 'L' || *str == 'l')
str++;
while (*str && isspace(Py_CHARMASK(*str)))
str++;
if (*str != '\0')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment