Skip to content

Commit cbf7574

Browse files
committed
note instead of error
1 parent e3dfacb commit cbf7574

File tree

2 files changed

+66
-66
lines changed

2 files changed

+66
-66
lines changed

mypy/checker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7600,7 +7600,7 @@ def warn_deprecated(
76007600
name = func.fullname
76017601
else:
76027602
name = type_.fullname
7603-
self.msg.fail(f"{name} is deprecated: {deprecated}", context, code=codes.DEPRECATED)
7603+
self.msg.note(f"{name} is deprecated: {deprecated}", context, code=codes.DEPRECATED)
76047604

76057605

76067606
class CollectArgTypeVarTypes(TypeTraverserVisitor):

test-data/unit/check-deprecated.test

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ from typing_extensions import deprecated
77
@deprecated("use f2 instead")
88
def f() -> None: ...
99

10-
f # E: __main__.f is deprecated: use f2 instead # type: ignore[deprecated]
11-
f(1) # E: __main__.f is deprecated: use f2 instead \
10+
f # N: __main__.f is deprecated: use f2 instead # type: ignore[deprecated]
11+
f(1) # N: __main__.f is deprecated: use f2 instead \
1212
# E: Too many arguments for "f"
13-
f[1] # E: __main__.f is deprecated: use f2 instead \
13+
f[1] # N: __main__.f is deprecated: use f2 instead \
1414
# E: Value of type "Callable[[], None]" is not indexable
15-
g = f # E: __main__.f is deprecated: use f2 instead
16-
g() # E: __main__.f is deprecated: use f2 instead
17-
t = (f, f, g) # E: __main__.f is deprecated: use f2 instead
15+
g = f # N: __main__.f is deprecated: use f2 instead
16+
g() # N: __main__.f is deprecated: use f2 instead
17+
t = (f, f, g) # N: __main__.f is deprecated: use f2 instead
1818

1919
[builtins fixtures/tuple.pyi]
2020

@@ -25,17 +25,17 @@ import m
2525
import p.s
2626
import m as n
2727
import p.s as ps
28-
from m import f # E: m.f is deprecated: use f2 instead
29-
from p.s import g # E: p.s.g is deprecated: use g2 instead
28+
from m import f # N: m.f is deprecated: use f2 instead
29+
from p.s import g # N: p.s.g is deprecated: use g2 instead
3030
from k import *
3131

32-
m.f() # E: m.f is deprecated: use f2 instead
33-
p.s.g() # E: p.s.g is deprecated: use g2 instead
34-
n.f() # E: m.f is deprecated: use f2 instead
35-
ps.g() # E: p.s.g is deprecated: use g2 instead
32+
m.f() # N: m.f is deprecated: use f2 instead
33+
p.s.g() # N: p.s.g is deprecated: use g2 instead
34+
n.f() # N: m.f is deprecated: use f2 instead
35+
ps.g() # N: p.s.g is deprecated: use g2 instead
3636
f()
3737
g()
38-
h() # E: k.h is deprecated: use h2 instead
38+
h() # N: k.h is deprecated: use h2 instead
3939

4040
[file m.py]
4141
from typing_extensions import deprecated
@@ -65,16 +65,16 @@ from typing_extensions import deprecated
6565
@deprecated("use C2 instead")
6666
class C: ...
6767

68-
c: C # E: __main__.C is deprecated: use C2 instead
69-
C() # E: __main__.C is deprecated: use C2 instead
70-
C.missing() # E: __main__.C is deprecated: use C2 instead \
68+
c: C # N: __main__.C is deprecated: use C2 instead
69+
C() # N: __main__.C is deprecated: use C2 instead
70+
C.missing() # N: __main__.C is deprecated: use C2 instead \
7171
# E: "Type[C]" has no attribute "missing"
72-
C.__init__(c) # E: __main__.C is deprecated: use C2 instead
73-
C(1) # E: __main__.C is deprecated: use C2 instead \
72+
C.__init__(c) # N: __main__.C is deprecated: use C2 instead
73+
C(1) # N: __main__.C is deprecated: use C2 instead \
7474
# E: Too many arguments for "C"
75-
D = C # E: __main__.C is deprecated: use C2 instead
75+
D = C # N: __main__.C is deprecated: use C2 instead
7676
D()
77-
t = (C, C, D) # E: __main__.C is deprecated: use C2 instead
77+
t = (C, C, D) # N: __main__.C is deprecated: use C2 instead
7878

7979
[builtins fixtures/tuple.pyi]
8080

@@ -85,17 +85,17 @@ import m
8585
import p.s
8686
import m as n
8787
import p.s as ps
88-
from m import C # E: m.C is deprecated: use C2 instead
89-
from p.s import D # E: p.s.D is deprecated: use D2 instead
88+
from m import C # N: m.C is deprecated: use C2 instead
89+
from p.s import D # N: p.s.D is deprecated: use D2 instead
9090
from k import *
9191

92-
m.C() # E: m.C is deprecated: use C2 instead
93-
p.s.D() # E: p.s.D is deprecated: use D2 instead
94-
n.C() # E: m.C is deprecated: use C2 instead
95-
ps.D() # E: p.s.D is deprecated: use D2 instead
92+
m.C() # N: m.C is deprecated: use C2 instead
93+
p.s.D() # N: p.s.D is deprecated: use D2 instead
94+
n.C() # N: m.C is deprecated: use C2 instead
95+
ps.D() # N: p.s.D is deprecated: use D2 instead
9696
C()
9797
D()
98-
E() # E: k.E is deprecated: use E2 instead
98+
E() # N: k.E is deprecated: use E2 instead
9999

100100
[file m.py]
101101
from typing_extensions import deprecated
@@ -126,9 +126,9 @@ from typing_extensions import deprecated
126126
class C:
127127
def __init__(self) -> None: ...
128128

129-
c: C # E: __main__.C is deprecated: use C2 instead
130-
C() # E: __main__.C is deprecated: use C2 instead
131-
C.__init__(c) # E: __main__.C is deprecated: use C2 instead
129+
c: C # N: __main__.C is deprecated: use C2 instead
130+
C() # N: __main__.C is deprecated: use C2 instead
131+
C.__init__(c) # N: __main__.C is deprecated: use C2 instead
132132

133133
[builtins fixtures/tuple.pyi]
134134

@@ -166,14 +166,14 @@ class B:
166166

167167
a = A()
168168
b = B()
169-
a + 1 # E: __main__.A.__add__ is deprecated: no A + int
170-
1 + a # E: __main__.A.__radd__ is deprecated: no int + A
171-
a += 1 # E: __main__.A.__iadd__ is deprecated: no A = A + int
172-
for i in a: # E: __main__.A.__iter__ is deprecated: no iteration
169+
a + 1 # N: __main__.A.__add__ is deprecated: no A + int
170+
1 + a # N: __main__.A.__radd__ is deprecated: no int + A
171+
a += 1 # N: __main__.A.__iadd__ is deprecated: no A = A + int
172+
for i in a: # N: __main__.A.__iter__ is deprecated: no iteration
173173
reveal_type(i) # N: Revealed type is "builtins.int"
174-
1 in a # E: __main__.A.__iter__ is deprecated: no iteration
175-
1 in b # E: __main__.B.__contains__ is deprecated: no in
176-
~a # E: __main__.A.__invert__ is deprecated: no inversion
174+
1 in a # N: __main__.A.__iter__ is deprecated: no iteration
175+
1 in b # N: __main__.B.__contains__ is deprecated: no in
176+
~a # N: __main__.A.__invert__ is deprecated: no inversion
177177

178178
[builtins fixtures/tuple.pyi]
179179

@@ -206,12 +206,12 @@ class A:
206206
def __iadd__(self, v: Union[int, str]) -> A: ...
207207

208208
a = A()
209-
a + 1 # E: __main__.A.__add__ is deprecated: no A + int
209+
a + 1 # N: __main__.A.__add__ is deprecated: no A + int
210210
a + "x"
211211
1 + a
212-
"x" + a # E: __main__.A.__radd__ is deprecated: no str + A
213-
a += 1 # E: __main__.A.__iadd__ is deprecated: no A += Any
214-
a += "x" # E: __main__.A.__iadd__ is deprecated: no A += Any
212+
"x" + a # N: __main__.A.__radd__ is deprecated: no str + A
213+
a += 1 # N: __main__.A.__iadd__ is deprecated: no A += Any
214+
a += "x" # N: __main__.A.__iadd__ is deprecated: no A += Any
215215

216216
[builtins fixtures/tuple.pyi]
217217

@@ -234,18 +234,18 @@ class C:
234234
@staticmethod
235235
def k() -> None: ...
236236

237-
C.f # E: __main__.C.f is deprecated: use g instead
238-
C().f # E: __main__.C.f is deprecated: use g instead
239-
C().f() # E: __main__.C.f is deprecated: use g instead
240-
C().f(1) # E: __main__.C.f is deprecated: use g instead \
237+
C.f # N: __main__.C.f is deprecated: use g instead
238+
C().f # N: __main__.C.f is deprecated: use g instead
239+
C().f() # N: __main__.C.f is deprecated: use g instead
240+
C().f(1) # N: __main__.C.f is deprecated: use g instead \
241241
# E: Too many arguments for "f" of "C"
242-
f = C().f # E: __main__.C.f is deprecated: use g instead
243-
f() # E: __main__.C.f is deprecated: use g instead
244-
t = (C.f, C.f, C.g) # E: __main__.C.f is deprecated: use g instead
242+
f = C().f # N: __main__.C.f is deprecated: use g instead
243+
f() # N: __main__.C.f is deprecated: use g instead
244+
t = (C.f, C.f, C.g) # N: __main__.C.f is deprecated: use g instead
245245

246246
C().g()
247-
C().h() # E: __main__.C.h is deprecated: use g instead
248-
C().k() # E: __main__.C.k is deprecated: use g instead
247+
C().h() # N: __main__.C.h is deprecated: use g instead
248+
C().k() # N: __main__.C.k is deprecated: use g instead
249249

250250
[builtins fixtures/callable.pyi]
251251

@@ -260,9 +260,9 @@ class C:
260260
def f(self) -> None: ...
261261
def g(self) -> None: ...
262262

263-
C().f() # E: __main__.C is deprecated: use D instead \
264-
# E: __main__.C.f is deprecated: use g instead
265-
C().g() # E: __main__.C is deprecated: use D instead
263+
C().f() # N: __main__.C is deprecated: use D instead \
264+
# N: __main__.C.f is deprecated: use g instead
265+
C().g() # N: __main__.C is deprecated: use D instead
266266

267267
[builtins fixtures/callable.pyi]
268268

@@ -283,17 +283,17 @@ class C:
283283
def g(self, v: int) -> None: ...
284284

285285

286-
C.f # E: __main__.C.f is deprecated: use f2 instead
287-
C().f # E: __main__.C.f is deprecated: use f2 instead
288-
C().f() # E: __main__.C.f is deprecated: use f2 instead \
286+
C.f # N: __main__.C.f is deprecated: use f2 instead
287+
C().f # N: __main__.C.f is deprecated: use f2 instead
288+
C().f() # N: __main__.C.f is deprecated: use f2 instead \
289289
# E: "int" not callable
290290
C().f = 1 # E: Property "f" defined in "C" is read-only \
291-
# E: __main__.C.f is deprecated: use f2 instead
291+
# N: __main__.C.f is deprecated: use f2 instead
292292

293293
C.g
294294
C().g
295-
C().g = 1 # E: __main__.C.g is deprecated: use g2 instead
296-
C().g = "x" # E: __main__.C.g is deprecated: use g2 instead \
295+
C().g = 1 # N: __main__.C.g is deprecated: use g2 instead
296+
C().g = "x" # N: __main__.C.g is deprecated: use g2 instead \
297297
# E: Incompatible types in assignment (expression has type "str", variable has type "int")
298298

299299
[builtins fixtures/property.pyi]
@@ -311,10 +311,10 @@ def f(x: str) -> str: ...
311311
@deprecated("use f2 instead")
312312
def f(x: Union[int, str]) -> Union[int, str]: ...
313313

314-
f # E: __main__.f is deprecated: use f2 instead
315-
f(1) # E: __main__.f is deprecated: use f2 instead
316-
f("x") # E: __main__.f is deprecated: use f2 instead
317-
f(1.0) # E: __main__.f is deprecated: use f2 instead \
314+
f # N: __main__.f is deprecated: use f2 instead
315+
f(1) # N: __main__.f is deprecated: use f2 instead
316+
f("x") # N: __main__.f is deprecated: use f2 instead
317+
f(1.0) # N: __main__.f is deprecated: use f2 instead \
318318
# E: No overload variant of "f" matches argument type "float" \
319319
# N: Possible overload variants: \
320320
# N: def f(x: int) -> int \
@@ -328,7 +328,7 @@ def g(x: str) -> str: ...
328328
def g(x: Union[int, str]) -> Union[int, str]: ...
329329

330330
g
331-
g(1) # E: __main__.g is deprecated: work with str instead
331+
g(1) # N: __main__.g is deprecated: work with str instead
332332
g("x")
333333
g(1.0) # E: No overload variant of "g" matches argument type "float" \
334334
# N: Possible overload variants: \
@@ -344,7 +344,7 @@ def h(x: Union[int, str]) -> Union[int, str]: ...
344344

345345
h
346346
h(1)
347-
h("x") # E: __main__.h is deprecated: work with int instead
347+
h("x") # N: __main__.h is deprecated: work with int instead
348348
h(1.0) # E: No overload variant of "h" matches argument type "float" \
349349
# N: Possible overload variants: \
350350
# N: def h(x: int) -> int \

0 commit comments

Comments
 (0)