`type: ignore[...]` silences all errors
Using this code as an example (verified on basedpyright.com):
class Foo: pass
Foo(1)
There is an reportUnusedCallResult and reportCallIssue on line 2.
Attaching # pyright: ignore[reportCallIssue], the remaining reportUnusedCallResult is still identified, as expected.
However, # type: ignore[reportCallIssue] will silence all errors. Is this intended? The README suggests it is not:
it's good practice to specify an error code in your
pyright:ignore/type:ignorecomments:# type:ignore[reportUnreachable]this way, if the error changes or a new error appears on the same line in the future, you'll get a new error because the comment doesn't account for the other error
yeah type:ignore is pretty unsafe, it doesn't even warn you if the rule doesn't exist, which is an upstream issue.
i can only imagine the reasoning for this was to prevent pyright from complaining about type:ignore comments intended for mypy if you're using both type checkers, since mypy has different error codes. but in that case you should just disable enableTypeIgnoreComments which makes pyright ignore them entirely.
i think the fix is to deprecate enableTypeIgnoreComments, make it disabled by default, and update the docs to recommend using pyright:ignore instead
related issue: #55
the documentation has been updated to mention these issues (#331), i'll leave this issue open until we update enableTypeIgnoreComments to be disabled by default