The bug was reported by Armin in SF #1333982:

    the literal -2147483648 (i.e. the value of -sys.maxint-1) gives
    a long in 2.5, but an int in <= 2.4.

I have a fix but I wonder if it's the right thing to do.  I suppose
returning a long has the chance of breaking someone code.  Here's
the test we currently have for a related case:

    [...]
    # 32-bit machine
    all_one_bits = '0xffffffff'
    self.assertEqual(eval(all_one_bits), 4294967295L)
    self.assertEqual(eval("-" + all_one_bits), -4294967295L)

I guess I would add self.assertTrue(isinstance(eval("-2147483648"), int))
to that set of tests.

  Neil

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to