Skip to content

Commit

Permalink
pythonGH-99944: Make dis display the value of oparg of KW_NAMES (pyth…
Browse files Browse the repository at this point in the history
…on#103856)

Co-authored-by: chilaxan <chilaxan@gmail.com>
  • Loading branch information
jkchandalia and chilaxan committed Apr 26, 2023
1 parent 1461a22 commit d45225b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 3 deletions.
5 changes: 2 additions & 3 deletions Lib/dis.py
Original file line number Diff line number Diff line change
Expand Up @@ -369,9 +369,8 @@ def _get_const_value(op, arg, co_consts):
assert op in hasconst

argval = UNKNOWN
if op == LOAD_CONST or op == RETURN_CONST:
if co_consts is not None:
argval = co_consts[arg]
if co_consts is not None:
argval = co_consts[arg]
return argval

def _get_const_info(op, arg, co_consts):
Expand Down
24 changes: 24 additions & 0 deletions Lib/test/test_dis.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,26 @@ def bug42562():
JUMP_FORWARD -4 (to 0)
"""

def func_w_kwargs(a, b, **c):
pass

def wrap_func_w_kwargs():
func_w_kwargs(1, 2, c=5)

dis_kw_names = """\
%3d RESUME 0
%3d LOAD_GLOBAL 1 (NULL + func_w_kwargs)
LOAD_CONST 1 (1)
LOAD_CONST 2 (2)
LOAD_CONST 3 (5)
KW_NAMES 4 (('c',))
CALL 3
POP_TOP
RETURN_CONST 0 (None)
""" % (wrap_func_w_kwargs.__code__.co_firstlineno,
wrap_func_w_kwargs.__code__.co_firstlineno + 1)

_BIG_LINENO_FORMAT = """\
1 RESUME 0
Expand Down Expand Up @@ -911,6 +931,10 @@ def test_bug_46724(self):
# Test that negative operargs are handled properly
self.do_disassembly_test(bug46724, dis_bug46724)

def test_kw_names(self):
# Test that value is displayed for KW_NAMES
self.do_disassembly_test(wrap_func_w_kwargs, dis_kw_names)

def test_big_linenos(self):
def func(count):
namespace = {}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Make :mod:`dis` display the value of oparg of :opcode:`KW_NAMES`.

0 comments on commit d45225b

Please sign in to comment.