@@ -329,9 +329,8 @@ At least two `@overload`-decorated definitions must be present.
329329from typing import overload
330330
331331@overload
332- def func (x : int ) -> int : ...
333-
334332# error: [invalid-overload]
333+ def func (x : int ) -> int : ...
335334def func (x : int | str ) -> int | str :
336335 return x
337336```
@@ -357,16 +356,16 @@ non-`@overload`-decorated definition (for the same function/method).
357356from typing import overload
358357
359358@overload
359+ # error: [invalid-overload] "Overloads for function `func` must be followed by a non-`@overload`-decorated implementation function"
360360def func (x : int ) -> int : ...
361361@overload
362- # error: [invalid-overload] "Overloads for function `func` must be followed by a non-`@overload`-decorated implementation function"
363362def func (x : str ) -> str : ...
364363
365364class Foo :
366365 @overload
366+ # error: [invalid-overload] "Overloads for function `method` must be followed by a non-`@overload`-decorated implementation function"
367367 def method (self , x : int ) -> int : ...
368368 @overload
369- # error: [invalid-overload] "Overloads for function `method` must be followed by a non-`@overload`-decorated implementation function"
370369 def method (self , x : str ) -> str : ...
371370```
372371
@@ -433,10 +432,10 @@ class Fine(metaclass=CustomAbstractMetaclass):
433432class Foo :
434433 @overload
435434 @abstractmethod
435+ # error: [invalid-overload]
436436 def f (self , x : int ) -> int : ...
437437 @overload
438438 @abstractmethod
439- # error: [invalid-overload]
440439 def f (self , x : str ) -> str : ...
441440```
442441
@@ -446,17 +445,17 @@ And, the `@abstractmethod` decorator must be present on all the `@overload`-ed m
446445class PartialFoo1 (ABC ):
447446 @overload
448447 @abstractmethod
448+ # error: [invalid-overload]
449449 def f (self , x : int ) -> int : ...
450450 @overload
451- # error: [invalid-overload]
452451 def f (self , x : str ) -> str : ...
453452
454453class PartialFoo (ABC ):
455454 @overload
455+ # error: [invalid-overload]
456456 def f (self , x : int ) -> int : ...
457457 @overload
458458 @abstractmethod
459- # error: [invalid-overload]
460459 def f (self , x : str ) -> str : ...
461460```
462461
@@ -498,11 +497,10 @@ if TYPE_CHECKING:
498497
499498if TYPE_CHECKING :
500499 @overload
501- def c () -> None : ...
500+ # not all overloads are in a `TYPE_CHECKING` block, so this is an error
501+ def c () -> None : ... # error: [invalid-overload]
502502
503- # not all overloads are in a `TYPE_CHECKING` block, so this is an error
504503@overload
505- # error: [invalid-overload]
506504def c (x : int ) -> int : ...
507505```
508506
0 commit comments