@@ -10908,7 +10908,7 @@ main:4: note: function a.f is deprecated: deprecated decorated function
1090810908b.py:1: note: function a.f is deprecated: deprecated decorated function
1090910909
1091010910
10911- [case testDeprecatedAddClassDeprecationIndirectImport ]
10911+ [case testDeprecatedAddClassDeprecationIndirectImport1-only_when_cache ]
1091210912from b import C
1091310913x: C
1091410914C()
@@ -10943,6 +10943,41 @@ main:5: note: class a.D is deprecated: use D2 instead
1094310943main:6: note: class a.D is deprecated: use D2 instead
1094410944
1094510945
10946+ [case testDeprecatedAddClassDeprecationIndirectImport2-only_when_nocache]
10947+ from b import C
10948+ x: C
10949+ C()
10950+ import b
10951+ y: b.D
10952+ b.D()
10953+
10954+ [file b.py]
10955+ from a import C
10956+ from a import D
10957+
10958+ [file a.py]
10959+ class C: ...
10960+ class D: ...
10961+
10962+ [file a.py.2]
10963+ from typing_extensions import deprecated
10964+
10965+ @deprecated("use C2 instead")
10966+ class C: ...
10967+
10968+ @deprecated("use D2 instead")
10969+ class D: ...
10970+
10971+ [builtins fixtures/tuple.pyi]
10972+ [out]
10973+ ==
10974+ main:1: note: class a.C is deprecated: use C2 instead
10975+ main:5: note: class a.D is deprecated: use D2 instead
10976+ main:6: note: class a.D is deprecated: use D2 instead
10977+ b.py:1: note: class a.C is deprecated: use C2 instead
10978+ b.py:2: note: class a.D is deprecated: use D2 instead
10979+
10980+
1094610981[case testDeprecatedChangeClassDeprecationIndirectImport]
1094710982from b import C
1094810983x: C
@@ -10986,6 +11021,7 @@ main:1: note: class a.C is deprecated: use C2 instead
1098611021main:5: note: class a.D is deprecated: use D2 instead
1098711022main:6: note: class a.D is deprecated: use D2 instead
1098811023
11024+
1098911025[case testDeprecatedRemoveClassDeprecationIndirectImport]
1099011026from b import C
1099111027x: C
@@ -11020,7 +11056,7 @@ main:6: note: class a.D is deprecated: use D1 instead
1102011056==
1102111057
1102211058
11023- [case testDeprecatedAddClassDeprecationIndirectImportAlreadyDecorated ]
11059+ [case testDeprecatedAddClassDeprecationIndirectImportAlreadyDecorated1-only_when_cache ]
1102411060from b import C
1102511061x: C
1102611062C()
@@ -11060,3 +11096,45 @@ b.py:2: note: class a.D is deprecated: use D2 instead
1106011096main:1: note: class a.C is deprecated: use C2 instead
1106111097main:5: note: class a.D is deprecated: use D2 instead
1106211098main:6: note: class a.D is deprecated: use D2 instead
11099+
11100+
11101+ [case testDeprecatedAddClassDeprecationIndirectImportAlreadyDecorated2-only_when_nocache]
11102+ from b import C
11103+ x: C
11104+ C()
11105+ import b
11106+ y: b.D
11107+ b.D()
11108+
11109+ [file b.py]
11110+ from a import C
11111+ from a import D
11112+
11113+ [file a.py]
11114+ from typing import TypeVar
11115+
11116+ T = TypeVar("T")
11117+ def dec(x: T) -> T: ...
11118+
11119+ @dec
11120+ class C: ...
11121+ @dec
11122+ class D: ...
11123+
11124+ [file a.py.2]
11125+ from typing_extensions import deprecated
11126+
11127+ @deprecated("use C2 instead")
11128+ class C: ...
11129+
11130+ @deprecated("use D2 instead")
11131+ class D: ...
11132+
11133+ [builtins fixtures/tuple.pyi]
11134+ [out]
11135+ ==
11136+ main:1: note: class a.C is deprecated: use C2 instead
11137+ main:5: note: class a.D is deprecated: use D2 instead
11138+ main:6: note: class a.D is deprecated: use D2 instead
11139+ b.py:1: note: class a.C is deprecated: use C2 instead
11140+ b.py:2: note: class a.D is deprecated: use D2 instead
0 commit comments