New issue 2916: py3.6 variable annotation breaks ternary expression https://bitbucket.org/pypy/pypy/issues/2916/py36-variable-annotation-breaks-ternary
Ryan Hileman: `var: bool = True if False else False` In python3.6, this sets `var` to `False`. In pypy's py3.6 branch, it sets `var` to `(True, False, False)`. Seems like a parsing or AST error. pypy3: ``` 2 0 LOAD_CONST 1 ((True, False, False)) 2 STORE_FAST 0 (var) 4 LOAD_CONST 0 (None) 6 RETURN_VALUE ``` python3.7: ``` 2 0 LOAD_CONST 1 (False) 2 POP_JUMP_IF_FALSE 8 4 LOAD_CONST 2 (True) 6 JUMP_FORWARD 2 (to 10) >> 8 LOAD_CONST 1 (False) >> 10 STORE_FAST 0 (var) 12 LOAD_CONST 0 (None) 14 RETURN_VALUE ``` Is this a bug in constant folding? This works as expected: ``` var: bool var = True if False else False ``` _______________________________________________ pypy-issue mailing list pypy-issue@python.org https://mail.python.org/mailman/listinfo/pypy-issue