@@ -1079,15 +1079,15 @@ class A:
10791079a: A
10801080o: object
10811081if int():
1082- a = f() # E: "f" does not return a value
1082+ a = f() # E: "f" does not return a value (it only ever returns None)
10831083if int():
1084- o = a() # E: Function does not return a value
1084+ o = a() # E: Function does not return a value (it only ever returns None)
10851085if int():
1086- o = A().g(a) # E: "g" of "A" does not return a value
1086+ o = A().g(a) # E: "g" of "A" does not return a value (it only ever returns None)
10871087if int():
1088- o = A.g(a, a) # E: "g" of "A" does not return a value
1089- A().g(f()) # E: "f" does not return a value
1090- x: A = f() # E: "f" does not return a value
1088+ o = A.g(a, a) # E: "g" of "A" does not return a value (it only ever returns None)
1089+ A().g(f()) # E: "f" does not return a value (it only ever returns None)
1090+ x: A = f() # E: "f" does not return a value (it only ever returns None)
10911091f()
10921092A().g(a)
10931093[builtins fixtures/tuple.pyi]
@@ -1096,15 +1096,15 @@ A().g(a)
10961096import typing
10971097def f() -> None: pass
10981098
1099- if f(): # E: "f" does not return a value
1099+ if f(): # E: "f" does not return a value (it only ever returns None)
11001100 pass
1101- elif f(): # E: "f" does not return a value
1101+ elif f(): # E: "f" does not return a value (it only ever returns None)
11021102 pass
1103- while f(): # E: "f" does not return a value
1103+ while f(): # E: "f" does not return a value (it only ever returns None)
11041104 pass
11051105def g() -> object:
1106- return f() # E: "f" does not return a value
1107- raise f() # E: "f" does not return a value
1106+ return f() # E: "f" does not return a value (it only ever returns None)
1107+ raise f() # E: "f" does not return a value (it only ever returns None)
11081108[builtins fixtures/exception.pyi]
11091109
11101110[case testNoneReturnTypeWithExpressions]
@@ -1115,13 +1115,13 @@ class A:
11151115 def __add__(self, x: 'A') -> 'A': pass
11161116
11171117a: A
1118- [f()] # E: "f" does not return a value
1119- f() + a # E: "f" does not return a value
1120- a + f() # E: "f" does not return a value
1121- f() == a # E: "f" does not return a value
1122- a != f() # E: "f" does not return a value
1118+ [f()] # E: "f" does not return a value (it only ever returns None)
1119+ f() + a # E: "f" does not return a value (it only ever returns None)
1120+ a + f() # E: "f" does not return a value (it only ever returns None)
1121+ f() == a # E: "f" does not return a value (it only ever returns None)
1122+ a != f() # E: "f" does not return a value (it only ever returns None)
11231123cast(A, f())
1124- f().foo # E: "f" does not return a value
1124+ f().foo # E: "f" does not return a value (it only ever returns None)
11251125[builtins fixtures/list.pyi]
11261126
11271127[case testNoneReturnTypeWithExpressions2]
@@ -1134,14 +1134,14 @@ class A:
11341134
11351135a: A
11361136b: bool
1137- f() in a # E: "f" does not return a value # E: Unsupported right operand type for in ("A")
1138- a < f() # E: "f" does not return a value
1139- f() <= a # E: "f" does not return a value
1140- a in f() # E: "f" does not return a value
1141- -f() # E: "f" does not return a value
1142- not f() # E: "f" does not return a value
1143- f() and b # E: "f" does not return a value
1144- b or f() # E: "f" does not return a value
1137+ f() in a # E: "f" does not return a value (it only ever returns None) # E: Unsupported right operand type for in ("A")
1138+ a < f() # E: "f" does not return a value (it only ever returns None)
1139+ f() <= a # E: "f" does not return a value (it only ever returns None)
1140+ a in f() # E: "f" does not return a value (it only ever returns None)
1141+ -f() # E: "f" does not return a value (it only ever returns None)
1142+ not f() # E: "f" does not return a value (it only ever returns None)
1143+ f() and b # E: "f" does not return a value (it only ever returns None)
1144+ b or f() # E: "f" does not return a value (it only ever returns None)
11451145[builtins fixtures/bool.pyi]
11461146
11471147
@@ -1441,7 +1441,7 @@ if int():
14411441[case testConditionalExpressionWithEmptyCondition]
14421442import typing
14431443def f() -> None: pass
1444- x = 1 if f() else 2 # E: "f" does not return a value
1444+ x = 1 if f() else 2 # E: "f" does not return a value (it only ever returns None)
14451445
14461446[case testConditionalExpressionWithSubtyping]
14471447import typing
@@ -1504,7 +1504,7 @@ from typing import List, Union
15041504x = []
15051505y = ""
15061506x.append(y) if bool() else x.append(y)
1507- z = x.append(y) if bool() else x.append(y) # E: "append" of "list" does not return a value
1507+ z = x.append(y) if bool() else x.append(y) # E: "append" of "list" does not return a value (it only ever returns None)
15081508[builtins fixtures/list.pyi]
15091509
15101510-- Special cases
@@ -1604,7 +1604,7 @@ def f(x: int) -> None:
16041604[builtins fixtures/for.pyi]
16051605[out]
16061606main:1: error: The return type of a generator function should be "Generator" or one of its supertypes
1607- main:2: error: "f" does not return a value
1607+ main:2: error: "f" does not return a value (it only ever returns None)
16081608main:2: error: Argument 1 to "f" has incompatible type "str"; expected "int"
16091609
16101610[case testYieldExpressionWithNone]
@@ -1624,7 +1624,7 @@ from typing import Iterator
16241624def f() -> Iterator[int]:
16251625 yield 5
16261626def g() -> Iterator[int]:
1627- a = yield from f() # E: Function does not return a value
1627+ a = yield from f() # E: Function does not return a value (it only ever returns None)
16281628
16291629[case testYieldFromGeneratorHasValue]
16301630from typing import Iterator, Generator
@@ -1639,12 +1639,12 @@ def g() -> Iterator[int]:
16391639[case testYieldFromTupleExpression]
16401640from typing import Generator
16411641def g() -> Generator[int, None, None]:
1642- x = yield from () # E: Function does not return a value
1643- x = yield from (0, 1, 2) # E: Function does not return a value
1642+ x = yield from () # E: Function does not return a value (it only ever returns None)
1643+ x = yield from (0, 1, 2) # E: Function does not return a value (it only ever returns None)
16441644 x = yield from (0, "ERROR") # E: Incompatible types in "yield from" (actual type "object", expected type "int") \
1645- # E: Function does not return a value
1645+ # E: Function does not return a value (it only ever returns None)
16461646 x = yield from ("ERROR",) # E: Incompatible types in "yield from" (actual type "str", expected type "int") \
1647- # E: Function does not return a value
1647+ # E: Function does not return a value (it only ever returns None)
16481648[builtins fixtures/tuple.pyi]
16491649
16501650-- dict(...)
0 commit comments