| [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-old | |
| 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-old | |
| 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-old | |
| *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-old | |
| 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: Invalid delete target | |
| [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-old | |
| 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-old | |
| 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-old | |
| 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-old | |
| 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-old | |
| 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 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, [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 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, [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']?)) |