Nick Coghlan added the comment: +1 for listing the nested code objects after the original one.
In reviewing Serhiy's patch, the core technical implementation looks OK to me, but I think we may want to go with a "depth" argument rather than a simple "recursive" flag. My rationale for that relates to directly disassembling module and class source code: - dis(module_source, depth=1) # Module, class bodies, function bodies - dis(class_source, depth=1) # Class and method bodies (with the default depth being 0, to disable recursive descent entirely) Only if you set a higher depth than 1 would you start seeing things like closures, comprehension bodies, and nested classes. With a simple all-or-nothing flag, I think module level recursive disassembly would be too noisy to be useful. The bounded depth approach would also avoid a problem with invalid bytecode manipulations that manage to create a loop between two bytecode objects. While the *compiler* won't do that, there's no guarantee that the disassembler is being fed valid bytecode, so we should avoid exposing ourselves to any infinite loops in the display code. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue11822> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com