Skip to content

Commit 9e49aa1

Browse files
committed
add test for accessing methods via self and cls
1 parent 4b42ea6 commit 9e49aa1

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

test-data/unit/check-deprecated.test

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,40 @@ C().k() # E: function __main__.C.k is deprecated: use g instead
780780
[builtins fixtures/callable.pyi]
781781

782782

783+
[case testDeprecatedMethodAccessedFromMethod]
784+
# flags: --enable-error-code=deprecated
785+
786+
from typing_extensions import deprecated
787+
788+
class C:
789+
@deprecated("use g instead")
790+
def f(self) -> None: ...
791+
792+
def g(self) -> None: ...
793+
794+
@deprecated("use g instead")
795+
@staticmethod
796+
def h() -> None: ...
797+
798+
def instance_method(self) -> None:
799+
self.f # E: function __main__.C.f is deprecated: use g instead
800+
self.f() # E: function __main__.C.f is deprecated: use g instead
801+
self.g()
802+
self.h() # E: function __main__.C.h is deprecated: use g instead
803+
t = (self.f, self.f, self.g) # E: function __main__.C.f is deprecated: use g instead
804+
805+
@classmethod
806+
def class_method(cls) -> None:
807+
c: C
808+
cls.f # E: function __main__.C.f is deprecated: use g instead
809+
cls.f(c) # E: function __main__.C.f is deprecated: use g instead
810+
cls.g(c)
811+
cls.h() # E: function __main__.C.h is deprecated: use g instead
812+
t = (cls.f, cls.f, cls.g) # E: function __main__.C.f is deprecated: use g instead
813+
814+
[builtins fixtures/callable.pyi]
815+
816+
783817
[case testDeprecatedClassWithDeprecatedMethod]
784818
# flags: --enable-error-code=deprecated
785819

0 commit comments

Comments
 (0)