Skip to content

Commit c76d422

Browse files
committed
Narrow callable checks to Never
1 parent 92a4428 commit c76d422

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

mypy/checker.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5881,15 +5881,11 @@ def conditional_callable_type_map(
58815881

58825882
callables, uncallables = self.partition_by_callable(current_type, unsound_partition=False)
58835883

5884-
if callables and uncallables:
5885-
callable_map = {expr: UnionType.make_union(callables)} if callables else None
5886-
uncallable_map = {expr: UnionType.make_union(uncallables)} if uncallables else None
5887-
return callable_map, uncallable_map
5888-
5889-
elif callables:
5890-
return {}, None
5891-
5892-
return None, {}
5884+
callable_map = {expr: UnionType.make_union(callables) if callables else UninhabitedType()}
5885+
uncallable_map = {
5886+
expr: UnionType.make_union(uncallables) if uncallables else UninhabitedType()
5887+
}
5888+
return callable_map, uncallable_map
58935889

58945890
def conditional_types_for_iterable(
58955891
self, item_type: Type, iterable_type: Type

test-data/unit/check-callable.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ if callable(): # E: Missing positional argument "x" in call to "callable"
514514
fn = None
515515
if callable(fn):
516516
_ = "unreachable" # E: Statement is unreachable
517-
fn() # E: "None" not callable
517+
fn()
518518

519519
[builtins fixtures/callable.pyi]
520520

0 commit comments

Comments
 (0)