3.7 testtrue with asserts

This commit is contained in:
rocky
2020-01-10 14:04:47 -05:00
parent fd2b551661
commit d1bc30e2f1

View File

@@ -2,12 +2,14 @@
def testtrue(self, lhs, n, rule, ast, tokens, first, last):
# FIXME: make this work for all versions
if self.version < 3.7:
if self.version != 3.7:
return False
if rule == ("testtrue", ("expr", "jmp_true")):
pjit = tokens[min(last-1, n-2)]
# If we have a backwards (looping) jump then this is
# really a testfalse
return (pjit == "POP_JUMP_IF_TRUE" and
tokens[first].off2int() > pjit.attr)
if (pjit == "POP_JUMP_IF_TRUE" and
tokens[first].off2int() > pjit.attr):
assert_next = tokens[min(last+1, n-1)]
return assert_next != "RAISE_VARARGS_1"
return False