Propagate show_asm debug option down to functions

This commit is contained in:
rocky
2021-12-17 05:27:15 -05:00
parent ed5346e526
commit 16c900ff1d
8 changed files with 53 additions and 25 deletions

View File

@@ -38,7 +38,7 @@ from uncompyle6.show import maybe_show_tree_param_default
def make_function36(self, node, is_lambda, nested=1, code_node=None):
"""Dump function definition, doc string, and function body in
Python version 3.6 and above.
Python version 3.6 and above.
"""
# MAKE_CLOSURE adds an additional closure slot
@@ -51,8 +51,8 @@ def make_function36(self, node, is_lambda, nested=1, code_node=None):
def build_param(ast, name, default, annotation=None):
"""build parameters:
- handle defaults
- handle format tuple parameters
- handle defaults
- handle format tuple parameters
"""
value = default
maybe_show_tree_param_default(self.showast, name, value)
@@ -124,8 +124,6 @@ def make_function36(self, node, is_lambda, nested=1, code_node=None):
kw_node = node[pos_args]
if kw_node == "expr":
kw_node = kw_node[0]
if kw_node == "dict":
kw_pairs = kw_node[-1].attr
defparams = []
# FIXME: DRY with code below
@@ -150,7 +148,8 @@ def make_function36(self, node, is_lambda, nested=1, code_node=None):
code = code_node.attr
assert iscode(code)
scanner_code = Code(code, self.scanner, self.currentclass)
debug_opts = self.debug_opts["asm"] if self.debug_opts else None
scanner_code = Code(code, self.scanner, self.currentclass, debug_opts)
# add defaults values to parameter names
argc = code.co_argcount
@@ -347,7 +346,12 @@ def make_function36(self, node, is_lambda, nested=1, code_node=None):
has_none = "None" in code.co_names
rn = has_none and not find_none(ast)
self.gen_source(
ast, code.co_name, scanner_code._customize, is_lambda=is_lambda, returnNone=rn
ast,
code.co_name,
scanner_code._customize,
is_lambda=is_lambda,
returnNone=rn,
debug_opts=self.debug_opts,
)
# In obscure cases, a function may be a generator but the "yield"