Issue 32970: Improve disassembly of the MAKE_FUNCTION instruction (original) (raw)

The proposed PR adds decryption of the MAKE_FUNCTION argument (it is a bits set) in the disassembler output. For example:

$ echo 'def f(x, y=1, *, z=2): ...' | ./python -m dis 1 0 LOAD_CONST 6 ((1,)) 2 LOAD_CONST 1 (2) 4 LOAD_CONST 2 (('z',)) 6 BUILD_CONST_KEY_MAP 1 8 LOAD_CONST 3 (<code object f at 0x7fe5ade8f300, file "", line 1>) 10 LOAD_CONST 4 ('f') 12 MAKE_FUNCTION 3 (defaults, kwdefaults) 14 STORE_NAME 0 (f) 16 LOAD_CONST 5 (None) 18 RETURN_VALUE

Disassembly of <code object f at 0x7fe5ade8f300, file "", line 1>: 1 0 LOAD_CONST 0 (None) 2 RETURN_VALUE