bpo-43693 Get rid of CO_NOFREE -- it's unused (GH-26839)

All uses of this flag are either setting it
or in doc or tests for it. So we should be
able to get rid of it completely.
This commit is contained in:
Guido van Rossum 2021-06-23 09:51:44 -07:00 committed by GitHub
parent 34356a0a4b
commit 769d7d0c66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 239 additions and 260 deletions

View file

@ -49,7 +49,7 @@ varnames: ('x', 'y', 'a', 'b', 'c')
cellvars: ()
freevars: ()
nlocals: 5
flags: 67
flags: 3
consts: ('None',)
>>> def attrs(obj):
@ -67,7 +67,7 @@ varnames: ('obj',)
cellvars: ()
freevars: ()
nlocals: 1
flags: 67
flags: 3
consts: ('None',)
>>> def optimize_away():
@ -86,7 +86,7 @@ varnames: ()
cellvars: ()
freevars: ()
nlocals: 0
flags: 67
flags: 3
consts: ("'doc string'", 'None')
>>> def keywordonly_args(a,b,*,k1):
@ -103,7 +103,7 @@ varnames: ('a', 'b', 'k1')
cellvars: ()
freevars: ()
nlocals: 3
flags: 67
flags: 3
consts: ('None',)
>>> def posonly_args(a,b,/,c):
@ -120,7 +120,7 @@ varnames: ('a', 'b', 'c')
cellvars: ()
freevars: ()
nlocals: 3
flags: 67
flags: 3
consts: ('None',)
"""
@ -199,10 +199,6 @@ class CodeTest(unittest.TestCase):
class_ref = function.__closure__[0].cell_contents
self.assertIs(class_ref, List)
# Ensure the code correctly indicates it accesses a free variable
self.assertFalse(function.__code__.co_flags & inspect.CO_NOFREE,
hex(function.__code__.co_flags))
# Ensure the zero-arg super() call in the injected method works
obj = List([1, 2, 3])
self.assertEqual(obj[0], "Foreign getitem: 1")