@@ -2465,6 +2465,7 @@ x: int = C()[0][0]
2465
2465
[out]
2466
2466
2467
2467
[case testForwardTypeAliasInBase2]
2468
+ # flags: --new-semantic-analyzer
2468
2469
from typing import List, Generic, TypeVar, NamedTuple
2469
2470
T = TypeVar('T')
2470
2471
@@ -2475,12 +2476,13 @@ A = G[C]
2475
2476
class B(NamedTuple):
2476
2477
x: int
2477
2478
2478
- C().x
2479
- C()[0]
2479
+ C(1 ).x
2480
+ C(1 )[0]
2480
2481
[builtins fixtures/list.pyi]
2481
2482
[out]
2482
2483
2483
2484
[case testSerializeRecursiveAliases1]
2485
+ # flags: --no-new-semantic-analyzer
2484
2486
from typing import Type, Callable, Union
2485
2487
2486
2488
A = Union[A, int] # type: ignore
@@ -2489,6 +2491,7 @@ C = Type[C] # type: ignore
2489
2491
[out]
2490
2492
2491
2493
[case testSerializeRecursiveAliases2]
2494
+ # flags: --no-new-semantic-analyzer
2492
2495
from typing import Type, Callable, Union
2493
2496
2494
2497
A = Union[B, int] # type: ignore
@@ -2497,6 +2500,7 @@ C = Type[A] # type: ignore
2497
2500
[out]
2498
2501
2499
2502
[case testSerializeRecursiveAliases3]
2503
+ # flags: --no-new-semantic-analyzer
2500
2504
from typing import Type, Callable, Union, NamedTuple
2501
2505
2502
2506
A = Union[B, int] # type: ignore
@@ -2566,6 +2570,7 @@ M = NamedTuple('M', [('x', int)])
2566
2570
[out]
2567
2571
2568
2572
[case testSelfRefNTIncremental1]
2573
+ # flags: --no-new-semantic-analyzer
2569
2574
from typing import Tuple, NamedTuple
2570
2575
2571
2576
Node = NamedTuple('Node', [ # type: ignore
@@ -2576,6 +2581,7 @@ n: Node
2576
2581
[builtins fixtures/tuple.pyi]
2577
2582
2578
2583
[case testSelfRefNTIncremental2]
2584
+ # flags: --no-new-semantic-analyzer
2579
2585
from typing import Tuple, NamedTuple
2580
2586
2581
2587
A = NamedTuple('A', [ # type: ignore
@@ -2590,6 +2596,7 @@ n: A
2590
2596
[builtins fixtures/tuple.pyi]
2591
2597
2592
2598
[case testSelfRefNTIncremental3]
2599
+ # flags: --no-new-semantic-analyzer
2593
2600
from typing import NamedTuple, Tuple
2594
2601
2595
2602
class B(NamedTuple): # type: ignore
@@ -2605,6 +2612,7 @@ lst = [m, n]
2605
2612
[builtins fixtures/tuple.pyi]
2606
2613
2607
2614
[case testSelfRefNTIncremental4]
2615
+ # flags: --no-new-semantic-analyzer
2608
2616
from typing import NamedTuple
2609
2617
2610
2618
class B(NamedTuple): # type: ignore
@@ -2618,6 +2626,7 @@ n: A
2618
2626
[builtins fixtures/tuple.pyi]
2619
2627
2620
2628
[case testSelfRefNTIncremental5]
2629
+ # flags: --no-new-semantic-analyzer
2621
2630
from typing import NamedTuple
2622
2631
2623
2632
B = NamedTuple('B', [ # type: ignore
@@ -3272,6 +3281,7 @@ main:8: error: Revealed type is 'def (x: builtins.str) -> __main__.A@6'
3272
3281
main:8: error: Revealed type is 'def (x: builtins.str) -> __main__.A@6'
3273
3282
3274
3283
[case testAttrsIncrementalConverterInSubmoduleForwardRef]
3284
+ # flags: --no-new-semantic-analyzer
3275
3285
from a.a import A
3276
3286
reveal_type(A)
3277
3287
[file a/__init__.py]
@@ -3289,11 +3299,12 @@ F = List[int]
3289
3299
3290
3300
[builtins fixtures/list.pyi]
3291
3301
[out1]
3292
- main:2 : error: Revealed type is 'def (x: builtins.list[builtins.int]) -> a.a.A'
3302
+ main:3 : error: Revealed type is 'def (x: builtins.list[builtins.int]) -> a.a.A'
3293
3303
[out2]
3294
- main:2 : error: Revealed type is 'def (x: builtins.list[builtins.int]) -> a.a.A'
3304
+ main:3 : error: Revealed type is 'def (x: builtins.list[builtins.int]) -> a.a.A'
3295
3305
3296
3306
[case testAttrsIncrementalConverterType]
3307
+ # flags: --no-new-semantic-analyzer
3297
3308
from a import C
3298
3309
import attr
3299
3310
o = C("1", "2", "3", "4")
@@ -3324,11 +3335,11 @@ class C:
3324
3335
d: int = attr.ib(converter=parse)
3325
3336
[builtins fixtures/attr.pyi]
3326
3337
[out1]
3327
- main:5 : error: Revealed type is 'def (a: Union[builtins.float, builtins.str], b: Union[builtins.str, builtins.bytes, builtins.int], c: builtins.str, d: Union[builtins.int, builtins.str]) -> a.C'
3328
- main:9 : error: Revealed type is 'def (a: Union[builtins.float, builtins.str], b: Union[builtins.str, builtins.bytes, builtins.int], c: builtins.str, d: Union[builtins.int, builtins.str], x: builtins.str) -> __main__.D'
3338
+ main:6 : error: Revealed type is 'def (a: Union[builtins.float, builtins.str], b: Union[builtins.str, builtins.bytes, builtins.int], c: builtins.str, d: Union[builtins.int, builtins.str]) -> a.C'
3339
+ main:10 : error: Revealed type is 'def (a: Union[builtins.float, builtins.str], b: Union[builtins.str, builtins.bytes, builtins.int], c: builtins.str, d: Union[builtins.int, builtins.str], x: builtins.str) -> __main__.D'
3329
3340
[out2]
3330
- main:5 : error: Revealed type is 'def (a: Union[builtins.float, builtins.str], b: Union[builtins.str, builtins.bytes, builtins.int], c: builtins.str, d: Union[builtins.int, builtins.str]) -> a.C'
3331
- main:9 : error: Revealed type is 'def (a: Union[builtins.float, builtins.str], b: Union[builtins.str, builtins.bytes, builtins.int], c: builtins.str, d: Union[builtins.int, builtins.str], x: builtins.str) -> __main__.D'
3341
+ main:6 : error: Revealed type is 'def (a: Union[builtins.float, builtins.str], b: Union[builtins.str, builtins.bytes, builtins.int], c: builtins.str, d: Union[builtins.int, builtins.str]) -> a.C'
3342
+ main:10 : error: Revealed type is 'def (a: Union[builtins.float, builtins.str], b: Union[builtins.str, builtins.bytes, builtins.int], c: builtins.str, d: Union[builtins.int, builtins.str], x: builtins.str) -> __main__.D'
3332
3343
3333
3344
[case testAttrsIncrementalThreeRuns]
3334
3345
from a import A
@@ -4461,6 +4472,7 @@ def outer() -> None:
4461
4472
[out2]
4462
4473
4463
4474
[case testRecursiveAliasImported]
4475
+ # flags: --no-new-semantic-analyzer
4464
4476
import a
4465
4477
[file a.py]
4466
4478
import lib
@@ -4482,7 +4494,38 @@ B = List[A]
4482
4494
[out2]
4483
4495
tmp/a.py:3: error: Revealed type is 'builtins.list[builtins.list[builtins.list[Any]]]'
4484
4496
4497
+ [case testRecursiveAliasImported2]
4498
+ # flags: --new-semantic-analyzer
4499
+ import a
4500
+ [file a.py]
4501
+ import lib
4502
+ x: int
4503
+ [file a.py.2]
4504
+ import lib
4505
+ x: lib.A
4506
+ reveal_type(x)
4507
+ [file lib.pyi]
4508
+ from typing import List
4509
+ from other import B
4510
+ A = List[B] # type: ignore
4511
+ [file other.pyi]
4512
+ from typing import List
4513
+ from lib import A
4514
+ B = List[A]
4515
+ [builtins fixtures/list.pyi]
4516
+ [out]
4517
+ tmp/other.pyi:2: error: Module 'lib' has no attribute 'A'
4518
+ tmp/other.pyi:3: error: Cannot resolve name "B" (possible cyclic definition)
4519
+ tmp/lib.pyi:2: error: Module 'other' has no attribute 'B'
4520
+ [out2]
4521
+ tmp/other.pyi:2: error: Module 'lib' has no attribute 'A'
4522
+ tmp/other.pyi:3: error: Cannot resolve name "B" (possible cyclic definition)
4523
+ tmp/lib.pyi:2: error: Module 'other' has no attribute 'B'
4524
+ tmp/a.py:2: error: Cannot resolve name "lib.A" (possible cyclic definition)
4525
+ tmp/a.py:3: error: Revealed type is 'Any'
4526
+
4485
4527
[case testRecursiveNamedTupleTypedDict]
4528
+ # flags: --no-new-semantic-analyzer
4486
4529
import a
4487
4530
[file a.py]
4488
4531
import lib
@@ -4576,6 +4619,8 @@ def f(x: str) -> None: pass
4576
4619
tmp/main.py:2: error: Argument 1 to "f" has incompatible type "int"; expected "str"
4577
4620
4578
4621
[case testOverrideByIdemAlias]
4622
+ # https://github.com/python/mypy/issues/6404
4623
+ # flags: --no-new-semantic-analyzer
4579
4624
import a
4580
4625
[file a.py]
4581
4626
import lib
0 commit comments