Skip to content

Commit 493e7a2

Browse files
committed
gh-140256: Populate argrepr for LOAD_SMALL_INT
Closes #140256.
1 parent fbf0843 commit 493e7a2

File tree

2 files changed

+46
-46
lines changed

2 files changed

+46
-46
lines changed

Lib/dis.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -586,7 +586,7 @@ def get_argval_argrepr(self, op, arg, offset):
586586
# _disassemble_bytes needs the string repr of the
587587
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
588588
argval = arg
589-
if deop in hasconst:
589+
if deop in hasconst or deop == LOAD_SMALL_INT:
590590
argval, argrepr = _get_const_info(deop, arg, self.co_consts)
591591
elif deop in hasname:
592592
if deop == LOAD_GLOBAL:

Lib/test/test_dis.py

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def cm(cls, x):
5252
%3d RESUME 0
5353
5454
%3d LOAD_FAST_BORROW 1 (x)
55-
LOAD_SMALL_INT 1
55+
LOAD_SMALL_INT 1 (1)
5656
COMPARE_OP 72 (==)
5757
LOAD_FAST_BORROW 0 (self)
5858
STORE_ATTR 0 (x)
@@ -63,7 +63,7 @@ def cm(cls, x):
6363
dis_c_instance_method_bytes = """\
6464
RESUME 0
6565
LOAD_FAST_BORROW 1
66-
LOAD_SMALL_INT 1
66+
LOAD_SMALL_INT 1 (1)
6767
COMPARE_OP 72 (==)
6868
LOAD_FAST_BORROW 0
6969
STORE_ATTR 0
@@ -75,7 +75,7 @@ def cm(cls, x):
7575
%3d RESUME 0
7676
7777
%3d LOAD_FAST_BORROW 1 (x)
78-
LOAD_SMALL_INT 1
78+
LOAD_SMALL_INT 1 (1)
7979
COMPARE_OP 72 (==)
8080
LOAD_FAST_BORROW 0 (cls)
8181
STORE_ATTR 0 (x)
@@ -87,7 +87,7 @@ def cm(cls, x):
8787
%3d RESUME 0
8888
8989
%3d LOAD_FAST_BORROW 0 (x)
90-
LOAD_SMALL_INT 1
90+
LOAD_SMALL_INT 1 (1)
9191
COMPARE_OP 72 (==)
9292
STORE_FAST 0 (x)
9393
LOAD_CONST 1 (None)
@@ -118,7 +118,7 @@ def _f(a):
118118
CALL 1
119119
POP_TOP
120120
121-
%3d LOAD_SMALL_INT 1
121+
%3d LOAD_SMALL_INT 1 (1)
122122
RETURN_VALUE
123123
""" % (_f.__code__.co_firstlineno,
124124
_f.__code__.co_firstlineno + 1,
@@ -132,7 +132,7 @@ def _f(a):
132132
14 CALL 1
133133
22 POP_TOP
134134
135-
%3d 24 LOAD_SMALL_INT 1
135+
%3d 24 LOAD_SMALL_INT 1 (1)
136136
26 RETURN_VALUE
137137
""" % (_f.__code__.co_firstlineno,
138138
_f.__code__.co_firstlineno + 1,
@@ -146,7 +146,7 @@ def _f(a):
146146
%-14s CALL 1
147147
%-14s POP_TOP
148148
149-
%-14s LOAD_SMALL_INT 1
149+
%-14s LOAD_SMALL_INT 1 (1)
150150
%-14s RETURN_VALUE
151151
"""
152152

@@ -156,7 +156,7 @@ def _f(a):
156156
LOAD_FAST_BORROW 0
157157
CALL 1
158158
POP_TOP
159-
LOAD_SMALL_INT 1
159+
LOAD_SMALL_INT 1 (1)
160160
RETURN_VALUE
161161
"""
162162

@@ -169,9 +169,9 @@ def bug708901():
169169
%3d RESUME 0
170170
171171
%3d LOAD_GLOBAL 1 (range + NULL)
172-
LOAD_SMALL_INT 1
172+
LOAD_SMALL_INT 1 (1)
173173
174-
%3d LOAD_SMALL_INT 10
174+
%3d LOAD_SMALL_INT 10 (10)
175175
176176
%3d CALL 2
177177
GET_ITER
@@ -206,7 +206,7 @@ def bug1333982(x=[]):
206206
LOAD_FAST_BORROW 0 (x)
207207
CALL 0
208208
209-
%3d LOAD_SMALL_INT 1
209+
%3d LOAD_SMALL_INT 1 (1)
210210
211211
%3d BINARY_OP 0 (+)
212212
CALL 0
@@ -276,9 +276,9 @@ def wrap_func_w_kwargs():
276276
%3d RESUME 0
277277
278278
%3d LOAD_GLOBAL 1 (func_w_kwargs + NULL)
279-
LOAD_SMALL_INT 1
280-
LOAD_SMALL_INT 2
281-
LOAD_SMALL_INT 5
279+
LOAD_SMALL_INT 1 (1)
280+
LOAD_SMALL_INT 2 (2)
281+
LOAD_SMALL_INT 5 (5)
282282
LOAD_CONST 1 (('c',))
283283
CALL_KW 3
284284
POP_TOP
@@ -290,7 +290,7 @@ def wrap_func_w_kwargs():
290290
dis_intrinsic_1_2 = """\
291291
0 RESUME 0
292292
293-
1 LOAD_SMALL_INT 0
293+
1 LOAD_SMALL_INT 0 (0)
294294
LOAD_CONST 1 (('*',))
295295
IMPORT_NAME 0 (math)
296296
CALL_INTRINSIC_1 2 (INTRINSIC_IMPORT_STAR)
@@ -354,7 +354,7 @@ def wrap_func_w_kwargs():
354354
0 RESUME 0
355355
356356
1 LOAD_NAME 0 (x)
357-
LOAD_SMALL_INT 1
357+
LOAD_SMALL_INT 1 (1)
358358
BINARY_OP 0 (+)
359359
RETURN_VALUE
360360
"""
@@ -365,7 +365,7 @@ def wrap_func_w_kwargs():
365365
0 RESUME 0
366366
367367
1 LOAD_NAME 0 (x)
368-
LOAD_SMALL_INT 1
368+
LOAD_SMALL_INT 1 (1)
369369
BINARY_OP 0 (+)
370370
STORE_NAME 0 (x)
371371
LOAD_CONST 1 (None)
@@ -390,23 +390,23 @@ def wrap_func_w_kwargs():
390390
STORE_NAME 4 (__annotate__)
391391
BUILD_SET 0
392392
STORE_NAME 0 (__conditional_annotations__)
393-
LOAD_SMALL_INT 1
393+
LOAD_SMALL_INT 1 (1)
394394
STORE_NAME 1 (x)
395395
LOAD_NAME 0 (__conditional_annotations__)
396-
LOAD_SMALL_INT 0
396+
LOAD_SMALL_INT 0 (0)
397397
SET_ADD 1
398398
POP_TOP
399399
400400
3 LOAD_NAME 0 (__conditional_annotations__)
401-
LOAD_SMALL_INT 1
401+
LOAD_SMALL_INT 1 (1)
402402
SET_ADD 1
403403
POP_TOP
404404
405-
4 LOAD_SMALL_INT 1
405+
4 LOAD_SMALL_INT 1 (1)
406406
LOAD_NAME 2 (lst)
407407
LOAD_NAME 3 (fun)
408408
PUSH_NULL
409-
LOAD_SMALL_INT 0
409+
LOAD_SMALL_INT 0 (0)
410410
CALL 1
411411
STORE_SUBSCR
412412
LOAD_CONST 2 (None)
@@ -440,13 +440,13 @@ def foo(a: int, b: str) -> str:
440440
dis_compound_stmt_str = """\
441441
0 RESUME 0
442442
443-
1 LOAD_SMALL_INT 0
443+
1 LOAD_SMALL_INT 0 (0)
444444
STORE_NAME 0 (x)
445445
446446
2 L1: NOP
447447
448448
3 LOAD_NAME 0 (x)
449-
LOAD_SMALL_INT 1
449+
LOAD_SMALL_INT 1 (1)
450450
BINARY_OP 13 (+=)
451451
STORE_NAME 0 (x)
452452
JUMP_BACKWARD 12 (to L1)
@@ -457,8 +457,8 @@ def foo(a: int, b: str) -> str:
457457
458458
%4d NOP
459459
460-
%4d L1: LOAD_SMALL_INT 1
461-
LOAD_SMALL_INT 0
460+
%4d L1: LOAD_SMALL_INT 1 (1)
461+
LOAD_SMALL_INT 0 (0)
462462
--> BINARY_OP 11 (/)
463463
POP_TOP
464464
@@ -551,7 +551,7 @@ def _with(c):
551551
CALL 0
552552
L1: POP_TOP
553553
554-
%4d LOAD_SMALL_INT 1
554+
%4d LOAD_SMALL_INT 1 (1)
555555
STORE_FAST 1 (x)
556556
557557
%4d L2: LOAD_CONST 1 (None)
@@ -560,7 +560,7 @@ def _with(c):
560560
CALL 3
561561
POP_TOP
562562
563-
%4d LOAD_SMALL_INT 2
563+
%4d LOAD_SMALL_INT 2 (2)
564564
STORE_FAST 2 (y)
565565
LOAD_CONST 1 (None)
566566
RETURN_VALUE
@@ -577,7 +577,7 @@ def _with(c):
577577
POP_TOP
578578
POP_TOP
579579
580-
%4d LOAD_SMALL_INT 2
580+
%4d LOAD_SMALL_INT 2 (2)
581581
STORE_FAST 2 (y)
582582
LOAD_CONST 1 (None)
583583
RETURN_VALUE
@@ -624,7 +624,7 @@ async def _asyncwith(c):
624624
L5: END_SEND
625625
L6: POP_TOP
626626
627-
%4d LOAD_SMALL_INT 1
627+
%4d LOAD_SMALL_INT 1 (1)
628628
STORE_FAST 1 (x)
629629
630630
%4d L7: LOAD_CONST 0 (None)
@@ -640,7 +640,7 @@ async def _asyncwith(c):
640640
L11: END_SEND
641641
POP_TOP
642642
643-
%4d LOAD_SMALL_INT 2
643+
%4d LOAD_SMALL_INT 2 (2)
644644
STORE_FAST 2 (y)
645645
LOAD_CONST 0 (None)
646646
RETURN_VALUE
@@ -669,7 +669,7 @@ async def _asyncwith(c):
669669
POP_TOP
670670
POP_TOP
671671
672-
%4d LOAD_SMALL_INT 2
672+
%4d LOAD_SMALL_INT 2 (2)
673673
STORE_FAST 2 (y)
674674
LOAD_CONST 0 (None)
675675
RETURN_VALUE
@@ -760,7 +760,7 @@ def _tryfinallyconst(b):
760760
PUSH_NULL
761761
CALL 0
762762
POP_TOP
763-
LOAD_SMALL_INT 1
763+
LOAD_SMALL_INT 1 (1)
764764
RETURN_VALUE
765765
766766
-- L1: PUSH_EXC_INFO
@@ -907,7 +907,7 @@ def loop_test():
907907
%3d BUILD_LIST 0
908908
LOAD_CONST 2 ((1, 2, 3))
909909
LIST_EXTEND 1
910-
LOAD_SMALL_INT 3
910+
LOAD_SMALL_INT 3 (3)
911911
BINARY_OP 5 (*)
912912
GET_ITER
913913
L1: FOR_ITER_LIST 14 (to L2)
@@ -1084,7 +1084,7 @@ def test_dis_with_linenos_but_no_columns(self):
10841084
expect = '\n'.join([
10851085
'1:0-1:0 RESUME 0',
10861086
'',
1087-
'2:5-2:6 LOAD_SMALL_INT 1',
1087+
'2:5-2:6 LOAD_SMALL_INT 1 (1)',
10881088
'2:?-2:? STORE_FAST 0 (x)',
10891089
'2:?-2:? LOAD_CONST 1 (None)',
10901090
'2:?-2:? RETURN_VALUE',
@@ -1324,7 +1324,7 @@ def test_call_specialize(self):
13241324
13251325
1 LOAD_NAME 0 (str)
13261326
PUSH_NULL
1327-
LOAD_SMALL_INT 1
1327+
LOAD_SMALL_INT 1 (1)
13281328
CALL_STR_1 1
13291329
RETURN_VALUE
13301330
"""
@@ -1766,7 +1766,7 @@ def _prepare_test_cases():
17661766
make_inst(opname='LOAD_DEREF', arg=0, argval='a', argrepr='a', offset=34, start_offset=34, starts_line=False, line_number=7),
17671767
make_inst(opname='LOAD_DEREF', arg=1, argval='b', argrepr='b', offset=36, start_offset=36, starts_line=False, line_number=7),
17681768
make_inst(opname='LOAD_CONST', arg=2, argval='', argrepr="''", offset=38, start_offset=38, starts_line=False, line_number=7),
1769-
make_inst(opname='LOAD_SMALL_INT', arg=1, argval=1, argrepr='', offset=40, start_offset=40, starts_line=False, line_number=7),
1769+
make_inst(opname='LOAD_SMALL_INT', arg=1, argval=1, argrepr='1', offset=40, start_offset=40, starts_line=False, line_number=7),
17701770
make_inst(opname='BUILD_LIST', arg=0, argval=0, argrepr='', offset=42, start_offset=42, starts_line=False, line_number=7),
17711771
make_inst(opname='BUILD_MAP', arg=0, argval=0, argrepr='', offset=44, start_offset=44, starts_line=False, line_number=7),
17721772
make_inst(opname='LOAD_CONST', arg=3, argval='Hello world!', argrepr="'Hello world!'", offset=46, start_offset=46, starts_line=False, line_number=7),
@@ -1821,7 +1821,7 @@ def _prepare_test_cases():
18211821
expected_opinfo_jumpy = [
18221822
make_inst(opname='RESUME', arg=0, argval=0, argrepr='', offset=0, start_offset=0, starts_line=True, line_number=1),
18231823
make_inst(opname='LOAD_GLOBAL', arg=1, argval='range', argrepr='range + NULL', offset=2, start_offset=2, starts_line=True, line_number=3, cache_info=[('counter', 1, b'\x00\x00'), ('index', 1, b'\x00\x00'), ('module_keys_version', 1, b'\x00\x00'), ('builtin_keys_version', 1, b'\x00\x00')]),
1824-
make_inst(opname='LOAD_SMALL_INT', arg=10, argval=10, argrepr='', offset=12, start_offset=12, starts_line=False, line_number=3),
1824+
make_inst(opname='LOAD_SMALL_INT', arg=10, argval=10, argrepr='10', offset=12, start_offset=12, starts_line=False, line_number=3),
18251825
make_inst(opname='CALL', arg=1, argval=1, argrepr='', offset=14, start_offset=14, starts_line=False, line_number=3, cache_info=[('counter', 1, b'\x00\x00'), ('func_version', 2, b'\x00\x00\x00\x00')]),
18261826
make_inst(opname='GET_ITER', arg=None, argval=None, argrepr='', offset=22, start_offset=22, starts_line=False, line_number=3),
18271827
make_inst(opname='FOR_ITER', arg=33, argval=94, argrepr='to L4', offset=24, start_offset=24, starts_line=False, line_number=3, label=1, cache_info=[('counter', 1, b'\x00\x00')]),
@@ -1831,13 +1831,13 @@ def _prepare_test_cases():
18311831
make_inst(opname='CALL', arg=1, argval=1, argrepr='', offset=42, start_offset=42, starts_line=False, line_number=4, cache_info=[('counter', 1, b'\x00\x00'), ('func_version', 2, b'\x00\x00\x00\x00')]),
18321832
make_inst(opname='POP_TOP', arg=None, argval=None, argrepr='', offset=50, start_offset=50, starts_line=False, line_number=4),
18331833
make_inst(opname='LOAD_FAST_BORROW', arg=0, argval='i', argrepr='i', offset=52, start_offset=52, starts_line=True, line_number=5),
1834-
make_inst(opname='LOAD_SMALL_INT', arg=4, argval=4, argrepr='', offset=54, start_offset=54, starts_line=False, line_number=5),
1834+
make_inst(opname='LOAD_SMALL_INT', arg=4, argval=4, argrepr='4', offset=54, start_offset=54, starts_line=False, line_number=5),
18351835
make_inst(opname='COMPARE_OP', arg=18, argval='<', argrepr='bool(<)', offset=56, start_offset=56, starts_line=False, line_number=5, cache_info=[('counter', 1, b'\x00\x00')]),
18361836
make_inst(opname='POP_JUMP_IF_FALSE', arg=3, argval=70, argrepr='to L2', offset=60, start_offset=60, starts_line=False, line_number=5, cache_info=[('counter', 1, b'\x00\x00')]),
18371837
make_inst(opname='NOT_TAKEN', arg=None, argval=None, argrepr='', offset=64, start_offset=64, starts_line=False, line_number=5),
18381838
make_inst(opname='JUMP_BACKWARD', arg=23, argval=24, argrepr='to L1', offset=66, start_offset=66, starts_line=True, line_number=6, cache_info=[('counter', 1, b'\x00\x00')]),
18391839
make_inst(opname='LOAD_FAST_BORROW', arg=0, argval='i', argrepr='i', offset=70, start_offset=70, starts_line=True, line_number=7, label=2),
1840-
make_inst(opname='LOAD_SMALL_INT', arg=6, argval=6, argrepr='', offset=72, start_offset=72, starts_line=False, line_number=7),
1840+
make_inst(opname='LOAD_SMALL_INT', arg=6, argval=6, argrepr='6', offset=72, start_offset=72, starts_line=False, line_number=7),
18411841
make_inst(opname='COMPARE_OP', arg=148, argval='>', argrepr='bool(>)', offset=74, start_offset=74, starts_line=False, line_number=7, cache_info=[('counter', 1, b'\x00\x00')]),
18421842
make_inst(opname='POP_JUMP_IF_TRUE', arg=3, argval=88, argrepr='to L3', offset=78, start_offset=78, starts_line=False, line_number=7, cache_info=[('counter', 1, b'\x00\x00')]),
18431843
make_inst(opname='NOT_TAKEN', arg=None, argval=None, argrepr='', offset=82, start_offset=82, starts_line=False, line_number=7),
@@ -1860,17 +1860,17 @@ def _prepare_test_cases():
18601860
make_inst(opname='CALL', arg=1, argval=1, argrepr='', offset=148, start_offset=148, starts_line=False, line_number=12, cache_info=[('counter', 1, b'\x00\x00'), ('func_version', 2, b'\x00\x00\x00\x00')]),
18611861
make_inst(opname='POP_TOP', arg=None, argval=None, argrepr='', offset=156, start_offset=156, starts_line=False, line_number=12),
18621862
make_inst(opname='LOAD_FAST_BORROW', arg=0, argval='i', argrepr='i', offset=158, start_offset=158, starts_line=True, line_number=13),
1863-
make_inst(opname='LOAD_SMALL_INT', arg=1, argval=1, argrepr='', offset=160, start_offset=160, starts_line=False, line_number=13),
1863+
make_inst(opname='LOAD_SMALL_INT', arg=1, argval=1, argrepr='1', offset=160, start_offset=160, starts_line=False, line_number=13),
18641864
make_inst(opname='BINARY_OP', arg=23, argval=23, argrepr='-=', offset=162, start_offset=162, starts_line=False, line_number=13, cache_info=[('counter', 1, b'\x00\x00'), ('descr', 4, b'\x00\x00\x00\x00\x00\x00\x00\x00')]),
18651865
make_inst(opname='STORE_FAST', arg=0, argval='i', argrepr='i', offset=174, start_offset=174, starts_line=False, line_number=13),
18661866
make_inst(opname='LOAD_FAST_BORROW', arg=0, argval='i', argrepr='i', offset=176, start_offset=176, starts_line=True, line_number=14),
1867-
make_inst(opname='LOAD_SMALL_INT', arg=6, argval=6, argrepr='', offset=178, start_offset=178, starts_line=False, line_number=14),
1867+
make_inst(opname='LOAD_SMALL_INT', arg=6, argval=6, argrepr='6', offset=178, start_offset=178, starts_line=False, line_number=14),
18681868
make_inst(opname='COMPARE_OP', arg=148, argval='>', argrepr='bool(>)', offset=180, start_offset=180, starts_line=False, line_number=14, cache_info=[('counter', 1, b'\x00\x00')]),
18691869
make_inst(opname='POP_JUMP_IF_FALSE', arg=3, argval=194, argrepr='to L6', offset=184, start_offset=184, starts_line=False, line_number=14, cache_info=[('counter', 1, b'\x00\x00')]),
18701870
make_inst(opname='NOT_TAKEN', arg=None, argval=None, argrepr='', offset=188, start_offset=188, starts_line=False, line_number=14),
18711871
make_inst(opname='JUMP_BACKWARD', arg=37, argval=120, argrepr='to L5', offset=190, start_offset=190, starts_line=True, line_number=15, cache_info=[('counter', 1, b'\x00\x00')]),
18721872
make_inst(opname='LOAD_FAST_BORROW', arg=0, argval='i', argrepr='i', offset=194, start_offset=194, starts_line=True, line_number=16, label=6),
1873-
make_inst(opname='LOAD_SMALL_INT', arg=4, argval=4, argrepr='', offset=196, start_offset=196, starts_line=False, line_number=16),
1873+
make_inst(opname='LOAD_SMALL_INT', arg=4, argval=4, argrepr='4', offset=196, start_offset=196, starts_line=False, line_number=16),
18741874
make_inst(opname='COMPARE_OP', arg=18, argval='<', argrepr='bool(<)', offset=198, start_offset=198, starts_line=False, line_number=16, cache_info=[('counter', 1, b'\x00\x00')]),
18751875
make_inst(opname='POP_JUMP_IF_TRUE', arg=3, argval=212, argrepr='to L7', offset=202, start_offset=202, starts_line=False, line_number=16, cache_info=[('counter', 1, b'\x00\x00')]),
18761876
make_inst(opname='NOT_TAKEN', arg=None, argval=None, argrepr='', offset=206, start_offset=206, starts_line=False, line_number=16),
@@ -1881,8 +1881,8 @@ def _prepare_test_cases():
18811881
make_inst(opname='CALL', arg=1, argval=1, argrepr='', offset=226, start_offset=226, starts_line=False, line_number=19, cache_info=[('counter', 1, b'\x00\x00'), ('func_version', 2, b'\x00\x00\x00\x00')]),
18821882
make_inst(opname='POP_TOP', arg=None, argval=None, argrepr='', offset=234, start_offset=234, starts_line=False, line_number=19),
18831883
make_inst(opname='NOP', arg=None, argval=None, argrepr='', offset=236, start_offset=236, starts_line=True, line_number=20, label=9),
1884-
make_inst(opname='LOAD_SMALL_INT', arg=1, argval=1, argrepr='', offset=238, start_offset=238, starts_line=True, line_number=21),
1885-
make_inst(opname='LOAD_SMALL_INT', arg=0, argval=0, argrepr='', offset=240, start_offset=240, starts_line=False, line_number=21),
1884+
make_inst(opname='LOAD_SMALL_INT', arg=1, argval=1, argrepr='1', offset=238, start_offset=238, starts_line=True, line_number=21),
1885+
make_inst(opname='LOAD_SMALL_INT', arg=0, argval=0, argrepr='0', offset=240, start_offset=240, starts_line=False, line_number=21),
18861886
make_inst(opname='BINARY_OP', arg=11, argval=11, argrepr='/', offset=242, start_offset=242, starts_line=False, line_number=21, cache_info=[('counter', 1, b'\x00\x00'), ('descr', 4, b'\x00\x00\x00\x00\x00\x00\x00\x00')]),
18871887
make_inst(opname='POP_TOP', arg=None, argval=None, argrepr='', offset=254, start_offset=254, starts_line=False, line_number=21),
18881888
make_inst(opname='LOAD_FAST_BORROW', arg=0, argval='i', argrepr='i', offset=256, start_offset=256, starts_line=True, line_number=25),

0 commit comments

Comments
 (0)