1[case testEmptyFile] 2[out] 3MypyFile:1() 4 5[case testGlobalVariable] 6x = 1 7x 8[out] 9MypyFile:1( 10 AssignmentStmt:1( 11 NameExpr(x* [__main__.x]) 12 IntExpr(1)) 13 ExpressionStmt:2( 14 NameExpr(x [__main__.x]))) 15 16[case testMultipleGlobals] 17x = y = 2 18z = 3 19(x, y, z) 20[out] 21MypyFile:1( 22 AssignmentStmt:1( 23 Lvalues( 24 NameExpr(x* [__main__.x]) 25 NameExpr(y* [__main__.y])) 26 IntExpr(2)) 27 AssignmentStmt:2( 28 NameExpr(z* [__main__.z]) 29 IntExpr(3)) 30 ExpressionStmt:3( 31 TupleExpr:3( 32 NameExpr(x [__main__.x]) 33 NameExpr(y [__main__.y]) 34 NameExpr(z [__main__.z])))) 35 36[case testEmptyFunction] 37def f(): pass 38f() 39[out] 40MypyFile:1( 41 FuncDef:1( 42 f 43 Block:1( 44 PassStmt:1())) 45 ExpressionStmt:2( 46 CallExpr:2( 47 NameExpr(f [__main__.f]) 48 Args()))) 49 50[case testAccessingGlobalNameBeforeDefinition] 51x 52f() 53x = 1 54def f(): pass 55[out] 56MypyFile:1( 57 ExpressionStmt:1( 58 NameExpr(x [__main__.x])) 59 ExpressionStmt:2( 60 CallExpr:2( 61 NameExpr(f [__main__.f]) 62 Args())) 63 AssignmentStmt:3( 64 NameExpr(x* [__main__.x]) 65 IntExpr(1)) 66 FuncDef:4( 67 f 68 Block:4( 69 PassStmt:4()))) 70 71[case testFunctionArgs] 72def f(x, y): 73 (x, y) 74[out] 75MypyFile:1( 76 FuncDef:1( 77 f 78 Args( 79 Var(x) 80 Var(y)) 81 Block:1( 82 ExpressionStmt:2( 83 TupleExpr:2( 84 NameExpr(x [l]) 85 NameExpr(y [l])))))) 86 87[case testLocalVar] 88def f(): 89 x = 1 90 x 91[out] 92MypyFile:1( 93 FuncDef:1( 94 f 95 Block:1( 96 AssignmentStmt:2( 97 NameExpr(x* [l]) 98 IntExpr(1)) 99 ExpressionStmt:3( 100 NameExpr(x [l]))))) 101 102[case testAccessGlobalInFn] 103def f(): 104 x 105 g() 106x = 1 107def g(): pass 108[out] 109MypyFile:1( 110 FuncDef:1( 111 f 112 Block:1( 113 ExpressionStmt:2( 114 NameExpr(x [__main__.x])) 115 ExpressionStmt:3( 116 CallExpr:3( 117 NameExpr(g [__main__.g]) 118 Args())))) 119 AssignmentStmt:4( 120 NameExpr(x* [__main__.x]) 121 IntExpr(1)) 122 FuncDef:5( 123 g 124 Block:5( 125 PassStmt:5()))) 126 127[case testAssignmentAfterInit] 128x = 1 129x = 2 130def f(y): 131 y = 1 132 z = 1 133 z = 2 134[out] 135MypyFile:1( 136 AssignmentStmt:1( 137 NameExpr(x* [__main__.x]) 138 IntExpr(1)) 139 AssignmentStmt:2( 140 NameExpr(x [__main__.x]) 141 IntExpr(2)) 142 FuncDef:3( 143 f 144 Args( 145 Var(y)) 146 Block:3( 147 AssignmentStmt:4( 148 NameExpr(y [l]) 149 IntExpr(1)) 150 AssignmentStmt:5( 151 NameExpr(z* [l]) 152 IntExpr(1)) 153 AssignmentStmt:6( 154 NameExpr(z [l]) 155 IntExpr(2))))) 156 157[case testLocalAndGlobalAliasing] 158x = 1 159def f(): 160 x = 2 161 x 162x 163[out] 164MypyFile:1( 165 AssignmentStmt:1( 166 NameExpr(x* [__main__.x]) 167 IntExpr(1)) 168 FuncDef:2( 169 f 170 Block:2( 171 AssignmentStmt:3( 172 NameExpr(x* [l]) 173 IntExpr(2)) 174 ExpressionStmt:4( 175 NameExpr(x [l])))) 176 ExpressionStmt:5( 177 NameExpr(x [__main__.x]))) 178 179[case testArgumentInitializers] 180def f(x = f, y = object): 181 x, y 182[out] 183MypyFile:1( 184 FuncDef:1( 185 f 186 Args( 187 default( 188 Var(x) 189 NameExpr(f [__main__.f])) 190 default( 191 Var(y) 192 NameExpr(object [builtins.object]))) 193 Block:1( 194 ExpressionStmt:2( 195 TupleExpr:2( 196 NameExpr(x [l]) 197 NameExpr(y [l])))))) 198 199[case testVarArgs] 200def f(x, *y): 201 x, y 202[out] 203MypyFile:1( 204 FuncDef:1( 205 f 206 Args( 207 Var(x)) 208 VarArg( 209 Var(y)) 210 Block:1( 211 ExpressionStmt:2( 212 TupleExpr:2( 213 NameExpr(x [l]) 214 NameExpr(y [l])))))) 215 216[case testGlobalDecl] 217x = None 218def f(): 219 global x 220 x = None 221 x 222class A: pass 223[out] 224MypyFile:1( 225 AssignmentStmt:1( 226 NameExpr(x* [__main__.x]) 227 NameExpr(None [builtins.None])) 228 FuncDef:2( 229 f 230 Block:2( 231 GlobalDecl:3( 232 x) 233 AssignmentStmt:4( 234 NameExpr(x [__main__.x]) 235 NameExpr(None [builtins.None])) 236 ExpressionStmt:5( 237 NameExpr(x [__main__.x])))) 238 ClassDef:6( 239 A 240 PassStmt:6())) 241 242[case testMultipleNamesInGlobalDecl] 243x, y = None, None 244def f(): 245 global x, y 246 x = y 247[out] 248MypyFile:1( 249 AssignmentStmt:1( 250 TupleExpr:1( 251 NameExpr(x* [__main__.x]) 252 NameExpr(y* [__main__.y])) 253 TupleExpr:1( 254 NameExpr(None [builtins.None]) 255 NameExpr(None [builtins.None]))) 256 FuncDef:2( 257 f 258 Block:2( 259 GlobalDecl:3( 260 x 261 y) 262 AssignmentStmt:4( 263 NameExpr(x [__main__.x]) 264 NameExpr(y [__main__.y]))))) 265 266[case testGlobalDeclScope] 267x = None 268def f(): 269 global x 270def g(): 271 x = None 272[out] 273MypyFile:1( 274 AssignmentStmt:1( 275 NameExpr(x* [__main__.x]) 276 NameExpr(None [builtins.None])) 277 FuncDef:2( 278 f 279 Block:2( 280 GlobalDecl:3( 281 x))) 282 FuncDef:4( 283 g 284 Block:4( 285 AssignmentStmt:5( 286 NameExpr(x* [l]) 287 NameExpr(None [builtins.None]))))) 288 289[case testGlobalDeclScope] 290x = None 291def f(): 292 global x 293def g(): 294 x = None 295[out] 296MypyFile:1( 297 AssignmentStmt:1( 298 NameExpr(x* [__main__.x]) 299 NameExpr(None [builtins.None])) 300 FuncDef:2( 301 f 302 Block:2( 303 GlobalDecl:3( 304 x))) 305 FuncDef:4( 306 g 307 Block:4( 308 AssignmentStmt:5( 309 NameExpr(x* [l]) 310 NameExpr(None [builtins.None]))))) 311 312[case testGlobaWithinMethod] 313x = None 314class A: 315 def f(self): 316 global x 317 x = self 318[out] 319MypyFile:1( 320 AssignmentStmt:1( 321 NameExpr(x* [__main__.x]) 322 NameExpr(None [builtins.None])) 323 ClassDef:2( 324 A 325 FuncDef:3( 326 f 327 Args( 328 Var(self)) 329 Block:3( 330 GlobalDecl:4( 331 x) 332 AssignmentStmt:5( 333 NameExpr(x [__main__.x]) 334 NameExpr(self [l])))))) 335 336[case testGlobalDefinedInBlock] 337# flags: --allow-redefinition 338if object: 339 x = object() 340 x = x 341x 342[out] 343MypyFile:1( 344 IfStmt:2( 345 If( 346 NameExpr(object [builtins.object])) 347 Then( 348 AssignmentStmt:3( 349 NameExpr(x'* [__main__.x']) 350 CallExpr:3( 351 NameExpr(object [builtins.object]) 352 Args())) 353 AssignmentStmt:4( 354 NameExpr(x* [__main__.x]) 355 NameExpr(x' [__main__.x'])))) 356 ExpressionStmt:5( 357 NameExpr(x [__main__.x]))) 358 359[case testNonlocalDecl] 360def g(): 361 x = None 362 def f(): 363 nonlocal x 364 x = None 365 x 366[out] 367MypyFile:1( 368 FuncDef:1( 369 g 370 Block:1( 371 AssignmentStmt:2( 372 NameExpr(x* [l]) 373 NameExpr(None [builtins.None])) 374 FuncDef:3( 375 f 376 Block:3( 377 NonlocalDecl:4( 378 x) 379 AssignmentStmt:5( 380 NameExpr(x [l]) 381 NameExpr(None [builtins.None])) 382 ExpressionStmt:6( 383 NameExpr(x [l]))))))) 384 385[case testMultipleNamesInNonlocalDecl] 386def g(): 387 x, y = None, None 388 def f(z): 389 nonlocal x, y 390 x = y 391[out] 392MypyFile:1( 393 FuncDef:1( 394 g 395 Block:1( 396 AssignmentStmt:2( 397 TupleExpr:2( 398 NameExpr(x* [l]) 399 NameExpr(y* [l])) 400 TupleExpr:2( 401 NameExpr(None [builtins.None]) 402 NameExpr(None [builtins.None]))) 403 FuncDef:3( 404 f 405 Args( 406 Var(z)) 407 Block:3( 408 NonlocalDecl:4( 409 x 410 y) 411 AssignmentStmt:5( 412 NameExpr(x [l]) 413 NameExpr(y [l]))))))) 414 415[case testNestedFunctions] 416def f(x): 417 def g(y): 418 z = y + x 419 return g 420[out] 421MypyFile:1( 422 FuncDef:1( 423 f 424 Args( 425 Var(x)) 426 Block:1( 427 FuncDef:2( 428 g 429 Args( 430 Var(y)) 431 Block:2( 432 AssignmentStmt:3( 433 NameExpr(z* [l]) 434 OpExpr:3( 435 + 436 NameExpr(y [l]) 437 NameExpr(x [l]))))) 438 ReturnStmt:4( 439 NameExpr(g [l]))))) 440 441[case testNestedFunctionWithOverlappingName] 442def f(x): 443 def g(): 444 x = 1 445[out] 446MypyFile:1( 447 FuncDef:1( 448 f 449 Args( 450 Var(x)) 451 Block:1( 452 FuncDef:2( 453 g 454 Block:2( 455 AssignmentStmt:3( 456 NameExpr(x* [l]) 457 IntExpr(1))))))) 458 459[case testFinalValuesOnVar] 460from typing import Final, Any 461 462def func() -> Any: ... 463x: Final = 1 464y: Final = 1.0 465s: Final = "hi" 466t: Final = True 467n: Final = func() 468[out] 469MypyFile:1( 470 ImportFrom:1(typing, [Final, Any]) 471 FuncDef:3( 472 func 473 def () -> Any 474 Block:3( 475 ExpressionStmt:3( 476 Ellipsis))) 477 AssignmentStmt:4( 478 NameExpr(x* [__main__.x] = 1) 479 IntExpr(1)) 480 AssignmentStmt:5( 481 NameExpr(y* [__main__.y] = 1.0) 482 FloatExpr(1.0)) 483 AssignmentStmt:6( 484 NameExpr(s* [__main__.s] = hi) 485 StrExpr(hi)) 486 AssignmentStmt:7( 487 NameExpr(t* [__main__.t] = True) 488 NameExpr(True [builtins.True])) 489 AssignmentStmt:8( 490 NameExpr(n* [__main__.n] = None) 491 CallExpr:8( 492 NameExpr(func [__main__.func]) 493 Args()))) 494