diff --git a/uncompyle6/parsers/parse36.py b/uncompyle6/parsers/parse36.py index 96a6a376..f87da84b 100644 --- a/uncompyle6/parsers/parse36.py +++ b/uncompyle6/parsers/parse36.py @@ -33,10 +33,6 @@ class Python36Parser(Python35Parser): """ sstmt ::= sstmt RETURN_LAST - cf_for_iter ::= _come_froms FOR_ITER - list_for ::= expr cf_for_iter store list_iter jb_or_c - genexpr_func ::= LOAD_FAST cf_for_iter store comp_iter JUMP_BACK - # 3.6 redoes how return_closure works. FIXME: Isolate to LOAD_CLOSURE return_closure ::= LOAD_CLOSURE DUP_TOP STORE_NAME RETURN_VALUE RETURN_LAST diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index a9d8d8af..9eeabc7c 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -816,7 +816,8 @@ class Scanner3(Scanner): # Fix up grammar so we don't need to do this. # See cf_for_iter use in parser36.py self.fixed_jumps[offset] = match[-1] - else: + elif target > offset: + # Right now we only add COME_FROMs in forward (not loop) jumps self.fixed_jumps[offset] = target return # op == POP_JUMP_IF_TRUE