mirror of https://github.com/python/cpython
Add "annotate" SET_FUNCTION_ATTRIBUTE bit to dis. (#124566)
This commit is contained in:
parent
4e829c0e6f
commit
4defb58d38
|
@ -32,7 +32,7 @@ _have_code = (types.MethodType, types.FunctionType, types.CodeType,
|
||||||
CONVERT_VALUE = opmap['CONVERT_VALUE']
|
CONVERT_VALUE = opmap['CONVERT_VALUE']
|
||||||
|
|
||||||
SET_FUNCTION_ATTRIBUTE = opmap['SET_FUNCTION_ATTRIBUTE']
|
SET_FUNCTION_ATTRIBUTE = opmap['SET_FUNCTION_ATTRIBUTE']
|
||||||
FUNCTION_ATTR_FLAGS = ('defaults', 'kwdefaults', 'annotations', 'closure')
|
FUNCTION_ATTR_FLAGS = ('defaults', 'kwdefaults', 'annotations', 'closure', 'annotate')
|
||||||
|
|
||||||
ENTER_EXECUTOR = opmap['ENTER_EXECUTOR']
|
ENTER_EXECUTOR = opmap['ENTER_EXECUTOR']
|
||||||
LOAD_CONST = opmap['LOAD_CONST']
|
LOAD_CONST = opmap['LOAD_CONST']
|
||||||
|
|
|
@ -380,6 +380,23 @@ dis_annot_stmt_str = """\
|
||||||
RETURN_CONST 3 (None)
|
RETURN_CONST 3 (None)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
fn_with_annotate_str = """
|
||||||
|
def foo(a: int, b: str) -> str:
|
||||||
|
return a * b
|
||||||
|
"""
|
||||||
|
|
||||||
|
dis_fn_with_annotate_str = """\
|
||||||
|
0 RESUME 0
|
||||||
|
|
||||||
|
2 LOAD_CONST 0 (<code object __annotate__ at 0x..., file "<dis>", line 2>)
|
||||||
|
MAKE_FUNCTION
|
||||||
|
LOAD_CONST 1 (<code object foo at 0x..., file "<dis>", line 2>)
|
||||||
|
MAKE_FUNCTION
|
||||||
|
SET_FUNCTION_ATTRIBUTE 16 (annotate)
|
||||||
|
STORE_NAME 0 (foo)
|
||||||
|
RETURN_CONST 2 (None)
|
||||||
|
"""
|
||||||
|
|
||||||
compound_stmt_str = """\
|
compound_stmt_str = """\
|
||||||
x = 0
|
x = 0
|
||||||
while 1:
|
while 1:
|
||||||
|
@ -1098,6 +1115,7 @@ class DisTests(DisTestBase):
|
||||||
self.do_disassembly_test(expr_str, dis_expr_str)
|
self.do_disassembly_test(expr_str, dis_expr_str)
|
||||||
self.do_disassembly_test(simple_stmt_str, dis_simple_stmt_str)
|
self.do_disassembly_test(simple_stmt_str, dis_simple_stmt_str)
|
||||||
self.do_disassembly_test(annot_stmt_str, dis_annot_stmt_str)
|
self.do_disassembly_test(annot_stmt_str, dis_annot_stmt_str)
|
||||||
|
self.do_disassembly_test(fn_with_annotate_str, dis_fn_with_annotate_str)
|
||||||
self.do_disassembly_test(compound_stmt_str, dis_compound_stmt_str)
|
self.do_disassembly_test(compound_stmt_str, dis_compound_stmt_str)
|
||||||
|
|
||||||
def test_disassemble_bytes(self):
|
def test_disassemble_bytes(self):
|
||||||
|
|
Loading…
Reference in New Issue