blob: c143805f4564d139b55513c40edbd6737578bab7 [file] [log] [blame] [edit]
[case testReturn]
def f(x): return x
def g(): return
[out]
MypyFile:1(
FuncDef:1(
f
Args(
Var(x))
Block:1(
ReturnStmt:1(
NameExpr(x [l]))))
FuncDef:2(
g
Block:2(
ReturnStmt:2())))
[case testRaise]
raise object()
[out]
MypyFile:1(
RaiseStmt:1(
CallExpr:1(
NameExpr(object [builtins.object])
Args())))
[case testYield]
def f(): yield f
[out]
MypyFile:1(
FuncDef:1(
f
Generator
Block:1(
ExpressionStmt:1(
YieldExpr:1(
NameExpr(f [__main__.f]))))))
[case testAssert]
assert object
[out]
MypyFile:1(
AssertStmt:1(
NameExpr(object [builtins.object])))
[case testOperatorAssignment]
x = y = 1
x += y
y |= x
[out]
MypyFile:1(
AssignmentStmt:1(
Lvalues(
NameExpr(x* [__main__.x])
NameExpr(y* [__main__.y]))
IntExpr(1))
OperatorAssignmentStmt:2(
+
NameExpr(x [__main__.x])
NameExpr(y [__main__.y]))
OperatorAssignmentStmt:3(
|
NameExpr(y [__main__.y])
NameExpr(x [__main__.x])))
[case testWhile]
x = y = 1
while x:
y
[out]
MypyFile:1(
AssignmentStmt:1(
Lvalues(
NameExpr(x* [__main__.x])
NameExpr(y* [__main__.y]))
IntExpr(1))
WhileStmt:2(
NameExpr(x [__main__.x])
Block:3(
ExpressionStmt:3(
NameExpr(y [__main__.y])))))
[case testFor]
for x in object:
x
[out]
MypyFile:1(
ForStmt:1(
NameExpr(x* [__main__.x])
NameExpr(object [builtins.object])
Block:2(
ExpressionStmt:2(
NameExpr(x [__main__.x])))))
[case testForInFunction]
def f():
for x in f:
x
[out]
MypyFile:1(
FuncDef:1(
f
Block:2(
ForStmt:2(
NameExpr(x* [l])
NameExpr(f [__main__.f])
Block:3(
ExpressionStmt:3(
NameExpr(x [l])))))))
[case testMultipleForIndexVars]
for x, y in []:
x, y
[out]
MypyFile:1(
ForStmt:1(
TupleExpr:1(
NameExpr(x* [__main__.x])
NameExpr(y* [__main__.y]))
ListExpr:1()
Block:2(
ExpressionStmt:2(
TupleExpr:2(
NameExpr(x [__main__.x])
NameExpr(y [__main__.y]))))))
[case testForIndexVarScope]
for x in []:
pass
x
[out]
MypyFile:1(
ForStmt:1(
NameExpr(x* [__main__.x])
ListExpr:1()
Block:2(
PassStmt:2()))
ExpressionStmt:3(
NameExpr(x [__main__.x])))
[case testForIndexVarScope2]
def f():
for x in []:
pass
x
[out]
MypyFile:1(
FuncDef:1(
f
Block:2(
ForStmt:2(
NameExpr(x* [l])
ListExpr:2()
Block:3(
PassStmt:3()))
ExpressionStmt:4(
NameExpr(x [l])))))
[case testReusingForLoopIndexVariable]
# flags: --allow-redefinition
for x in None:
pass
for x in None:
pass
[out]
MypyFile:1(
ForStmt:2(
NameExpr(x'* [__main__.x'])
NameExpr(None [builtins.None])
Block:3(
PassStmt:3()))
ForStmt:4(
NameExpr(x* [__main__.x])
NameExpr(None [builtins.None])
Block:5(
PassStmt:5())))
[case testReusingForLoopIndexVariable2]
# flags: --allow-redefinition
def f():
for x in None:
pass
for x in None:
pass
[out]
MypyFile:1(
FuncDef:2(
f
Block:3(
ForStmt:3(
NameExpr(x* [l])
NameExpr(None [builtins.None])
Block:4(
PassStmt:4()))
ForStmt:5(
NameExpr(x'* [l])
NameExpr(None [builtins.None])
Block:6(
PassStmt:6())))))
[case testLoopWithElse]
for x in []:
pass
else:
x
while 1:
pass
else:
x
[out]
MypyFile:1(
ForStmt:1(
NameExpr(x* [__main__.x])
ListExpr:1()
Block:2(
PassStmt:2())
Else(
ExpressionStmt:4(
NameExpr(x [__main__.x]))))
WhileStmt:5(
IntExpr(1)
Block:6(
PassStmt:6())
Else(
ExpressionStmt:8(
NameExpr(x [__main__.x])))))
[case testBreak]
while 1:
break
for x in []:
break
[out]
MypyFile:1(
WhileStmt:1(
IntExpr(1)
Block:2(
BreakStmt:2()))
ForStmt:3(
NameExpr(x* [__main__.x])
ListExpr:3()
Block:4(
BreakStmt:4())))
[case testContinue]
while 1:
continue
for x in []:
continue
[out]
MypyFile:1(
WhileStmt:1(
IntExpr(1)
Block:2(
ContinueStmt:2()))
ForStmt:3(
NameExpr(x* [__main__.x])
ListExpr:3()
Block:4(
ContinueStmt:4())))
[case testIf]
x = 1
if x:
x
elif x:
x
elif x:
x
else:
x
[out]
MypyFile:1(
AssignmentStmt:1(
NameExpr(x [__main__.x])
IntExpr(1)
builtins.int)
IfStmt:2(
If(
NameExpr(x [__main__.x]))
Then(
ExpressionStmt:3(
NameExpr(x [__main__.x])))
Else(
IfStmt:4(
If(
NameExpr(x [__main__.x]))
Then(
ExpressionStmt:5(
NameExpr(x [__main__.x])))
Else(
IfStmt:6(
If(
NameExpr(x [__main__.x]))
Then(
ExpressionStmt:7(
NameExpr(x [__main__.x])))
Else(
ExpressionStmt:9(
NameExpr(x [__main__.x])))))))))
[case testSimpleIf]
if object:
object
[out]
MypyFile:1(
IfStmt:1(
If(
NameExpr(object [builtins.object]))
Then(
ExpressionStmt:2(
NameExpr(object [builtins.object])))))
[case testLvalues]
x = y = 1
xx = 1
x.m = 1
x[y] = 1
x2, y2 = 1
[x3, y3] = 1
(x4, y4) = 1
[out]
MypyFile:1(
AssignmentStmt:1(
Lvalues(
NameExpr(x* [__main__.x])
NameExpr(y* [__main__.y]))
IntExpr(1))
AssignmentStmt:2(
NameExpr(xx [__main__.xx])
IntExpr(1)
builtins.int)
AssignmentStmt:3(
MemberExpr:3(
NameExpr(x [__main__.x])
m)
IntExpr(1))
AssignmentStmt:4(
IndexExpr:4(
NameExpr(x [__main__.x])
NameExpr(y [__main__.y]))
IntExpr(1))
AssignmentStmt:5(
TupleExpr:5(
NameExpr(x2* [__main__.x2])
NameExpr(y2* [__main__.y2]))
IntExpr(1))
AssignmentStmt:6(
TupleExpr:6(
NameExpr(x3* [__main__.x3])
NameExpr(y3* [__main__.y3]))
IntExpr(1))
AssignmentStmt:7(
TupleExpr:7(
NameExpr(x4* [__main__.x4])
NameExpr(y4* [__main__.y4]))
IntExpr(1)))
[case testStarLvalues]
# flags: --allow-redefinition
*x, y = 1
*x, (y, *z) = 1
*(x, q), r = 1
[out]
MypyFile:1(
AssignmentStmt:2(
TupleExpr:2(
StarExpr:2(
NameExpr(x'* [__main__.x']))
NameExpr(y'* [__main__.y']))
IntExpr(1))
AssignmentStmt:3(
TupleExpr:3(
StarExpr:3(
NameExpr(x''* [__main__.x'']))
TupleExpr:3(
NameExpr(y* [__main__.y])
StarExpr:3(
NameExpr(z* [__main__.z]))))
IntExpr(1))
AssignmentStmt:4(
TupleExpr:4(
StarExpr:4(
TupleExpr:4(
NameExpr(x* [__main__.x])
NameExpr(q* [__main__.q])))
NameExpr(r* [__main__.r]))
IntExpr(1)))
[case testMultipleDefinition]
# flags: --allow-redefinition
x, y = 1
x, y = 2
[out]
MypyFile:1(
AssignmentStmt:2(
TupleExpr:2(
NameExpr(x'* [__main__.x'])
NameExpr(y'* [__main__.y']))
IntExpr(1))
AssignmentStmt:3(
TupleExpr:3(
NameExpr(x* [__main__.x])
NameExpr(y* [__main__.y]))
IntExpr(2)))
[case testComplexDefinitions]
(x) = 1
([y]) = 2
[out]
MypyFile:1(
AssignmentStmt:1(
NameExpr(x [__main__.x])
IntExpr(1)
builtins.int)
AssignmentStmt:2(
TupleExpr:2(
NameExpr(y* [__main__.y]))
IntExpr(2)))
[case testLocalComplexDefinition]
def f():
(x) = 1
x
[out]
MypyFile:1(
FuncDef:1(
f
Block:2(
AssignmentStmt:2(
NameExpr(x* [l])
IntExpr(1))
ExpressionStmt:3(
NameExpr(x [l])))))
[case testMultipleDefOnlySomeNew]
x = 1
y, x = 1
[out]
MypyFile:1(
AssignmentStmt:1(
NameExpr(x [__main__.x])
IntExpr(1)
builtins.int)
AssignmentStmt:2(
TupleExpr:2(
NameExpr(y* [__main__.y])
NameExpr(x [__main__.x]))
IntExpr(1)))
[case testMultipleDefOnlySomeNewNestedTuples]
x = 1
y, (x, z) = 1
[out]
MypyFile:1(
AssignmentStmt:1(
NameExpr(x [__main__.x])
IntExpr(1)
builtins.int)
AssignmentStmt:2(
TupleExpr:2(
NameExpr(y* [__main__.y])
TupleExpr:2(
NameExpr(x [__main__.x])
NameExpr(z* [__main__.z])))
IntExpr(1)))
[case testMultipleDefOnlySomeNewNestedLists]
x = 1
if x:
y, [x, z] = 1
[p, [x, r]] = 1
[out]
MypyFile:1(
AssignmentStmt:1(
NameExpr(x [__main__.x])
IntExpr(1)
builtins.int)
IfStmt:2(
If(
NameExpr(x [__main__.x]))
Then(
AssignmentStmt:3(
TupleExpr:3(
NameExpr(y* [__main__.y])
TupleExpr:3(
NameExpr(x [__main__.x])
NameExpr(z* [__main__.z])))
IntExpr(1))
AssignmentStmt:4(
TupleExpr:4(
NameExpr(p* [__main__.p])
TupleExpr:4(
NameExpr(x [__main__.x])
NameExpr(r* [__main__.r])))
IntExpr(1)))))
[case testIndexedDel]
x = y = 1
del x[y]
[out]
MypyFile:1(
AssignmentStmt:1(
Lvalues(
NameExpr(x* [__main__.x])
NameExpr(y* [__main__.y]))
IntExpr(1))
DelStmt:2(
IndexExpr:2(
NameExpr(x [__main__.x])
NameExpr(y [__main__.y]))))
[case testDelGlobalName]
x = 1
del x
[out]
MypyFile:1(
AssignmentStmt:1(
NameExpr(x [__main__.x])
IntExpr(1)
builtins.int)
DelStmt:2(
NameExpr(x [__main__.x])))
[case testDelLocalName]
def f(x):
del x
[out]
MypyFile:1(
FuncDef:1(
f
Args(
Var(x))
Block:2(
DelStmt:2(
NameExpr(x [l])))))
[case testDelMultipleThings]
def f(x, y):
del x, y[0]
[out]
MypyFile:1(
FuncDef:1(
f
Args(
Var(x)
Var(y))
Block:2(
DelStmt:2(
TupleExpr:2(
NameExpr(x [l])
IndexExpr:2(
NameExpr(y [l])
IntExpr(0)))))))
[case testDelMultipleThingsInvalid]
def f(x, y) -> None:
del x, y + 1
[out]
main:2: error: cannot delete operator
[out version>=3.10]
main:2: error: cannot delete expression
[case testTry]
class c: pass
try:
c
except object:
c
except c as e:
e
except:
c
finally:
c
[out]
MypyFile:1(
ClassDef:1(
c
PassStmt:1())
TryStmt:2(
Block:3(
ExpressionStmt:3(
NameExpr(c [__main__.c])))
NameExpr(object [builtins.object])
Block:5(
ExpressionStmt:5(
NameExpr(c [__main__.c])))
NameExpr(c [__main__.c])
NameExpr(e* [__main__.e])
Block:7(
ExpressionStmt:7(
NameExpr(e [__main__.e])))
Block:9(
ExpressionStmt:9(
NameExpr(c [__main__.c])))
Finally(
ExpressionStmt:11(
NameExpr(c [__main__.c])))))
[case testTryElse]
try:
pass
except:
pass
else:
object
[out]
MypyFile:1(
TryStmt:1(
Block:2(
PassStmt:2())
Block:4(
PassStmt:4())
Else(
ExpressionStmt:6(
NameExpr(object [builtins.object])))))
[case testTryWithOnlyFinally]
try:
pass
finally:
pass
[out]
MypyFile:1(
TryStmt:1(
Block:2(
PassStmt:2())
Finally(
PassStmt:4())))
[case testExceptWithMultipleTypes]
class c: pass
try:
pass
except (c, object) as e:
e
[out]
MypyFile:1(
ClassDef:1(
c
PassStmt:1())
TryStmt:2(
Block:3(
PassStmt:3())
TupleExpr:4(
NameExpr(c [__main__.c])
NameExpr(object [builtins.object]))
NameExpr(e* [__main__.e])
Block:5(
ExpressionStmt:5(
NameExpr(e [__main__.e])))))
[case testRaiseWithoutExpr]
raise
[out]
MypyFile:1(
RaiseStmt:1())
[case testWith]
with object:
object
[out]
MypyFile:1(
WithStmt:1(
Expr(
NameExpr(object [builtins.object]))
Block:2(
ExpressionStmt:2(
NameExpr(object [builtins.object])))))
[case testWithAndVariable]
with object as x:
x
[out]
MypyFile:1(
WithStmt:1(
Expr(
NameExpr(object [builtins.object]))
Target(
NameExpr(x* [__main__.x]))
Block:2(
ExpressionStmt:2(
NameExpr(x [__main__.x])))))
[case testWithInFunction]
def f():
with f as x:
x
[out]
MypyFile:1(
FuncDef:1(
f
Block:2(
WithStmt:2(
Expr(
NameExpr(f [__main__.f]))
Target(
NameExpr(x* [l]))
Block:3(
ExpressionStmt:3(
NameExpr(x [l])))))))
[case testComplexWith]
with object, object:
pass
with object as a, object as b:
pass
[out]
MypyFile:1(
WithStmt:1(
Expr(
NameExpr(object [builtins.object]))
Expr(
NameExpr(object [builtins.object]))
Block:2(
PassStmt:2()))
WithStmt:3(
Expr(
NameExpr(object [builtins.object]))
Target(
NameExpr(a* [__main__.a]))
Expr(
NameExpr(object [builtins.object]))
Target(
NameExpr(b* [__main__.b]))
Block:4(
PassStmt:4())))
[case testVariableInBlock]
while object:
x = None
if x:
x = x
[out]
MypyFile:1(
WhileStmt:1(
NameExpr(object [builtins.object])
Block:2(
AssignmentStmt:2(
NameExpr(x* [__main__.x])
NameExpr(None [builtins.None]))
IfStmt:3(
If(
NameExpr(x [__main__.x]))
Then(
AssignmentStmt:4(
NameExpr(x [__main__.x])
NameExpr(x [__main__.x])))))))
[case testVariableInExceptHandler]
try:
pass
except object as o:
x = None
o = x
[out]
MypyFile:1(
TryStmt:1(
Block:2(
PassStmt:2())
NameExpr(object [builtins.object])
NameExpr(o* [__main__.o])
Block:4(
AssignmentStmt:4(
NameExpr(x* [__main__.x])
NameExpr(None [builtins.None]))
AssignmentStmt:5(
NameExpr(o [__main__.o])
NameExpr(x [__main__.x])))))
[case testCallInExceptHandler]
try:
pass
except object as o:
o = object()
[out]
MypyFile:1(
TryStmt:1(
Block:2(
PassStmt:2())
NameExpr(object [builtins.object])
NameExpr(o* [__main__.o])
Block:4(
AssignmentStmt:4(
NameExpr(o [__main__.o])
CallExpr:4(
NameExpr(object [builtins.object])
Args())))))
[case testTryExceptWithMultipleHandlers]
class Err(BaseException): pass
try:
pass
except BaseException as e:
pass
except Err as f:
f = BaseException() # Fail
f = Err()
[builtins fixtures/exception.pyi]
[out]
MypyFile:1(
ClassDef:1(
Err
BaseType(
builtins.BaseException)
PassStmt:1())
TryStmt:2(
Block:3(
PassStmt:3())
NameExpr(BaseException [builtins.BaseException])
NameExpr(e* [__main__.e])
Block:5(
PassStmt:5())
NameExpr(Err [__main__.Err])
NameExpr(f* [__main__.f])
Block:7(
AssignmentStmt:7(
NameExpr(f [__main__.f])
CallExpr:7(
NameExpr(BaseException [builtins.BaseException])
Args()))
AssignmentStmt:8(
NameExpr(f [__main__.f])
CallExpr:8(
NameExpr(Err [__main__.Err])
Args())))))
[case testMultipleAssignmentWithPartialNewDef]
# flags: --allow-redefinition
o = None
x, o = o, o
[out]
MypyFile:1(
AssignmentStmt:2(
NameExpr(o'* [__main__.o'])
NameExpr(None [builtins.None]))
AssignmentStmt:3(
TupleExpr:3(
NameExpr(x* [__main__.x])
NameExpr(o* [__main__.o]))
TupleExpr:3(
NameExpr(o' [__main__.o'])
NameExpr(o' [__main__.o']))))
[case testFunctionDecorator]
def decorate(f): pass
@decorate
def g():
g()
[out]
MypyFile:1(
FuncDef:1(
decorate
Args(
Var(f))
Block:1(
PassStmt:1()))
Decorator:2(
Var(g)
NameExpr(decorate [__main__.decorate])
FuncDef:3(
g
Block:4(
ExpressionStmt:4(
CallExpr:4(
NameExpr(g [__main__.g])
Args()))))))
[case testTryWithinFunction]
def f() -> None:
try:
pass
except object as o:
pass
[out]
MypyFile:1(
FuncDef:1(
f
def ()
Block:2(
TryStmt:2(
Block:3(
PassStmt:3())
NameExpr(object [builtins.object])
NameExpr(o* [l])
Block:5(
PassStmt:5())))))
[case testReuseExceptionVariable]
def f() -> None:
try:
pass
except object as o:
pass
except object as o:
pass
[out]
MypyFile:1(
FuncDef:1(
f
def ()
Block:2(
TryStmt:2(
Block:3(
PassStmt:3())
NameExpr(object [builtins.object])
NameExpr(o* [l])
Block:5(
PassStmt:5())
NameExpr(object [builtins.object])
NameExpr(o [l])
Block:7(
PassStmt:7())))))
[case testWithMultiple]
def f(a):
pass
def main():
with f(0) as a, f(a) as b:
x = a, b
[out]
MypyFile:1(
FuncDef:1(
f
Args(
Var(a))
Block:2(
PassStmt:2()))
FuncDef:3(
main
Block:4(
WithStmt:4(
Expr(
CallExpr:4(
NameExpr(f [__main__.f])
Args(
IntExpr(0))))
Target(
NameExpr(a* [l]))
Expr(
CallExpr:4(
NameExpr(f [__main__.f])
Args(
NameExpr(a [l]))))
Target(
NameExpr(b* [l]))
Block:5(
AssignmentStmt:5(
NameExpr(x* [l])
TupleExpr:5(
NameExpr(a [l])
NameExpr(b [l]))))))))
[case testRenameGlobalVariable]
# flags: --allow-redefinition
def f(a): pass
x = 0
f(x)
x = ''
f(x)
[out]
MypyFile:1(
FuncDef:2(
f
Args(
Var(a))
Block:2(
PassStmt:2()))
AssignmentStmt:3(
NameExpr(x' [__main__.x'])
IntExpr(0)
builtins.int)
ExpressionStmt:4(
CallExpr:4(
NameExpr(f [__main__.f])
Args(
NameExpr(x' [__main__.x']))))
AssignmentStmt:5(
NameExpr(x [__main__.x])
StrExpr()
builtins.str)
ExpressionStmt:6(
CallExpr:6(
NameExpr(f [__main__.f])
Args(
NameExpr(x [__main__.x])))))
[case testNoRenameGlobalVariable]
# flags: --disallow-redefinition
def f(a): pass
x = 0
f(x)
x = ''
f(x)
[out]
MypyFile:1(
FuncDef:2(
f
Args(
Var(a))
Block:2(
PassStmt:2()))
AssignmentStmt:3(
NameExpr(x [__main__.x])
IntExpr(0)
builtins.int)
ExpressionStmt:4(
CallExpr:4(
NameExpr(f [__main__.f])
Args(
NameExpr(x [__main__.x]))))
AssignmentStmt:5(
NameExpr(x [__main__.x])
StrExpr())
ExpressionStmt:6(
CallExpr:6(
NameExpr(f [__main__.f])
Args(
NameExpr(x [__main__.x])))))
[case testRenameLocalVariable]
# flags: --allow-redefinition
def f(a):
f(a)
a = ''
f(a)
[out]
MypyFile:1(
FuncDef:2(
f
Args(
Var(a))
Block:3(
ExpressionStmt:3(
CallExpr:3(
NameExpr(f [__main__.f])
Args(
NameExpr(a [l]))))
AssignmentStmt:4(
NameExpr(a'* [l])
StrExpr())
ExpressionStmt:5(
CallExpr:5(
NameExpr(f [__main__.f])
Args(
NameExpr(a' [l])))))))
[case testCannotRenameExternalVarWithinClass]
# flags: --allow-redefinition
x = 0
x
class A:
x = 1
x = ''
[out]
MypyFile:1(
AssignmentStmt:2(
NameExpr(x [__main__.x])
IntExpr(0)
builtins.int)
ExpressionStmt:3(
NameExpr(x [__main__.x]))
ClassDef:4(
A
AssignmentStmt:5(
NameExpr(x [m])
IntExpr(1)
builtins.int))
AssignmentStmt:6(
NameExpr(x [__main__.x])
StrExpr()))
[case testSimpleWithRenaming]
with 0 as y:
z = y
with 1 as y:
y = 1
[out]
MypyFile:1(
WithStmt:1(
Expr(
IntExpr(0))
Target(
NameExpr(y'* [__main__.y']))
Block:2(
AssignmentStmt:2(
NameExpr(z* [__main__.z])
NameExpr(y' [__main__.y']))))
WithStmt:3(
Expr(
IntExpr(1))
Target(
NameExpr(y* [__main__.y]))
Block:4(
AssignmentStmt:4(
NameExpr(y [__main__.y])
IntExpr(1)))))
[case testSimpleWithRenamingFailure]
with 0 as y:
z = y
zz = y
with 1 as y:
y = 1
[out]
MypyFile:1(
WithStmt:1(
Expr(
IntExpr(0))
Target(
NameExpr(y* [__main__.y]))
Block:2(
AssignmentStmt:2(
NameExpr(z* [__main__.z])
NameExpr(y [__main__.y]))))
AssignmentStmt:3(
NameExpr(zz* [__main__.zz])
NameExpr(y [__main__.y]))
WithStmt:4(
Expr(
IntExpr(1))
Target(
NameExpr(y [__main__.y]))
Block:5(
AssignmentStmt:5(
NameExpr(y [__main__.y])
IntExpr(1)))))
[case testConstantFold1]
from typing_extensions import Final
add: Final = 15 + 47
add_mul: Final = (2 + 3) * 5
sub: Final = 7 - 11
bit_and: Final = 6 & 10
bit_or: Final = 6 | 10
bit_xor: Final = 6 ^ 10
lshift: Final = 5 << 2
rshift: Final = 13 >> 2
lshift0: Final = 5 << 0
rshift0: Final = 13 >> 0
[out]
MypyFile:1(
ImportFrom:1(typing_extensions, [Final])
AssignmentStmt:2(
NameExpr(add [__main__.add] = 62)
OpExpr:2(
+
IntExpr(15)
IntExpr(47))
Literal[62]?)
AssignmentStmt:3(
NameExpr(add_mul [__main__.add_mul] = 25)
OpExpr:3(
*
OpExpr:3(
+
IntExpr(2)
IntExpr(3))
IntExpr(5))
Literal[25]?)
AssignmentStmt:4(
NameExpr(sub [__main__.sub] = -4)
OpExpr:4(
-
IntExpr(7)
IntExpr(11))
Literal[-4]?)
AssignmentStmt:5(
NameExpr(bit_and [__main__.bit_and] = 2)
OpExpr:5(
&
IntExpr(6)
IntExpr(10))
Literal[2]?)
AssignmentStmt:6(
NameExpr(bit_or [__main__.bit_or] = 14)
OpExpr:6(
|
IntExpr(6)
IntExpr(10))
Literal[14]?)
AssignmentStmt:7(
NameExpr(bit_xor [__main__.bit_xor] = 12)
OpExpr:7(
^
IntExpr(6)
IntExpr(10))
Literal[12]?)
AssignmentStmt:8(
NameExpr(lshift [__main__.lshift] = 20)
OpExpr:8(
<<
IntExpr(5)
IntExpr(2))
Literal[20]?)
AssignmentStmt:9(
NameExpr(rshift [__main__.rshift] = 3)
OpExpr:9(
>>
IntExpr(13)
IntExpr(2))
Literal[3]?)
AssignmentStmt:10(
NameExpr(lshift0 [__main__.lshift0] = 5)
OpExpr:10(
<<
IntExpr(5)
IntExpr(0))
Literal[5]?)
AssignmentStmt:11(
NameExpr(rshift0 [__main__.rshift0] = 13)
OpExpr:11(
>>
IntExpr(13)
IntExpr(0))
Literal[13]?))
[case testConstantFold2]
from typing_extensions import Final
neg1: Final = -5
neg2: Final = --1
neg3: Final = -0
pos: Final = +5
inverted1: Final = ~0
inverted2: Final = ~5
inverted3: Final = ~3
p0: Final = 3**0
p1: Final = 3**5
p2: Final = (-5)**3
p3: Final = 0**0
s: Final = 'x' + 'y'
[out]
MypyFile:1(
ImportFrom:1(typing_extensions, [Final])
AssignmentStmt:2(
NameExpr(neg1 [__main__.neg1] = -5)
UnaryExpr:2(
-
IntExpr(5))
Literal[-5]?)
AssignmentStmt:3(
NameExpr(neg2 [__main__.neg2] = 1)
UnaryExpr:3(
-
UnaryExpr:3(
-
IntExpr(1)))
Literal[1]?)
AssignmentStmt:4(
NameExpr(neg3 [__main__.neg3] = 0)
UnaryExpr:4(
-
IntExpr(0))
Literal[0]?)
AssignmentStmt:5(
NameExpr(pos [__main__.pos] = 5)
UnaryExpr:5(
+
IntExpr(5))
Literal[5]?)
AssignmentStmt:6(
NameExpr(inverted1 [__main__.inverted1] = -1)
UnaryExpr:6(
~
IntExpr(0))
Literal[-1]?)
AssignmentStmt:7(
NameExpr(inverted2 [__main__.inverted2] = -6)
UnaryExpr:7(
~
IntExpr(5))
Literal[-6]?)
AssignmentStmt:8(
NameExpr(inverted3 [__main__.inverted3] = -4)
UnaryExpr:8(
~
IntExpr(3))
Literal[-4]?)
AssignmentStmt:9(
NameExpr(p0 [__main__.p0] = 1)
OpExpr:9(
**
IntExpr(3)
IntExpr(0))
Literal[1]?)
AssignmentStmt:10(
NameExpr(p1 [__main__.p1] = 243)
OpExpr:10(
**
IntExpr(3)
IntExpr(5))
Literal[243]?)
AssignmentStmt:11(
NameExpr(p2 [__main__.p2] = -125)
OpExpr:11(
**
UnaryExpr:11(
-
IntExpr(5))
IntExpr(3))
Literal[-125]?)
AssignmentStmt:12(
NameExpr(p3 [__main__.p3] = 1)
OpExpr:12(
**
IntExpr(0)
IntExpr(0))
Literal[1]?)
AssignmentStmt:13(
NameExpr(s [__main__.s] = xy)
OpExpr:13(
+
StrExpr(x)
StrExpr(y))
Literal['xy']?))