You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
Fix bug in 3.7 chained comparison semantic action
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
test/bytecode_3.7_run/01_triple_compare.pyc
Normal file
BIN
test/bytecode_3.7_run/01_triple_compare.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_3.8_run/01_triple_compare.pyc
Normal file
BIN
test/bytecode_3.8_run/01_triple_compare.pyc
Normal file
Binary file not shown.
@@ -14,3 +14,23 @@ def _is_valid_netmask(netmask):
|
|||||||
|
|
||||||
# See in 2.6.9 quopri.py ishex():
|
# See in 2.6.9 quopri.py ishex():
|
||||||
assert not '0' <= __file__ <= '9' or 'a' <= __file__ <= 'f' or 'A' <= __file__ <= 'F'
|
assert not '0' <= __file__ <= '9' or 'a' <= __file__ <= 'f' or 'A' <= __file__ <= 'F'
|
||||||
|
|
||||||
|
# From 3.7 bug-grammar.py
|
||||||
|
|
||||||
|
# Bug in 3.7 was handling the last line where compare_chained -> compare_chained37 and
|
||||||
|
# therefore compare_chained has one child, not two as it normally does.
|
||||||
|
|
||||||
|
def test_comparison():
|
||||||
|
### comparison: expr (comp_op expr)*
|
||||||
|
### comp_op: '<'|'>'|'=='|'>='|'<='|'!='|'in'|'not' 'in'|'is'|'is' 'not'
|
||||||
|
if 1: pass
|
||||||
|
x = (1 == 1)
|
||||||
|
if 1 == 1: pass
|
||||||
|
if 1 != 1: pass
|
||||||
|
if 1 < 1: pass
|
||||||
|
if 1 > 1: pass
|
||||||
|
if 1 <= 1: pass
|
||||||
|
if 1 >= 1: pass
|
||||||
|
if 1 in (): pass
|
||||||
|
if 1 not in (): pass
|
||||||
|
if 1 < 1 > 1 == 1 >= 1 <= 1 != 1 in 1 not in 1 is 1 is not 1: pass
|
||||||
|
@@ -276,6 +276,13 @@ def customize_for_version37(self, version):
|
|||||||
|
|
||||||
self.n_call = n_call
|
self.n_call = n_call
|
||||||
|
|
||||||
|
def n_compare_chained(node):
|
||||||
|
if node[0] == "compare_chained37":
|
||||||
|
self.default(node[0])
|
||||||
|
else:
|
||||||
|
self.default(node)
|
||||||
|
self.n_compare_chained = n_compare_chained
|
||||||
|
|
||||||
def n_importlist37(node):
|
def n_importlist37(node):
|
||||||
if len(node) == 1:
|
if len(node) == 1:
|
||||||
self.default(node)
|
self.default(node)
|
||||||
|
Reference in New Issue
Block a user