diff --git a/mypy/fastparse.py b/mypy/fastparse.py index e85b8fffaf9e..2415416decba 100644 --- a/mypy/fastparse.py +++ b/mypy/fastparse.py @@ -1957,7 +1957,7 @@ def visit_Call(self, e: Call) -> Type: if not isinstance(self.parent(), ast3.List): note = None - if constructor: + if constructor and not e.keywords: note = "Suggestion: use {0}[...] instead of {0}(...)".format(constructor) return self.invalid_type(e, note=note) if not constructor: diff --git a/test-data/unit/check-fastparse.test b/test-data/unit/check-fastparse.test index 7ee5a9c43216..a0a0ebe91f39 100644 --- a/test-data/unit/check-fastparse.test +++ b/test-data/unit/check-fastparse.test @@ -207,6 +207,15 @@ def f(a: Foo(int)) -> int: main:7: error: Invalid type comment or annotation main:7: note: Suggestion: use Foo[...] instead of Foo(...) +[case testFasterParseTypeErrorCustomNoSuggestionForKeywordArgs_no_native_parse] +from typing import TypeVar, Generic +T = TypeVar('T') +class Foo(Generic[T]): + pass +x: Foo(arg=1) +[out] +main:5: error: Invalid type comment or annotation + [case testFastParseMatMul] from typing import Any