Skip to content

Commit 1d95ec0

Browse files
committed
Convert errors to notes for reveal_type(...)
1 parent 5ec6868 commit 1d95ec0

File tree

1 file changed

+58
-58
lines changed

1 file changed

+58
-58
lines changed

test-data/unit/check-enum.test

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -622,39 +622,39 @@ class Foo(Enum):
622622

623623
x: Literal[Foo.A, Foo.B, Foo.C]
624624
if x is Foo.A:
625-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.A]'
625+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.A]'
626626
elif x is Foo.B:
627-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.B]'
627+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.B]'
628628
elif x is Foo.C:
629-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.C]'
629+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.C]'
630630
else:
631631
reveal_type(x) # No output here: this branch is unreachable
632632

633633
if Foo.A is x:
634-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.A]'
634+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.A]'
635635
elif Foo.B is x:
636-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.B]'
636+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.B]'
637637
elif Foo.C is x:
638-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.C]'
638+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.C]'
639639
else:
640640
reveal_type(x) # No output here: this branch is unreachable
641641

642642
y: Foo
643643
if y is Foo.A:
644-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.A]'
644+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.A]'
645645
elif y is Foo.B:
646-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.B]'
646+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.B]'
647647
elif y is Foo.C:
648-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.C]'
648+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.C]'
649649
else:
650650
reveal_type(y) # No output here: this branch is unreachable
651651

652652
if Foo.A is y:
653-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.A]'
653+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.A]'
654654
elif Foo.B is y:
655-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.B]'
655+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.B]'
656656
elif Foo.C is y:
657-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.C]'
657+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.C]'
658658
else:
659659
reveal_type(y) # No output here: this branch is unreachable
660660
[builtins fixtures/bool.pyi]
@@ -675,45 +675,45 @@ y: Literal[Foo.A]
675675
z: Final = Foo.A
676676

677677
if x is y:
678-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.A]'
679-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.A]'
678+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.A]'
679+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.A]'
680680
else:
681-
reveal_type(x) # E: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
682-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.A]'
681+
reveal_type(x) # N: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
682+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.A]'
683683
if y is x:
684-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.A]'
685-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.A]'
684+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.A]'
685+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.A]'
686686
else:
687-
reveal_type(x) # E: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
688-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.A]'
687+
reveal_type(x) # N: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
688+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.A]'
689689

690690
if x is z:
691-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.A]'
692-
reveal_type(z) # E: Revealed type is '__main__.Foo'
691+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.A]'
692+
reveal_type(z) # N: Revealed type is '__main__.Foo'
693693
accepts_foo_a(z)
694694
else:
695-
reveal_type(x) # E: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
696-
reveal_type(z) # E: Revealed type is '__main__.Foo'
695+
reveal_type(x) # N: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
696+
reveal_type(z) # N: Revealed type is '__main__.Foo'
697697
accepts_foo_a(z)
698698
if z is x:
699-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.A]'
700-
reveal_type(z) # E: Revealed type is '__main__.Foo'
699+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.A]'
700+
reveal_type(z) # N: Revealed type is '__main__.Foo'
701701
accepts_foo_a(z)
702702
else:
703-
reveal_type(x) # E: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
704-
reveal_type(z) # E: Revealed type is '__main__.Foo'
703+
reveal_type(x) # N: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
704+
reveal_type(z) # N: Revealed type is '__main__.Foo'
705705
accepts_foo_a(z)
706706

707707
if y is z:
708-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.A]'
709-
reveal_type(z) # E: Revealed type is '__main__.Foo'
708+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.A]'
709+
reveal_type(z) # N: Revealed type is '__main__.Foo'
710710
accepts_foo_a(z)
711711
else:
712712
reveal_type(y) # No output: this branch is unreachable
713713
reveal_type(z) # No output: this branch is unreachable
714714
if z is y:
715-
reveal_type(y) # E: Revealed type is 'Literal[__main__.Foo.A]'
716-
reveal_type(z) # E: Revealed type is '__main__.Foo'
715+
reveal_type(y) # N: Revealed type is 'Literal[__main__.Foo.A]'
716+
reveal_type(z) # N: Revealed type is '__main__.Foo'
717717
accepts_foo_a(z)
718718
else:
719719
reveal_type(y) # No output: this branch is unreachable
@@ -735,18 +735,18 @@ z: Literal[Foo.B, Foo.C]
735735

736736
# For the sake of simplicity, no narrowing is done when the narrower type is a Union.
737737
if x is y:
738-
reveal_type(x) # E: Revealed type is '__main__.Foo'
739-
reveal_type(y) # E: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Foo.B]]'
738+
reveal_type(x) # N: Revealed type is '__main__.Foo'
739+
reveal_type(y) # N: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Foo.B]]'
740740
else:
741-
reveal_type(x) # E: Revealed type is '__main__.Foo'
742-
reveal_type(y) # E: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Foo.B]]'
741+
reveal_type(x) # N: Revealed type is '__main__.Foo'
742+
reveal_type(y) # N: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Foo.B]]'
743743

