@@ -814,6 +814,71 @@ class C:
814814[builtins fixtures/callable.pyi]
815815
816816
817+ [case testDeprecatedClassConstructorMethodAccessedFromOutsideMethod]
818+ # flags: --enable-error-code=deprecated
819+
820+ from typing_extensions import TypeAlias, deprecated
821+
822+ class C:
823+ @deprecated("use make_c() instead")
824+ def __new__(cls) -> C: ...
825+
826+ @deprecated("use make_c() instead")
827+ def __init__(self) -> None: ...
828+
829+ @classmethod
830+ def make_c(cls) -> C: ...
831+
832+ C_alias: TypeAlias = C
833+ C_type_obj: type[C]
834+ c: C
835+
836+ C.__new__ # E: function __main__.C.__new__ is deprecated: use make_c() instead
837+ C.__new__(C) # E: function __main__.C.__new__ is deprecated: use make_c() instead
838+ C.__init__ # E: function __main__.C.__init__ is deprecated: use make_c() instead
839+ C.__init__(c) # E: function __main__.C.__init__ is deprecated: use make_c() instead
840+ C_alias.__new__ # E: function __main__.C.__new__ is deprecated: use make_c() instead
841+ C_alias.__new__(C) # E: function __main__.C.__new__ is deprecated: use make_c() instead
842+ C_alias.__init__ # E: function __main__.C.__init__ is deprecated: use make_c() instead
843+ C_alias.__init__(c) # E: function __main__.C.__init__ is deprecated: use make_c() instead
844+ C_type_obj.__new__ # E: function __main__.C.__new__ is deprecated: use make_c() instead
845+ C_type_obj.__new__(C) # E: function __main__.C.__new__ is deprecated: use make_c() instead
846+ C_type_obj.__init__ # E: function __main__.C.__init__ is deprecated: use make_c() instead
847+ C_type_obj.__init__(c) # E: function __main__.C.__init__ is deprecated: use make_c() instead
848+
849+ (C.__new__, C_alias.__new__, C_type_obj.__new__, C.make_c, c.make_c) # E: function __main__.C.__new__ is deprecated: use make_c() instead
850+ (C.__init__, C_alias.__init__, C_type_obj.__init__, C.make_c, c.make_c) # E: function __main__.C.__init__ is deprecated: use make_c() instead
851+
852+ [builtins fixtures/tuple.pyi]
853+
854+
855+ [case testDeprecatedMethodClassConstructorAccessedFromInsideMethod]
856+ # flags: --enable-error-code=deprecated
857+
858+ from typing_extensions import deprecated
859+
860+ class C:
861+ @deprecated("use make_c() instead")
862+ def __new__(cls) -> C: ...
863+ @deprecated("use make_c() instead")
864+ def __init__(self) -> None: ...
865+
866+ @classmethod
867+ def make_c(cls) -> C: ...
868+
869+ @classmethod
870+ def class_method(cls) -> None:
871+ self: C
872+ cls.__new__ # E: function __main__.C.__new__ is deprecated: use make_c() instead
873+ cls.__new__(cls) # E: function __main__.C.__new__ is deprecated: use make_c() instead
874+ cls.__init__ # E: function __main__.C.__init__ is deprecated: use make_c() instead
875+ cls.__init__(self) # E: function __main__.C.__init__ is deprecated: use make_c() instead
876+ (cls.__new__, cls.__new__, cls.make_c) # E: function __main__.C.__new__ is deprecated: use make_c() instead
877+ (cls.__init__, cls.__init__, cls.make_c) # E: function __main__.C.__init__ is deprecated: use make_c() instead
878+
879+ [builtins fixtures/tuple.pyi]
880+
881+
817882[case testDeprecatedClassWithDeprecatedMethod]
818883# flags: --enable-error-code=deprecated
819884
0 commit comments