Source

astoptimizer / NOTES

Cannot be optimized
===================

 - x + 0.
   Example: 'abc' + 0 raises a TypeError.
 - x * 0 or x * 1.
   Example: 5*0=0, 'abc'*0=''.
 - x and True, x and False, x or True, x or False.
   Example: '' and True='', 'abc' and True=True.
 - "def f(): if 0: yield", without the yield, the function is no more
   a generator.
 - x in {1, 2} => x in frozenset({1, 2}), cannot be done in AST.
   AST cannot easily create constant frozenset. "frozenset" may be
   shadowed at runtime.