Skip to content

Commit 1beb076

Browse files
committed
added fallback to list of possible overload variants
1 parent 61b0807 commit 1beb076

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

mypy/messages.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,6 +1155,15 @@ def no_variant_matches_arguments(
11551155
if matches:
11561156
msg += f"; did you mean {pretty_seq(matches, 'or')}?"
11571157
self.fail(msg, context, code=code)
1158+
1159+
if matching_variant is None:
1160+
self.note(
1161+
f"Possible overload variant{plural_s(len(overload.items))}:",
1162+
context,
1163+
code=code,
1164+
)
1165+
for item in overload.items:
1166+
self.note(pretty_callable(item, self.options), context, offset=4, code=code)
11581167

11591168
return
11601169

test-data/unit/check-expressions.test

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2574,4 +2574,8 @@ def f(foobar: str) -> None: ...
25742574
def f(foobar: Union[int, str]) -> None:
25752575
pass
25762576

2577-
f(fobar=1) # E: Unexpected keyword argument "fobar" for overloaded function "f" defined on line 4; did you mean "foobar"?
2577+
f(fobar=1) # E: Unexpected keyword argument "fobar" for overloaded function "f" defined on line 4; did you mean "foobar"?
2578+
f(random=[1,2,3]) # E: Unexpected keyword argument "random" for overloaded function "f" \
2579+
# N: Possible overload variants: \
2580+
# N: def f(foobar: int) -> None \
2581+
# N: def f(foobar: str) -> None

0 commit comments

Comments
 (0)