@@ -2727,12 +2727,13 @@ g: Callable[[Union[Sequence[TI], Sequence[TS]]], None]
2727
2727
f = g
2728
2728
2729
2729
[case explicitOverride]
2730
+ # flags: --python-version 3.12
2730
2731
from typing import override
2731
2732
2732
2733
class A:
2733
2734
def f(self, x: int) -> str: pass
2734
2735
@override
2735
- def g(self, x: int) -> str: pass # E: Method "g" is marked as an override, but no base method with this name was found
2736
+ def g(self, x: int) -> str: pass # E: Method "g" is marked as an override, but no base method was found with this name
2736
2737
2737
2738
class B(A):
2738
2739
@override
@@ -2756,6 +2757,7 @@ class F(E):
2756
2757
[builtins fixtures/tuple.pyi]
2757
2758
2758
2759
[case explicitOverrideStaticmethod]
2760
+ # flags: --python-version 3.12
2759
2761
from typing import override
2760
2762
2761
2763
class A:
@@ -2768,15 +2770,15 @@ class B(A):
2768
2770
def f(x: int) -> str: pass
2769
2771
@override
2770
2772
@staticmethod
2771
- def g(x: int) -> str: pass # E: Method "g" is marked as an override, but no base method with this name was found
2773
+ def g(x: int) -> str: pass # E: Method "g" is marked as an override, but no base method was found with this name
2772
2774
2773
2775
class C(A): # inverted order of decorators
2774
2776
@override
2775
2777
@staticmethod
2776
2778
def f(x: int) -> str: pass
2777
2779
@override
2778
2780
@staticmethod
2779
- def g(x: int) -> str: pass # E: Method "g" is marked as an override, but no base method with this name was found
2781
+ def g(x: int) -> str: pass # E: Method "g" is marked as an override, but no base method was found with this name
2780
2782
2781
2783
class D(A):
2782
2784
@staticmethod
@@ -2788,6 +2790,7 @@ class D(A):
2788
2790
[builtins fixtures/callable.pyi]
2789
2791
2790
2792
[case explicitOverrideClassmethod]
2793
+ # flags: --python-version 3.12
2791
2794
from typing import override
2792
2795
2793
2796
class A:
@@ -2800,15 +2803,15 @@ class B(A):
2800
2803
def f(cls, x: int) -> str: pass
2801
2804
@override
2802
2805
@classmethod
2803
- def g(cls, x: int) -> str: pass # E: Method "g" is marked as an override, but no base method with this name was found
2806
+ def g(cls, x: int) -> str: pass # E: Method "g" is marked as an override, but no base method was found with this name
2804
2807
2805
2808
class C(A): # inverted order of decorators
2806
2809
@override
2807
2810
@classmethod
2808
2811
def f(cls, x: int) -> str: pass
2809
2812
@override
2810
2813
@classmethod
2811
- def g(cls, x: int) -> str: pass # E: Method "g" is marked as an override, but no base method with this name was found
2814
+ def g(cls, x: int) -> str: pass # E: Method "g" is marked as an override, but no base method was found with this name
2812
2815
2813
2816
class D(A):
2814
2817
@classmethod
@@ -2820,6 +2823,7 @@ class D(A):
2820
2823
[builtins fixtures/callable.pyi]
2821
2824
2822
2825
[case explicitOverrideProperty]
2826
+ # flags: --python-version 3.12
2823
2827
from typing import override
2824
2828
2825
2829
class A:
@@ -2832,15 +2836,15 @@ class B(A):
2832
2836
def f(self) -> str: pass
2833
2837
@override
2834
2838
@property
2835
- def g(self) -> str: pass # E: Method "g" is marked as an override, but no base method with this name was found
2839
+ def g(self) -> str: pass # E: Method "g" is marked as an override, but no base method was found with this name
2836
2840
2837
2841
class C(A): # inverted order of decorators
2838
2842
@override
2839
2843
@property
2840
2844
def f(self) -> str: pass
2841
2845
@override
2842
2846
@property
2843
- def g(self) -> str: pass # E: Method "g" is marked as an override, but no base method with this name was found
2847
+ def g(self) -> str: pass # E: Method "g" is marked as an override, but no base method was found with this name
2844
2848
2845
2849
class D(A):
2846
2850
@property
@@ -2850,6 +2854,7 @@ class D(A):
2850
2854
[typing fixtures/typing-full.pyi]
2851
2855
2852
2856
[case invalidExplicitOverride]
2857
+ # flags: --python-version 3.12
2853
2858
from typing import override
2854
2859
2855
2860
@override # E: "override" used with a non-method
@@ -2865,6 +2870,7 @@ def g() -> None:
2865
2870
[builtins fixtures/tuple.pyi]
2866
2871
2867
2872
[case explicitOverrideSpecialMethods]
2873
+ # flags: --python-version 3.12
2868
2874
from typing import override
2869
2875
2870
2876
class A:
@@ -2879,3 +2885,15 @@ class C:
2879
2885
def __init__(self, a: int) -> None: pass
2880
2886
[typing fixtures/typing-full.pyi]
2881
2887
[builtins fixtures/tuple.pyi]
2888
+
2889
+ [case explicitOverrideFromExtensions]
2890
+ from typing_extensions import override
2891
+
2892
+ class A:
2893
+ def f(self, x: int) -> str: pass
2894
+
2895
+ class B(A):
2896
+ @override
2897
+ def f2(self, x: int) -> str: pass # E: Method "f2" is marked as an override, but no base method was found with this name
2898
+ [typing fixtures/typing-full.pyi]
2899
+ [builtins fixtures/tuple.pyi]
0 commit comments