744744
if y is z:
745-
reveal_type(y) # E: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Foo.B]]'
746-
reveal_type(z) # E: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
745+
reveal_type(y) # N: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Foo.B]]'
746+
reveal_type(z) # N: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
747747
else:
748-
reveal_type(y) # E: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Foo.B]]'
749-
reveal_type(z) # E: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
748+
reveal_type(y) # N: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Foo.B]]'
749+
reveal_type(z) # N: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C]]'
750750
[builtins fixtures/bool.pyi]
751751

752752
[case testEnumReachabilityWithNone]
@@ -761,19 +761,19 @@ class Foo(Enum):
761761

762762
x: Optional[Foo]
763763
if x:
764-
reveal_type(x) # E: Revealed type is '__main__.Foo'
764+
reveal_type(x) # N: Revealed type is '__main__.Foo'
765765
else:
766-
reveal_type(x) # E: Revealed type is 'Union[__main__.Foo, None]'
766+
reveal_type(x) # N: Revealed type is 'Union[__main__.Foo, None]'
767767

768768
if x is not None:
769-
reveal_type(x) # E: Revealed type is '__main__.Foo'
769+
reveal_type(x) # N: Revealed type is '__main__.Foo'
770770
else:
771-
reveal_type(x) # E: Revealed type is 'None'
771+
reveal_type(x) # N: Revealed type is 'None'
772772

773773
if x is Foo.A:
774-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Foo.A]'
774+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Foo.A]'
775775
else:
776-
reveal_type(x) # E: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C], None]'
776+
reveal_type(x) # N: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Foo.C], None]'
777777
[builtins fixtures/bool.pyi]
778778

779779
[case testEnumReachabilityWithMultipleEnums]
@@ -790,21 +790,21 @@ class Bar(Enum):
790790

791791
x1: Union[Foo, Bar]
792792
if x1 is Foo.A:
793-
reveal_type(x1) # E: Revealed type is 'Literal[__main__.Foo.A]'
793+
reveal_type(x1) # N: Revealed type is 'Literal[__main__.Foo.A]'
794794
else:
795-
reveal_type(x1) # E: Revealed type is 'Union[Literal[__main__.Foo.B], __main__.Bar]'
795+
reveal_type(x1) # N: Revealed type is 'Union[Literal[__main__.Foo.B], __main__.Bar]'
796796

797797
x2: Union[Foo, Bar]
798798
if x2 is Bar.A:
799-
reveal_type(x2) # E: Revealed type is 'Literal[__main__.Bar.A]'
799+
reveal_type(x2) # N: Revealed type is 'Literal[__main__.Bar.A]'
800800
else:
801-
reveal_type(x2) # E: Revealed type is 'Union[__main__.Foo, Literal[__main__.Bar.B]]'
801+
reveal_type(x2) # N: Revealed type is 'Union[__main__.Foo, Literal[__main__.Bar.B]]'
802802

803803
x3: Union[Foo, Bar]
804804
if x3 is Foo.A or x3 is Bar.A:
805-
reveal_type(x3) # E: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Bar.A]]'
805+
reveal_type(x3) # N: Revealed type is 'Union[Literal[__main__.Foo.A], Literal[__main__.Bar.A]]'
806806
else:
807-
reveal_type(x3) # E: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Bar.B]]'
807+
reveal_type(x3) # N: Revealed type is 'Union[Literal[__main__.Foo.B], Literal[__main__.Bar.B]]'
808808

809809
[builtins fixtures/bool.pyi]
810810

@@ -823,13 +823,13 @@ def func(x: Union[int, None, Empty] = _empty) -> int:
823823
# E: Unsupported left operand type for + ("Empty") \
824824
# N: Left operand is of type "Union[int, None, Empty]"
825825
if x is _empty:
826-
reveal_type(x) # E: Revealed type is 'Literal[__main__.Empty.token]'
826+
reveal_type(x) # N: Revealed type is 'Literal[__main__.Empty.token]'
827827
return 0
828828
elif x is None:
829-
reveal_type(x) # E: Revealed type is 'None'
829+
reveal_type(x) # N: Revealed type is 'None'
830830
return 1
831831
else: # At this point typechecker knows that x can only have type int
832-
reveal_type(x) # E: Revealed type is 'builtins.int'
832+
reveal_type(x) # N: Revealed type is 'builtins.int'
833833
return x + 2
834834
[builtins fixtures/primitives.pyi]
835835

@@ -843,14 +843,14 @@ class Reason(Enum):
843843

844844
def process(response: Union[str, Reason] = '') -> str:
845845
if response is Reason.timeout:
846-
reveal_type(response) # E: Revealed type is 'Literal[__main__.Reason.timeout]'
846+
reveal_type(response) # N: Revealed type is 'Literal[__main__.Reason.timeout]'
847847
return 'TIMEOUT'
848848
elif response is Reason.error:
849-
reveal_type(response) # E: Revealed type is 'Literal[__main__.Reason.error]'
849+
reveal_type(response) # N: Revealed type is 'Literal[__main__.Reason.error]'
850850
return 'ERROR'
851851
else:
852852
# response can be only str, all other possible values exhausted
853-
reveal_type(response) # E: Revealed type is 'builtins.str'
853+
reveal_type(response) # N: Revealed type is 'builtins.str'
854854
return 'PROCESSED: ' + response
855855

856856
[builtins fixtures/primitives.pyi]

0 commit comments

Comments
 (0)