@@ -2727,12 +2727,13 @@ g: Callable[[Union[Sequence[TI], Sequence[TS]]], None]
27272727f = g
27282728
27292729[case explicitOverride]
2730+ # flags: --python-version 3.12
27302731from typing import override
27312732
27322733class A:
27332734 def f(self, x: int) -> str: pass
27342735 @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
27362737
27372738class B(A):
27382739 @override
@@ -2756,6 +2757,7 @@ class F(E):
27562757[builtins fixtures/tuple.pyi]
27572758
27582759[case explicitOverrideStaticmethod]
2760+ # flags: --python-version 3.12
27592761from typing import override
27602762
27612763class A:
@@ -2768,15 +2770,15 @@ class B(A):
27682770 def f(x: int) -> str: pass
27692771 @override
27702772 @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
27722774
27732775class C(A): # inverted order of decorators
27742776 @override
27752777 @staticmethod
27762778 def f(x: int) -> str: pass
27772779 @override
27782780 @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
27802782
27812783class D(A):
27822784 @staticmethod
@@ -2788,6 +2790,7 @@ class D(A):
27882790[builtins fixtures/callable.pyi]
27892791
27902792[case explicitOverrideClassmethod]
2793+ # flags: --python-version 3.12
27912794from typing import override
27922795
27932796class A:
@@ -2800,15 +2803,15 @@ class B(A):
28002803 def f(cls, x: int) -> str: pass
28012804 @override
28022805 @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
28042807
28052808class C(A): # inverted order of decorators
28062809 @override
28072810 @classmethod
28082811 def f(cls, x: int) -> str: pass
28092812 @override
28102813 @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
28122815
28132816class D(A):
28142817 @classmethod
@@ -2820,6 +2823,7 @@ class D(A):
28202823[builtins fixtures/callable.pyi]
28212824
28222825[case explicitOverrideProperty]
2826+ # flags: --python-version 3.12
28232827from typing import override
28242828
28252829class A:
@@ -2832,15 +2836,15 @@ class B(A):
28322836 def f(self) -> str: pass
28332837 @override
28342838 @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
28362840
28372841class C(A): # inverted order of decorators
28382842 @override
28392843 @property
28402844 def f(self) -> str: pass
28412845 @override
28422846 @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
28442848
28452849class D(A):
28462850 @property
@@ -2850,6 +2854,7 @@ class D(A):
28502854[typing fixtures/typing-full.pyi]
28512855
28522856[case invalidExplicitOverride]
2857+ # flags: --python-version 3.12
28532858from typing import override
28542859
28552860@override # E: "override" used with a non-method
@@ -2865,6 +2870,7 @@ def g() -> None:
28652870[builtins fixtures/tuple.pyi]
28662871
28672872[case explicitOverrideSpecialMethods]
2873+ # flags: --python-version 3.12
28682874from typing import override
28692875
28702876class A:
@@ -2879,3 +2885,15 @@ class C:
28792885 def __init__(self, a: int) -> None: pass
28802886[typing fixtures/typing-full.pyi]
28812887[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