Issue #29337: Fixed possible BytesWarning when compare the code objects.
Warnings could be emitted at compile time.
This commit is contained in:
commit
067cbd02bf
|
@ -630,6 +630,7 @@ if 1:
|
||||||
f1 = ns['f1']
|
f1 = ns['f1']
|
||||||
f2 = ns['f2']
|
f2 = ns['f2']
|
||||||
self.assertIsNot(f1.__code__, f2.__code__)
|
self.assertIsNot(f1.__code__, f2.__code__)
|
||||||
|
self.assertNotEqual(f1.__code__, f2.__code__)
|
||||||
self.check_constant(f1, const1)
|
self.check_constant(f1, const1)
|
||||||
self.check_constant(f2, const2)
|
self.check_constant(f2, const2)
|
||||||
self.assertEqual(repr(f1()), repr(const1))
|
self.assertEqual(repr(f1()), repr(const1))
|
||||||
|
@ -638,6 +639,8 @@ if 1:
|
||||||
check_different_constants(0, 0.0)
|
check_different_constants(0, 0.0)
|
||||||
check_different_constants(+0.0, -0.0)
|
check_different_constants(+0.0, -0.0)
|
||||||
check_different_constants((0,), (0.0,))
|
check_different_constants((0,), (0.0,))
|
||||||
|
check_different_constants('a', b'a')
|
||||||
|
check_different_constants(('a',), (b'a',))
|
||||||
|
|
||||||
# check_different_constants() cannot be used because repr(-0j) is
|
# check_different_constants() cannot be used because repr(-0j) is
|
||||||
# '(-0-0j)', but when '(-0-0j)' is evaluated to 0j: we loose the sign.
|
# '(-0-0j)', but when '(-0-0j)' is evaluated to 0j: we loose the sign.
|
||||||
|
|
|
@ -10,6 +10,9 @@ What's New in Python 3.7.0 alpha 1?
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #29337: Fixed possible BytesWarning when compare the code objects.
|
||||||
|
Warnings could be emitted at compile time.
|
||||||
|
|
||||||
- Issue #29327: Fixed a crash when pass the iterable keyword argument to
|
- Issue #29327: Fixed a crash when pass the iterable keyword argument to
|
||||||
sorted().
|
sorted().
|
||||||
|
|
||||||
|
|
|
@ -550,7 +550,7 @@ _PyCode_ConstantKey(PyObject *op)
|
||||||
PyTuple_SET_ITEM(tuple, i, item_key);
|
PyTuple_SET_ITEM(tuple, i, item_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
key = PyTuple_Pack(3, Py_TYPE(op), op, tuple);
|
key = PyTuple_Pack(2, tuple, op);
|
||||||
Py_DECREF(tuple);
|
Py_DECREF(tuple);
|
||||||
}
|
}
|
||||||
else if (PyFrozenSet_CheckExact(op)) {
|
else if (PyFrozenSet_CheckExact(op)) {
|
||||||
|
@ -584,7 +584,7 @@ _PyCode_ConstantKey(PyObject *op)
|
||||||
if (set == NULL)
|
if (set == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
key = PyTuple_Pack(3, Py_TYPE(op), op, set);
|
key = PyTuple_Pack(2, set, op);
|
||||||
Py_DECREF(set);
|
Py_DECREF(set);
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
@ -595,7 +595,7 @@ _PyCode_ConstantKey(PyObject *op)
|
||||||
if (obj_id == NULL)
|
if (obj_id == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
key = PyTuple_Pack(3, Py_TYPE(op), op, obj_id);
|
key = PyTuple_Pack(2, obj_id, op);
|
||||||
Py_DECREF(obj_id);
|
Py_DECREF(obj_id);
|
||||||
}
|
}
|
||||||
return key;
|
return key;
|
||||||
|
|
Loading…
Reference in New Issue