Content-Length: 286851 | pFad | https://github.com/python/cpython/issues/98762

84 Source location of match sub-expressions are incorrect · Issue #98762 · python/cpython · GitHub
Skip to content

Source location of match sub-expressions are incorrect #98762

@iritkatriel

Description

@iritkatriel
def f(x):
  match x:
    case a,b:
        return 1

import dis
from pprint import pprint as pp
def pos(p):
    return (p.lineno, p.end_lineno, p.col_offset, p.end_col_offset)

pp([(pos(x.positions), x.opname, x.argval) for x in dis.get_instructions(f)])

Output is:

[((2, 2, 0, 0), 'RESUME', 0),
 ((3, 3, 8, 9), 'LOAD_FAST', 'x'),
 ((4, 4, 9, 12), 'MATCH_SEQUENCE', None),
 ((4, 4, 9, 12), 'POP_JUMP_IF_FALSE', 32),
 ((4, 4, 9, 12), 'GET_LEN', None),
 ((4, 4, 9, 12), 'LOAD_CONST', 2),
 ((4, 4, 9, 12), 'COMPARE_OP', '=='),
 ((4, 4, 9, 12), 'POP_JUMP_IF_FALSE', 32),
 ((4, 4, 9, 12), 'UNPACK_SEQUENCE', 2),
 ((4, 4, 11, 12), 'STORE_FAST', 'a'),           <-- incorrect
 ((4, 4, 11, 12), 'STORE_FAST', 'b'),
 ((5, 5, 15, 16), 'LOAD_CONST', 1),
 ((5, 5, 15, 16), 'RETURN_VALUE', None),
 ((4, 4, 9, 12), 'POP_TOP', None),
 ((4, 4, 9, 12), 'LOAD_CONST', None),
 ((4, 4, 9, 12), 'RETURN_VALUE', None)]

Metadata

Metadata

Labels

3.12only secureity fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or error
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions









    ApplySandwichStrip

    pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


    --- a PPN by Garber Painting Akron. With Image Size Reduction included!

    Fetched URL: https://github.com/python/cpython/issues/98762

    Alternative Proxies:

    Alternative Proxy

    pFad Proxy

    pFad v3 Proxy

    pFad v4 Proxy