[ty] Refine message for why a rule is enabled (#18038)
Some checks are pending
CI / cargo build (msrv) (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
[ty Playground] Release / publish (push) Waiting to run

This commit is contained in:
Micha Reiser 2025-05-12 13:31:42 +02:00 committed by GitHub
parent d944a1397e
commit fcd858e0c8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
90 changed files with 184 additions and 181 deletions

View file

@ -157,7 +157,7 @@ fn config_override_python_version() -> anyhow::Result<()> {
5 | print(sys.last_exc) 5 | print(sys.last_exc)
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
| |
info: `unresolved-attribute` is enabled by default info: rule `unresolved-attribute` is enabled by default
Found 1 diagnostic Found 1 diagnostic
@ -296,7 +296,7 @@ fn cli_arguments_are_relative_to_the_current_directory() -> anyhow::Result<()> {
3 | 3 |
4 | stat = add(10, 15) 4 | stat = add(10, 15)
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
Found 1 diagnostic Found 1 diagnostic
@ -400,7 +400,7 @@ fn configuration_rule_severity() -> anyhow::Result<()> {
3 | 3 |
4 | for a in range(0, int(y)): 4 | for a in range(0, int(y)):
| |
info: `division-by-zero` is enabled by default info: rule `division-by-zero` is enabled by default
error[unresolved-reference]: Name `prin` used when not defined error[unresolved-reference]: Name `prin` used when not defined
--> test.py:7:1 --> test.py:7:1
@ -410,7 +410,7 @@ fn configuration_rule_severity() -> anyhow::Result<()> {
7 | prin(x) # unresolved-reference 7 | prin(x) # unresolved-reference
| ^^^^ | ^^^^
| |
info: `unresolved-reference` is enabled by default info: rule `unresolved-reference` is enabled by default
Found 2 diagnostics Found 2 diagnostics
@ -439,7 +439,7 @@ fn configuration_rule_severity() -> anyhow::Result<()> {
3 | 3 |
4 | for a in range(0, int(y)): 4 | for a in range(0, int(y)):
| |
info: `division-by-zero` was selected in the configuration file info: rule `division-by-zero` was selected in the configuration file
Found 1 diagnostic Found 1 diagnostic
@ -481,7 +481,7 @@ fn cli_rule_severity() -> anyhow::Result<()> {
3 | 3 |
4 | y = 4 / 0 4 | y = 4 / 0
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
error[division-by-zero]: Cannot divide object of type `Literal[4]` by zero error[division-by-zero]: Cannot divide object of type `Literal[4]` by zero
--> test.py:4:5 --> test.py:4:5
@ -493,7 +493,7 @@ fn cli_rule_severity() -> anyhow::Result<()> {
5 | 5 |
6 | for a in range(0, int(y)): 6 | for a in range(0, int(y)):
| |
info: `division-by-zero` is enabled by default info: rule `division-by-zero` is enabled by default
error[unresolved-reference]: Name `prin` used when not defined error[unresolved-reference]: Name `prin` used when not defined
--> test.py:9:1 --> test.py:9:1
@ -503,7 +503,7 @@ fn cli_rule_severity() -> anyhow::Result<()> {
9 | prin(x) # unresolved-reference 9 | prin(x) # unresolved-reference
| ^^^^ | ^^^^
| |
info: `unresolved-reference` is enabled by default info: rule `unresolved-reference` is enabled by default
Found 3 diagnostics Found 3 diagnostics
@ -532,7 +532,7 @@ fn cli_rule_severity() -> anyhow::Result<()> {
3 | 3 |
4 | y = 4 / 0 4 | y = 4 / 0
| |
info: `unresolved-import` was selected on the command line info: rule `unresolved-import` was selected on the command line
warning[division-by-zero]: Cannot divide object of type `Literal[4]` by zero warning[division-by-zero]: Cannot divide object of type `Literal[4]` by zero
--> test.py:4:5 --> test.py:4:5
@ -544,7 +544,7 @@ fn cli_rule_severity() -> anyhow::Result<()> {
5 | 5 |
6 | for a in range(0, int(y)): 6 | for a in range(0, int(y)):
| |
info: `division-by-zero` was selected on the command line info: rule `division-by-zero` was selected on the command line
Found 2 diagnostics Found 2 diagnostics
@ -586,7 +586,7 @@ fn cli_rule_severity_precedence() -> anyhow::Result<()> {
3 | 3 |
4 | for a in range(0, int(y)): 4 | for a in range(0, int(y)):
| |
info: `division-by-zero` is enabled by default info: rule `division-by-zero` is enabled by default
error[unresolved-reference]: Name `prin` used when not defined error[unresolved-reference]: Name `prin` used when not defined
--> test.py:7:1 --> test.py:7:1
@ -596,7 +596,7 @@ fn cli_rule_severity_precedence() -> anyhow::Result<()> {
7 | prin(x) # unresolved-reference 7 | prin(x) # unresolved-reference
| ^^^^ | ^^^^
| |
info: `unresolved-reference` is enabled by default info: rule `unresolved-reference` is enabled by default
Found 2 diagnostics Found 2 diagnostics
@ -626,7 +626,7 @@ fn cli_rule_severity_precedence() -> anyhow::Result<()> {
3 | 3 |
4 | for a in range(0, int(y)): 4 | for a in range(0, int(y)):
| |
info: `division-by-zero` was selected on the command line info: rule `division-by-zero` was selected on the command line
Found 1 diagnostic Found 1 diagnostic
@ -707,7 +707,7 @@ fn exit_code_only_warnings() -> anyhow::Result<()> {
1 | print(x) # [unresolved-reference] 1 | print(x) # [unresolved-reference]
| ^ | ^
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
Found 1 diagnostic Found 1 diagnostic
@ -794,7 +794,7 @@ fn exit_code_no_errors_but_error_on_warning_is_true() -> anyhow::Result<()> {
1 | print(x) # [unresolved-reference] 1 | print(x) # [unresolved-reference]
| ^ | ^
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
Found 1 diagnostic Found 1 diagnostic
@ -828,7 +828,7 @@ fn exit_code_no_errors_but_error_on_warning_is_enabled_in_configuration() -> any
1 | print(x) # [unresolved-reference] 1 | print(x) # [unresolved-reference]
| ^ | ^
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
Found 1 diagnostic Found 1 diagnostic
@ -860,7 +860,7 @@ fn exit_code_both_warnings_and_errors() -> anyhow::Result<()> {
| ^ | ^
3 | print(4[1]) # [non-subscriptable] 3 | print(4[1]) # [non-subscriptable]
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
error[non-subscriptable]: Cannot subscript object of type `Literal[4]` with no `__getitem__` method error[non-subscriptable]: Cannot subscript object of type `Literal[4]` with no `__getitem__` method
--> test.py:3:7 --> test.py:3:7
@ -869,7 +869,7 @@ fn exit_code_both_warnings_and_errors() -> anyhow::Result<()> {
3 | print(4[1]) # [non-subscriptable] 3 | print(4[1]) # [non-subscriptable]
| ^ | ^
| |
info: `non-subscriptable` is enabled by default info: rule `non-subscriptable` is enabled by default
Found 2 diagnostics Found 2 diagnostics
@ -901,7 +901,7 @@ fn exit_code_both_warnings_and_errors_and_error_on_warning_is_true() -> anyhow::
| ^ | ^
3 | print(4[1]) # [non-subscriptable] 3 | print(4[1]) # [non-subscriptable]
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
error[non-subscriptable]: Cannot subscript object of type `Literal[4]` with no `__getitem__` method error[non-subscriptable]: Cannot subscript object of type `Literal[4]` with no `__getitem__` method
--> test.py:3:7 --> test.py:3:7
@ -910,7 +910,7 @@ fn exit_code_both_warnings_and_errors_and_error_on_warning_is_true() -> anyhow::
3 | print(4[1]) # [non-subscriptable] 3 | print(4[1]) # [non-subscriptable]
| ^ | ^
| |
info: `non-subscriptable` is enabled by default info: rule `non-subscriptable` is enabled by default
Found 2 diagnostics Found 2 diagnostics
@ -942,7 +942,7 @@ fn exit_code_exit_zero_is_true() -> anyhow::Result<()> {
| ^ | ^
3 | print(4[1]) # [non-subscriptable] 3 | print(4[1]) # [non-subscriptable]
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
error[non-subscriptable]: Cannot subscript object of type `Literal[4]` with no `__getitem__` method error[non-subscriptable]: Cannot subscript object of type `Literal[4]` with no `__getitem__` method
--> test.py:3:7 --> test.py:3:7
@ -951,7 +951,7 @@ fn exit_code_exit_zero_is_true() -> anyhow::Result<()> {
3 | print(4[1]) # [non-subscriptable] 3 | print(4[1]) # [non-subscriptable]
| ^ | ^
| |
info: `non-subscriptable` is enabled by default info: rule `non-subscriptable` is enabled by default
Found 2 diagnostics Found 2 diagnostics
@ -1006,7 +1006,7 @@ fn user_configuration() -> anyhow::Result<()> {
3 | 3 |
4 | for a in range(0, int(y)): 4 | for a in range(0, int(y)):
| |
info: `division-by-zero` was selected in the configuration file info: rule `division-by-zero` was selected in the configuration file
error[unresolved-reference]: Name `prin` used when not defined error[unresolved-reference]: Name `prin` used when not defined
--> main.py:7:1 --> main.py:7:1
@ -1016,7 +1016,7 @@ fn user_configuration() -> anyhow::Result<()> {
7 | prin(x) 7 | prin(x)
| ^^^^ | ^^^^
| |
info: `unresolved-reference` is enabled by default info: rule `unresolved-reference` is enabled by default
Found 2 diagnostics Found 2 diagnostics
@ -1051,7 +1051,7 @@ fn user_configuration() -> anyhow::Result<()> {
3 | 3 |
4 | for a in range(0, int(y)): 4 | for a in range(0, int(y)):
| |
info: `division-by-zero` was selected in the configuration file info: rule `division-by-zero` was selected in the configuration file
warning[unresolved-reference]: Name `prin` used when not defined warning[unresolved-reference]: Name `prin` used when not defined
--> main.py:7:1 --> main.py:7:1
@ -1061,7 +1061,7 @@ fn user_configuration() -> anyhow::Result<()> {
7 | prin(x) 7 | prin(x)
| ^^^^ | ^^^^
| |
info: `unresolved-reference` was selected in the configuration file info: rule `unresolved-reference` was selected in the configuration file
Found 2 diagnostics Found 2 diagnostics
@ -1110,7 +1110,7 @@ fn check_specific_paths() -> anyhow::Result<()> {
2 | y = 4 / 0 # error: division-by-zero 2 | y = 4 / 0 # error: division-by-zero
| ^^^^^ | ^^^^^
| |
info: `division-by-zero` is enabled by default info: rule `division-by-zero` is enabled by default
error[unresolved-import]: Cannot resolve imported module `main2` error[unresolved-import]: Cannot resolve imported module `main2`
--> project/other.py:2:6 --> project/other.py:2:6
@ -1120,7 +1120,7 @@ fn check_specific_paths() -> anyhow::Result<()> {
3 | 3 |
4 | print(z) 4 | print(z)
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
error[unresolved-import]: Cannot resolve imported module `does_not_exist` error[unresolved-import]: Cannot resolve imported module `does_not_exist`
--> project/tests/test_main.py:2:8 --> project/tests/test_main.py:2:8
@ -1128,7 +1128,7 @@ fn check_specific_paths() -> anyhow::Result<()> {
2 | import does_not_exist # error: unresolved-import 2 | import does_not_exist # error: unresolved-import
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
Found 3 diagnostics Found 3 diagnostics
@ -1153,7 +1153,7 @@ fn check_specific_paths() -> anyhow::Result<()> {
3 | 3 |
4 | print(z) 4 | print(z)
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
error[unresolved-import]: Cannot resolve imported module `does_not_exist` error[unresolved-import]: Cannot resolve imported module `does_not_exist`
--> project/tests/test_main.py:2:8 --> project/tests/test_main.py:2:8
@ -1161,7 +1161,7 @@ fn check_specific_paths() -> anyhow::Result<()> {
2 | import does_not_exist # error: unresolved-import 2 | import does_not_exist # error: unresolved-import
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
Found 2 diagnostics Found 2 diagnostics
@ -1337,7 +1337,7 @@ fn defaults_to_a_new_python_version() -> anyhow::Result<()> {
4 | os.grantpt(1) # only available on unix, Python 3.13 or newer 4 | os.grantpt(1) # only available on unix, Python 3.13 or newer
| ^^^^^^^^^^ | ^^^^^^^^^^
| |
info: `unresolved-attribute` is enabled by default info: rule `unresolved-attribute` is enabled by default
Found 1 diagnostic Found 1 diagnostic
@ -1392,7 +1392,7 @@ fn cli_config_args_toml_string_basic() -> anyhow::Result<()> {
1 | print(x) # [unresolved-reference] 1 | print(x) # [unresolved-reference]
| ^ | ^
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
Found 1 diagnostic Found 1 diagnostic
@ -1411,7 +1411,7 @@ fn cli_config_args_toml_string_basic() -> anyhow::Result<()> {
1 | print(x) # [unresolved-reference] 1 | print(x) # [unresolved-reference]
| ^ | ^
| |
info: `unresolved-reference` is enabled by default info: rule `unresolved-reference` is enabled by default
Found 1 diagnostic Found 1 diagnostic
@ -1444,7 +1444,7 @@ fn cli_config_args_overrides_knot_toml() -> anyhow::Result<()> {
1 | print(x) # [unresolved-reference] 1 | print(x) # [unresolved-reference]
| ^ | ^
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
Found 1 diagnostic Found 1 diagnostic
@ -1468,7 +1468,7 @@ fn cli_config_args_later_overrides_earlier() -> anyhow::Result<()> {
1 | print(x) # [unresolved-reference] 1 | print(x) # [unresolved-reference]
| ^ | ^
| |
info: `unresolved-reference` was selected on the command line info: rule `unresolved-reference` was selected on the command line
Found 1 diagnostic Found 1 diagnostic

View file

@ -35,6 +35,6 @@ error[invalid-assignment]: Invalid assignment to data descriptor attribute `attr
11 | instance.attr = 1 # error: [invalid-assignment] 11 | instance.attr = 1 # error: [invalid-assignment]
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ error[invalid-assignment]: Invalid assignment to data descriptor attribute `attr
12 | instance.attr = "wrong" # error: [invalid-assignment] 12 | instance.attr = "wrong" # error: [invalid-assignment]
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -36,7 +36,7 @@ error[invalid-assignment]: Object of type `Literal["wrong"]` is not assignable t
7 | 7 |
8 | C.attr = 1 # fine 8 | C.attr = 1 # fine
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```
@ -48,6 +48,6 @@ error[invalid-assignment]: Object of type `Literal["wrong"]` is not assignable t
9 | C.attr = "wrong" # error: [invalid-assignment] 9 | C.attr = "wrong" # error: [invalid-assignment]
| ^^^^^^ | ^^^^^^
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -36,7 +36,7 @@ warning[possibly-unbound-attribute]: Attribute `attr` on type `<class 'C'>` is p
7 | 7 |
8 | instance = C() 8 | instance = C()
| |
info: `possibly-unbound-attribute` is enabled by default info: rule `possibly-unbound-attribute` is enabled by default
``` ```
@ -48,6 +48,6 @@ warning[possibly-unbound-attribute]: Attribute `attr` on type `C` is possibly un
9 | instance.attr = 1 # error: [possibly-unbound-attribute] 9 | instance.attr = 1 # error: [possibly-unbound-attribute]
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
| |
info: `possibly-unbound-attribute` is enabled by default info: rule `possibly-unbound-attribute` is enabled by default
``` ```

View file

@ -36,7 +36,7 @@ error[invalid-assignment]: Object of type `Literal["wrong"]` is not assignable t
8 | 8 |
9 | C.attr = 1 # error: [invalid-attribute-access] 9 | C.attr = 1 # error: [invalid-attribute-access]
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```
@ -49,6 +49,6 @@ error[invalid-attribute-access]: Cannot assign to instance attribute `attr` from
9 | C.attr = 1 # error: [invalid-attribute-access] 9 | C.attr = 1 # error: [invalid-attribute-access]
| ^^^^^^ | ^^^^^^
| |
info: `invalid-attribute-access` is enabled by default info: rule `invalid-attribute-access` is enabled by default
``` ```

View file

@ -46,6 +46,6 @@ error[invalid-assignment]: Object of type `Literal[1]` is not assignable to attr
12 | 12 |
13 | class C2: 13 | class C2:
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -33,7 +33,7 @@ error[unresolved-attribute]: Unresolved attribute `non_existent` on type `<class
4 | 4 |
5 | instance = C() 5 | instance = C()
| |
info: `unresolved-attribute` is enabled by default info: rule `unresolved-attribute` is enabled by default
``` ```
@ -45,6 +45,6 @@ error[unresolved-attribute]: Unresolved attribute `non_existent` on type `C`.
6 | instance.non_existent = 1 # error: [unresolved-attribute] 6 | instance.non_existent = 1 # error: [unresolved-attribute]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
| |
info: `unresolved-attribute` is enabled by default info: rule `unresolved-attribute` is enabled by default
``` ```

View file

@ -36,7 +36,7 @@ error[invalid-assignment]: Object of type `Literal["wrong"]` is not assignable t
8 | 8 |
9 | instance = C() 9 | instance = C()
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```
@ -48,6 +48,6 @@ error[invalid-attribute-access]: Cannot assign to ClassVar `attr` from an instan
10 | instance.attr = 1 # error: [invalid-attribute-access] 10 | instance.attr = 1 # error: [invalid-attribute-access]
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
| |
info: `invalid-attribute-access` is enabled by default info: rule `invalid-attribute-access` is enabled by default
``` ```

View file

@ -26,6 +26,6 @@ error[unresolved-import]: Cannot resolve imported module `does_not_exist`
2 | from does_not_exist import foo, bar, baz 2 | from does_not_exist import foo, bar, baz
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -24,6 +24,6 @@ error[unresolved-import]: Cannot resolve imported module `zqzqzqzqzqzqzq`
1 | import zqzqzqzqzqzqzq # error: [unresolved-import] "Cannot resolve imported module `zqzqzqzqzqzqzq`" 1 | import zqzqzqzqzqzqzq # error: [unresolved-import] "Cannot resolve imported module `zqzqzqzqzqzqzq`"
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -36,7 +36,7 @@ error[unresolved-import]: Cannot resolve imported module `a.foo`
3 | 3 |
4 | # Topmost component unresolvable: 4 | # Topmost component unresolvable:
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```
@ -48,6 +48,6 @@ error[unresolved-import]: Cannot resolve imported module `b.foo`
5 | import b.foo # error: [unresolved-import] "Cannot resolve imported module `b.foo`" 5 | import b.foo # error: [unresolved-import] "Cannot resolve imported module `b.foo`"
| ^^^^^ | ^^^^^
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -38,7 +38,7 @@ error[not-iterable]: Object of type `Iterable` is not iterable
| |
info: It has no `__iter__` method and its `__getitem__` method has an incorrect signature for the old-style iteration protocol info: It has no `__iter__` method and its `__getitem__` method has an incorrect signature for the old-style iteration protocol
info: `__getitem__` must be at least as permissive as `def __getitem__(self, key: int): ...` to satisfy the old-style iteration protocol info: `__getitem__` must be at least as permissive as `def __getitem__(self, key: int): ...` to satisfy the old-style iteration protocol
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -29,6 +29,6 @@ error[not-iterable]: Object of type `Literal[123]` is not iterable
3 | pass 3 | pass
| |
info: It doesn't have an `__iter__` method or a `__getitem__` method info: It doesn't have an `__iter__` method or a `__getitem__` method
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -34,6 +34,6 @@ error[not-iterable]: Object of type `NotIterable` is not iterable
7 | pass 7 | pass
| |
info: Its `__iter__` attribute has type `None`, which is not callable info: Its `__iter__` attribute has type `None`, which is not callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -34,7 +34,7 @@ error[not-iterable]: Object of type `Bad` is not iterable
8 | reveal_type(x) # revealed: Unknown 8 | reveal_type(x) # revealed: Unknown
| |
info: It has no `__iter__` method and its `__getitem__` attribute has type `None`, which is not callable info: It has no `__iter__` method and its `__getitem__` attribute has type `None`, which is not callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -57,7 +57,7 @@ error[not-iterable]: Object of type `Iterable1` may not be iterable
| |
info: It has no `__iter__` method and its `__getitem__` attribute is invalid info: It has no `__iter__` method and its `__getitem__` attribute is invalid
info: `__getitem__` has type `CustomCallable`, which is not callable info: `__getitem__` has type `CustomCallable`, which is not callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```
@ -87,7 +87,7 @@ error[not-iterable]: Object of type `Iterable2` may not be iterable
| |
info: It has no `__iter__` method and its `__getitem__` attribute is invalid info: It has no `__iter__` method and its `__getitem__` attribute is invalid
info: `__getitem__` has type `(bound method Iterable2.__getitem__(key: int) -> int) | None`, which is not callable info: `__getitem__` has type `(bound method Iterable2.__getitem__(key: int) -> int) | None`, which is not callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -54,7 +54,7 @@ error[not-iterable]: Object of type `Iterable1` may not be iterable
| |
info: It has no `__iter__` method and its `__getitem__` attribute is invalid info: It has no `__iter__` method and its `__getitem__` attribute is invalid
info: `__getitem__` has type `(bound method Iterable1.__getitem__(item: int) -> str) | None`, which is not callable info: `__getitem__` has type `(bound method Iterable1.__getitem__(item: int) -> str) | None`, which is not callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```
@ -83,7 +83,7 @@ error[not-iterable]: Object of type `Iterable2` may not be iterable
| |
info: It has no `__iter__` method and its `__getitem__` method (with type `(bound method Iterable2.__getitem__(item: int) -> str) | (bound method Iterable2.__getitem__(item: str) -> int)`) may have an incorrect signature for the old-style iteration protocol info: It has no `__iter__` method and its `__getitem__` method (with type `(bound method Iterable2.__getitem__(item: int) -> str) | (bound method Iterable2.__getitem__(item: str) -> int)`) may have an incorrect signature for the old-style iteration protocol
info: `__getitem__` must be at least as permissive as `def __getitem__(self, key: int): ...` to satisfy the old-style iteration protocol info: `__getitem__` must be at least as permissive as `def __getitem__(self, key: int): ...` to satisfy the old-style iteration protocol
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -58,7 +58,7 @@ error[not-iterable]: Object of type `Iterable1` may not be iterable
info: Its `__iter__` method may have an invalid signature info: Its `__iter__` method may have an invalid signature
info: Type of `__iter__` is `(bound method Iterable1.__iter__() -> Iterator) | (bound method Iterable1.__iter__(invalid_extra_arg) -> Iterator)` info: Type of `__iter__` is `(bound method Iterable1.__iter__() -> Iterator) | (bound method Iterable1.__iter__(invalid_extra_arg) -> Iterator)`
info: Expected signature for `__iter__` is `def __iter__(self): ...` info: Expected signature for `__iter__` is `def __iter__(self): ...`
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```
@ -87,7 +87,7 @@ error[not-iterable]: Object of type `Iterable2` may not be iterable
30 | reveal_type(x) # revealed: int | Unknown 30 | reveal_type(x) # revealed: int | Unknown
| |
info: Its `__iter__` attribute (with type `(bound method Iterable2.__iter__() -> Iterator) | None`) may not be callable info: Its `__iter__` attribute (with type `(bound method Iterable2.__iter__() -> Iterator) | None`) may not be callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -61,7 +61,7 @@ error[not-iterable]: Object of type `Iterable1` may not be iterable
| |
info: Its `__iter__` method returns an object of type `Iterator1`, which may have an invalid `__next__` method info: Its `__iter__` method returns an object of type `Iterator1`, which may have an invalid `__next__` method
info: Expected signature for `__next__` is `def __next__(self): ...`) info: Expected signature for `__next__` is `def __next__(self): ...`)
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```
@ -90,7 +90,7 @@ error[not-iterable]: Object of type `Iterable2` may not be iterable
34 | reveal_type(y) # revealed: int | Unknown 34 | reveal_type(y) # revealed: int | Unknown
| |
info: Its `__iter__` method returns an object of type `Iterator2`, which has a `__next__` attribute that may not be callable info: Its `__iter__` method returns an object of type `Iterator2`, which has a `__next__` attribute that may not be callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -46,7 +46,7 @@ error[not-iterable]: Object of type `Iterable` may not be iterable
| |
info: It may not have an `__iter__` method and its `__getitem__` method has an incorrect signature for the old-style iteration protocol info: It may not have an `__iter__` method and its `__getitem__` method has an incorrect signature for the old-style iteration protocol
info: `__getitem__` must be at least as permissive as `def __getitem__(self, key: int): ...` to satisfy the old-style iteration protocol info: `__getitem__` must be at least as permissive as `def __getitem__(self, key: int): ...` to satisfy the old-style iteration protocol
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -64,7 +64,7 @@ error[not-iterable]: Object of type `Iterable1` may not be iterable
33 | reveal_type(x) # revealed: bytes | str | Unknown 33 | reveal_type(x) # revealed: bytes | str | Unknown
| |
info: It may not have an `__iter__` method and its `__getitem__` attribute (with type `(bound method Iterable1.__getitem__(item: int) -> str) | None`) may not be callable info: It may not have an `__iter__` method and its `__getitem__` attribute (with type `(bound method Iterable1.__getitem__(item: int) -> str) | None`) may not be callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```
@ -93,7 +93,7 @@ error[not-iterable]: Object of type `Iterable2` may not be iterable
| |
info: It may not have an `__iter__` method and its `__getitem__` method (with type `(bound method Iterable2.__getitem__(item: int) -> str) | (bound method Iterable2.__getitem__(item: str) -> int)`) may have an incorrect signature for the old-style iteration protocol info: It may not have an `__iter__` method and its `__getitem__` method (with type `(bound method Iterable2.__getitem__(item: int) -> str) | (bound method Iterable2.__getitem__(item: str) -> int)`) may have an incorrect signature for the old-style iteration protocol
info: `__getitem__` must be at least as permissive as `def __getitem__(self, key: int): ...` to satisfy the old-style iteration protocol info: `__getitem__` must be at least as permissive as `def __getitem__(self, key: int): ...` to satisfy the old-style iteration protocol
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -44,7 +44,7 @@ error[not-iterable]: Object of type `Iterable` may not be iterable
18 | reveal_type(x) # revealed: int | bytes 18 | reveal_type(x) # revealed: int | bytes
| |
info: It may not have an `__iter__` method or a `__getitem__` method info: It may not have an `__iter__` method or a `__getitem__` method
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -46,7 +46,7 @@ error[not-iterable]: Object of type `Test | Test2` may not be iterable
19 | reveal_type(x) # revealed: int 19 | reveal_type(x) # revealed: int
| |
info: Its `__iter__` method returns an object of type `TestIter | int`, which may not have a `__next__` method info: Its `__iter__` method returns an object of type `TestIter | int`, which may not have a `__next__` method
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -41,7 +41,7 @@ error[not-iterable]: Object of type `Test | Literal[42]` may not be iterable
14 | reveal_type(x) # revealed: int 14 | reveal_type(x) # revealed: int
| |
info: It may not have an `__iter__` method and it doesn't have a `__getitem__` method info: It may not have an `__iter__` method and it doesn't have a `__getitem__` method
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -42,7 +42,7 @@ error[not-iterable]: Object of type `NotIterable` is not iterable
12 | pass 12 | pass
| |
info: Its `__iter__` attribute has type `int | None`, which is not callable info: Its `__iter__` attribute has type `int | None`, which is not callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```
@ -55,7 +55,7 @@ info[possibly-unresolved-reference]: Name `x` used when possibly not defined
16 | reveal_type(x) 16 | reveal_type(x)
| ^ | ^
| |
info: `possibly-unresolved-reference` is enabled by default info: rule `possibly-unresolved-reference` is enabled by default
``` ```

View file

@ -35,7 +35,7 @@ error[not-iterable]: Object of type `Bad` is not iterable
9 | reveal_type(x) # revealed: Unknown 9 | reveal_type(x) # revealed: Unknown
| |
info: Its `__iter__` method returns an object of type `int`, which has no `__next__` method info: Its `__iter__` method returns an object of type `int`, which has no `__next__` method
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -40,7 +40,7 @@ error[not-iterable]: Object of type `Iterable` is not iterable
| |
info: Its `__iter__` method has an invalid signature info: Its `__iter__` method has an invalid signature
info: Expected signature `def __iter__(self): ...` info: Expected signature `def __iter__(self): ...`
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -51,7 +51,7 @@ error[not-iterable]: Object of type `Iterable1` is not iterable
| |
info: Its `__iter__` method returns an object of type `Iterator1`, which has an invalid `__next__` method info: Its `__iter__` method returns an object of type `Iterator1`, which has an invalid `__next__` method
info: Expected signature for `__next__` is `def __next__(self): ...` info: Expected signature for `__next__` is `def __next__(self): ...`
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```
@ -79,7 +79,7 @@ error[not-iterable]: Object of type `Iterable2` is not iterable
24 | reveal_type(y) # revealed: Unknown 24 | reveal_type(y) # revealed: Unknown
| |
info: Its `__iter__` method returns an object of type `Iterator2`, which has a `__next__` attribute that is not callable info: Its `__iter__` method returns an object of type `Iterator2`, which has a `__next__` attribute that is not callable
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -86,6 +86,6 @@ info: Type variable defined here
5 | 5 |
6 | def f(x: T) -> T: 6 | def f(x: T) -> T:
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -101,6 +101,6 @@ info: Type variable defined here
5 | 5 |
6 | def f(x: T) -> T: 6 | def f(x: T) -> T:
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -82,6 +82,6 @@ info: Type variable defined here
| ^^^^^^ | ^^^^^^
4 | return x 4 | return x
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -97,6 +97,6 @@ info: Type variable defined here
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
4 | return x 4 | return x
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -32,6 +32,6 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
| ^ | ^
| |
info: `__bool__` on `NotBoolable` must be callable info: `__bool__` on `NotBoolable` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ info: Function defined here
| ^^^ ------ Parameter declared here | ^^^ ------ Parameter declared here
2 | return x * x 2 | return x * x
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -38,6 +38,6 @@ info: Function defined here
| ^^^^^^ ------ Parameter declared here | ^^^^^^ ------ Parameter declared here
3 | return x * x 3 | return x * x
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -42,6 +42,6 @@ info: Function defined here
| ^^^ ------ Parameter declared here | ^^^ ------ Parameter declared here
2 | return x * x 2 | return x * x
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -40,6 +40,6 @@ info: Function defined here
| ^^^ ------ Parameter declared here | ^^^ ------ Parameter declared here
5 | return x * x 5 | return x * x
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ info: Function defined here
| ^^^ ------ Parameter declared here | ^^^ ------ Parameter declared here
2 | return x * y * z 2 | return x * y * z
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -44,6 +44,6 @@ info: Function defined here
4 | z: int, 4 | z: int,
5 | ) -> int: 5 | ) -> int:
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -39,7 +39,7 @@ info: Function defined here
| ^^^ ------ Parameter declared here | ^^^ ------ Parameter declared here
2 | return x * y * z 2 | return x * y * z
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```
@ -59,7 +59,7 @@ info: Function defined here
| ^^^ ------ Parameter declared here | ^^^ ------ Parameter declared here
2 | return x * y * z 2 | return x * y * z
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```
@ -79,6 +79,6 @@ info: Function defined here
| ^^^ ------ Parameter declared here | ^^^ ------ Parameter declared here
2 | return x * y * z 2 | return x * y * z
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -40,6 +40,6 @@ info: Function defined here
41 | *, 41 | *,
42 | cls: type[JSONDecoder] | None = None, 42 | cls: type[JSONDecoder] | None = None,
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ info: Function defined here
| ^^^ ---------- Parameter declared here | ^^^ ---------- Parameter declared here
2 | return x * y * z 2 | return x * y * z
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ info: Function defined here
| ^^^ ---------- Parameter declared here | ^^^ ---------- Parameter declared here
2 | return x * y * z 2 | return x * y * z
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ info: Function defined here
| ^^^ ---------- Parameter declared here | ^^^ ---------- Parameter declared here
2 | return x * y * z 2 | return x * y * z
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ info: Function defined here
| ^^^ ------ Parameter declared here | ^^^ ------ Parameter declared here
2 | return x * y * z 2 | return x * y * z
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -38,6 +38,6 @@ info: Function defined here
| ^^^^^^^^ ------ Parameter declared here | ^^^^^^^^ ------ Parameter declared here
3 | return 1 3 | return 1
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ info: Function defined here
| ^^^ ------------- Parameter declared here | ^^^ ------------- Parameter declared here
2 | return len(numbers) 2 | return len(numbers)
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -36,6 +36,6 @@ info: Function defined here
| ^^^ -------------- Parameter declared here | ^^^ -------------- Parameter declared here
2 | return len(numbers) 2 | return len(numbers)
| |
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -38,7 +38,7 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
11 | 10 not in WithContains() 11 | 10 not in WithContains()
| |
info: `__bool__` on `NotBoolable` must be callable info: `__bool__` on `NotBoolable` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```
@ -52,6 +52,6 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
| |
info: `__bool__` on `NotBoolable` must be callable info: `__bool__` on `NotBoolable` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -122,7 +122,7 @@ info: The definition of class `Foo` will raise `TypeError` at runtime
4 | 4 |
5 | reveal_type(Foo.__mro__) # revealed: tuple[<class 'Foo'>, Unknown, <class 'object'>] 5 | reveal_type(Foo.__mro__) # revealed: tuple[<class 'Foo'>, Unknown, <class 'object'>]
| |
info: `duplicate-base` is enabled by default info: rule `duplicate-base` is enabled by default
``` ```
@ -174,7 +174,7 @@ info: The definition of class `Ham` will raise `TypeError` at runtime
22 | Eggs, 22 | Eggs,
23 | ): ... 23 | ): ...
| |
info: `duplicate-base` is enabled by default info: rule `duplicate-base` is enabled by default
``` ```
@ -211,7 +211,7 @@ info: The definition of class `Ham` will raise `TypeError` at runtime
| ^^^^ Class `Eggs` later repeated here | ^^^^ Class `Eggs` later repeated here
23 | ): ... 23 | ): ...
| |
info: `duplicate-base` is enabled by default info: rule `duplicate-base` is enabled by default
``` ```
@ -250,7 +250,7 @@ info: The definition of class `Omelette` will raise `TypeError` at runtime
31 | 31 |
32 | reveal_type(Omelette.__mro__) # revealed: tuple[<class 'Omelette'>, Unknown, <class 'object'>] 32 | reveal_type(Omelette.__mro__) # revealed: tuple[<class 'Omelette'>, Unknown, <class 'object'>]
| |
info: `duplicate-base` is enabled by default info: rule `duplicate-base` is enabled by default
``` ```
@ -309,7 +309,7 @@ info: The definition of class `VeryEggyOmelette` will raise `TypeError` at runti
| ^^^^ Class `Eggs` later repeated here | ^^^^ Class `Eggs` later repeated here
47 | ): ... 47 | ): ...
| |
info: `duplicate-base` is enabled by default info: rule `duplicate-base` is enabled by default
``` ```
@ -340,7 +340,7 @@ info: The definition of class `D` will raise `TypeError` at runtime
| ^ Class `A` later repeated here | ^ Class `A` later repeated here
73 | ): ... 73 | ): ...
| |
info: `duplicate-base` is enabled by default info: rule `duplicate-base` is enabled by default
``` ```
@ -383,7 +383,7 @@ info: The definition of class `E` will raise `TypeError` at runtime
79 | ): 79 | ):
80 | # error: [unused-ignore-comment] 80 | # error: [unused-ignore-comment]
| |
info: `duplicate-base` is enabled by default info: rule `duplicate-base` is enabled by default
``` ```

View file

@ -24,6 +24,6 @@ error[no-matching-overload]: No overload of class `type` matches arguments
1 | type("Foo", ()) # error: [no-matching-overload] 1 | type("Foo", ()) # error: [no-matching-overload]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
| |
info: `no-matching-overload` is enabled by default info: rule `no-matching-overload` is enabled by default
``` ```

View file

@ -30,6 +30,6 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
| |
info: `__bool__` on `NotBoolable` must be callable info: `__bool__` on `NotBoolable` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -47,7 +47,7 @@ error[invalid-overload]: Overloaded function `func` requires at least two overlo
| ^^^^ | ^^^^
8 | return x 8 | return x
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```
@ -62,6 +62,6 @@ error[invalid-overload]: Overloaded function `func` requires at least two overlo
| | | |
| Only one overload defined here | Only one overload defined here
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```

View file

@ -86,7 +86,7 @@ error[invalid-overload]: Overloaded function `try_from1` does not use the `@clas
17 | if isinstance(x, int): 17 | if isinstance(x, int):
18 | return cls(x) 18 | return cls(x)
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```
@ -109,7 +109,7 @@ error[invalid-overload]: Overloaded function `try_from2` does not use the `@clas
23 | @overload 23 | @overload
24 | @classmethod 24 | @classmethod
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```
@ -126,6 +126,6 @@ error[invalid-overload]: Overloaded function `try_from3` does not use the `@clas
41 | if isinstance(x, int): 41 | if isinstance(x, int):
42 | return cls(x) 42 | return cls(x)
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```

View file

@ -76,7 +76,7 @@ error[invalid-overload]: `@final` decorator should be applied only to the overlo
| Implementation defined here | Implementation defined here
19 | return x 19 | return x
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```
@ -92,7 +92,7 @@ error[invalid-overload]: `@final` decorator should be applied only to the overlo
| Implementation defined here | Implementation defined here
28 | return x 28 | return x
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```
@ -109,6 +109,6 @@ error[invalid-overload]: `@final` decorator should be applied only to the first
15 | def method2(self, x: str) -> str: ... 15 | def method2(self, x: str) -> str: ...
| ^^^^^^^ | ^^^^^^^
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```

View file

@ -93,7 +93,7 @@ error[invalid-overload]: `@override` decorator should be applied only to the ove
| Implementation defined here | Implementation defined here
28 | return x 28 | return x
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```
@ -109,7 +109,7 @@ error[invalid-overload]: `@override` decorator should be applied only to the ove
| Implementation defined here | Implementation defined here
38 | return x 38 | return x
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```
@ -127,6 +127,6 @@ error[invalid-overload]: `@override` decorator should be applied only to the fir
22 | def method(self, x: str) -> str: ... 22 | def method(self, x: str) -> str: ...
| ^^^^^^ | ^^^^^^
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```

View file

@ -41,7 +41,7 @@ error[invalid-overload]: Overloaded non-stub function `func` must have an implem
8 | 8 |
9 | class Foo: 9 | class Foo:
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```
@ -54,6 +54,6 @@ error[invalid-overload]: Overloaded non-stub function `method` must have an impl
14 | def method(self, x: str) -> str: ... 14 | def method(self, x: str) -> str: ...
| ^^^^^^ | ^^^^^^
| |
info: `invalid-overload` is enabled by default info: rule `invalid-overload` is enabled by default
``` ```

View file

@ -51,7 +51,7 @@ error[call-non-callable]: Object of type `typing.Protocol` is not callable
5 | 5 |
6 | class MyProtocol(Protocol): 6 | class MyProtocol(Protocol):
| |
info: `call-non-callable` is enabled by default info: rule `call-non-callable` is enabled by default
``` ```
@ -87,7 +87,7 @@ info: Protocol classes cannot be instantiated
| ^^^^^^^^^^^^^^^^^^^^ `MyProtocol` declared as a protocol here | ^^^^^^^^^^^^^^^^^^^^ `MyProtocol` declared as a protocol here
7 | x: int 7 | x: int
| |
info: `call-non-callable` is enabled by default info: rule `call-non-callable` is enabled by default
``` ```
@ -122,7 +122,7 @@ info: Protocol classes cannot be instantiated
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `GenericProtocol` declared as a protocol here | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `GenericProtocol` declared as a protocol here
13 | x: T 13 | x: T
| |
info: `call-non-callable` is enabled by default info: rule `call-non-callable` is enabled by default
``` ```

View file

@ -52,7 +52,7 @@ info: `NotAProtocol` is declared here, but it is not a protocol class:
| |
info: A class is only a protocol class if it directly inherits from `typing.Protocol` or `typing_extensions.Protocol` info: A class is only a protocol class if it directly inherits from `typing.Protocol` or `typing_extensions.Protocol`
info: See https://typing.python.org/en/latest/spec/protocol.html# info: See https://typing.python.org/en/latest/spec/protocol.html#
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```
@ -79,6 +79,6 @@ info: `AlsoNotAProtocol` is declared here, but it is not a protocol class:
| |
info: A class is only a protocol class if it directly inherits from `typing.Protocol` or `typing_extensions.Protocol` info: A class is only a protocol class if it directly inherits from `typing.Protocol` or `typing_extensions.Protocol`
info: See https://typing.python.org/en/latest/spec/protocol.html# info: See https://typing.python.org/en/latest/spec/protocol.html#
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -77,7 +77,7 @@ info: `HasX` is declared as a protocol class, but it is not declared as runtime-
| |
info: A protocol class can only be used in `isinstance` checks if it is decorated with `@typing.runtime_checkable` or `@typing_extensions.runtime_checkable` info: A protocol class can only be used in `isinstance` checks if it is decorated with `@typing.runtime_checkable` or `@typing_extensions.runtime_checkable`
info: See https://docs.python.org/3/library/typing.html#typing.runtime_checkable info: See https://docs.python.org/3/library/typing.html#typing.runtime_checkable
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```
@ -131,7 +131,7 @@ info: `HasX` is declared as a protocol class, but it is not declared as runtime-
| |
info: A protocol class can only be used in `issubclass` checks if it is decorated with `@typing.runtime_checkable` or `@typing_extensions.runtime_checkable` info: A protocol class can only be used in `issubclass` checks if it is decorated with `@typing.runtime_checkable` or `@typing_extensions.runtime_checkable`
info: See https://docs.python.org/3/library/typing.html#typing.runtime_checkable info: See https://docs.python.org/3/library/typing.html#typing.runtime_checkable
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -66,7 +66,7 @@ error[invalid-return-type]: Return type does not match returned value
| |
info: Function is inferred as returning `types.GeneratorType` because it is a generator function info: Function is inferred as returning `types.GeneratorType` because it is a generator function
info: See https://docs.python.org/3/glossary.html#term-generator for more details info: See https://docs.python.org/3/glossary.html#term-generator for more details
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -82,6 +82,6 @@ error[invalid-return-type]: Return type does not match returned value
| |
info: Function is inferred as returning `types.AsyncGeneratorType` because it is an async generator function info: Function is inferred as returning `types.AsyncGeneratorType` because it is an async generator function
info: See https://docs.python.org/3/glossary.html#term-asynchronous-generator for more details info: See https://docs.python.org/3/glossary.html#term-asynchronous-generator for more details
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```

View file

@ -45,7 +45,7 @@ error[invalid-return-type]: Return type does not match returned value
7 | 7 |
8 | def f(cond: bool) -> str: 8 | def f(cond: bool) -> str:
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -64,7 +64,7 @@ error[invalid-return-type]: Return type does not match returned value
12 | else: 12 | else:
13 | # error: [invalid-return-type] 13 | # error: [invalid-return-type]
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -86,6 +86,6 @@ error[invalid-return-type]: Return type does not match returned value
9 | if cond: 9 | if cond:
10 | # error: [invalid-return-type] 10 | # error: [invalid-return-type]
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```

View file

@ -52,7 +52,7 @@ error[invalid-return-type]: Return type does not match returned value
5 | 5 |
6 | # error: [invalid-return-type] 6 | # error: [invalid-return-type]
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -66,7 +66,7 @@ error[invalid-return-type]: Function can implicitly return `None`, which is not
8 | if cond: 8 | if cond:
9 | return 1 9 | return 1
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -80,7 +80,7 @@ error[invalid-return-type]: Function can implicitly return `None`, which is not
13 | if cond: 13 | if cond:
14 | raise ValueError() 14 | raise ValueError()
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -94,6 +94,6 @@ error[invalid-return-type]: Function can implicitly return `None`, which is not
18 | if cond: 18 | if cond:
19 | cond = False 19 | cond = False
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```

View file

@ -43,7 +43,7 @@ error[invalid-return-type]: Function can implicitly return `None`, which is not
| ^^^ | ^^^
3 | 1 3 | 1
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -61,7 +61,7 @@ error[invalid-return-type]: Return type does not match returned value
8 | 8 |
9 | def f() -> int: 9 | def f() -> int:
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -79,7 +79,7 @@ error[invalid-return-type]: Return type does not match returned value
12 | 12 |
13 | from typing import TypeVar 13 | from typing import TypeVar
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -91,6 +91,6 @@ error[invalid-return-type]: Function can implicitly return `None`, which is not
18 | def m(x: T) -> T: ... 18 | def m(x: T) -> T: ...
| ^ | ^
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```

View file

@ -41,7 +41,7 @@ error[invalid-return-type]: Return type does not match returned value
4 | 4 |
5 | # error: [invalid-return-type] 5 | # error: [invalid-return-type]
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -55,7 +55,7 @@ error[invalid-return-type]: Function can implicitly return `None`, which is not
7 | print("...") 7 | print("...")
8 | ... 8 | ...
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```
@ -69,6 +69,6 @@ error[invalid-return-type]: Function can implicitly return `None`, which is not
12 | f"""{foo} is a function that ...""" 12 | f"""{foo} is a function that ..."""
13 | ... 13 | ...
| |
info: `invalid-return-type` is enabled by default info: rule `invalid-return-type` is enabled by default
``` ```

View file

@ -43,7 +43,7 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
14 | 10 < Comparable() < Comparable() 14 | 10 < Comparable() < Comparable()
| |
info: `__bool__` on `NotBoolable` must be callable info: `__bool__` on `NotBoolable` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```
@ -59,6 +59,6 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
16 | Comparable() < Comparable() # fine 16 | Comparable() < Comparable() # fine
| |
info: `__bool__` on `NotBoolable` must be callable info: `__bool__` on `NotBoolable` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -29,6 +29,6 @@ error[invalid-assignment]: Implicit shadowing of class `C`
| ^ | ^
| |
info: Annotate to make it explicit if this is intentional info: Annotate to make it explicit if this is intentional
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -29,6 +29,6 @@ error[invalid-assignment]: Implicit shadowing of function `f`
| ^ | ^
| |
info: Annotate to make it explicit if this is intentional info: Annotate to make it explicit if this is intentional
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -44,6 +44,6 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
17 | a < b # fine 17 | a < b # fine
| |
info: `__bool__` on `NotBoolable | Literal[False]` must be callable info: `__bool__` on `NotBoolable | Literal[False]` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -34,6 +34,6 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
| |
info: `__bool__` on `NotBoolable` must be callable info: `__bool__` on `NotBoolable` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -50,7 +50,7 @@ info: Function defined here
| |
info: Union variant `def f2(name: str) -> int` is incompatible with this call site info: Union variant `def f2(name: str) -> int` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int)` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int)`
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```
@ -65,6 +65,6 @@ error[too-many-positional-arguments]: Too many positional arguments to function
| |
info: Union variant `def f1() -> int` is incompatible with this call site info: Union variant `def f1() -> int` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int)` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int)`
info: `too-many-positional-arguments` is enabled by default info: rule `too-many-positional-arguments` is enabled by default
``` ```

View file

@ -49,6 +49,6 @@ info: Function defined here
| |
info: Union variant `def f2(name: str) -> int` is incompatible with this call site info: Union variant `def f2(name: str) -> int` is incompatible with this call site
info: Attempted to call union type `(def f1(a: int) -> int) | (def f2(name: str) -> int)` info: Attempted to call union type `(def f1(a: int) -> int) | (def f2(name: str) -> int)`
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```

View file

@ -41,7 +41,7 @@ error[parameter-already-assigned]: Multiple values provided for parameter `name`
| |
info: Union variant `def f1(name: str) -> int` is incompatible with this call site info: Union variant `def f1(name: str) -> int` is incompatible with this call site
info: Attempted to call union type `(def f1(name: str) -> int) | (def any(*args, **kwargs) -> int)` info: Attempted to call union type `(def f1(name: str) -> int) | (def any(*args, **kwargs) -> int)`
info: `parameter-already-assigned` is enabled by default info: rule `parameter-already-assigned` is enabled by default
``` ```
@ -56,6 +56,6 @@ error[unknown-argument]: Argument `unknown` does not match any known parameter o
| |
info: Union variant `def f1(name: str) -> int` is incompatible with this call site info: Union variant `def f1(name: str) -> int` is incompatible with this call site
info: Attempted to call union type `(def f1(name: str) -> int) | (def any(*args, **kwargs) -> int)` info: Attempted to call union type `(def f1(name: str) -> int) | (def any(*args, **kwargs) -> int)`
info: `unknown-argument` is enabled by default info: rule `unknown-argument` is enabled by default
``` ```

View file

@ -75,7 +75,7 @@ error[call-non-callable]: Object of type `Literal[5]` is not callable
| |
info: Union variant `Literal[5]` is incompatible with this call site info: Union variant `Literal[5]` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable`
info: `call-non-callable` is enabled by default info: rule `call-non-callable` is enabled by default
``` ```
@ -90,7 +90,7 @@ error[call-non-callable]: Object of type `PossiblyNotCallable` is not callable (
| |
info: Union variant `PossiblyNotCallable` is incompatible with this call site info: Union variant `PossiblyNotCallable` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable`
info: `call-non-callable` is enabled by default info: rule `call-non-callable` is enabled by default
``` ```
@ -105,7 +105,7 @@ error[missing-argument]: No argument provided for required parameter `b` of func
| |
info: Union variant `def f3(a: int, b: int) -> int` is incompatible with this call site info: Union variant `def f3(a: int, b: int) -> int` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable`
info: `missing-argument` is enabled by default info: rule `missing-argument` is enabled by default
``` ```
@ -120,7 +120,7 @@ error[no-matching-overload]: No overload of method wrapper `__get__` of function
| |
info: Union variant `<method-wrapper `__get__` of `f`>` is incompatible with this call site info: Union variant `<method-wrapper `__get__` of `f`>` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable`
info: `no-matching-overload` is enabled by default info: rule `no-matching-overload` is enabled by default
``` ```
@ -144,7 +144,7 @@ info: Function defined here
| |
info: Union variant `def f2(name: str) -> int` is incompatible with this call site info: Union variant `def f2(name: str) -> int` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable`
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```
@ -168,7 +168,7 @@ info: Type variable defined here
| |
info: Union variant `def f4(x: T) -> int` is incompatible with this call site info: Union variant `def f4(x: T) -> int` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable`
info: `invalid-argument-type` is enabled by default info: rule `invalid-argument-type` is enabled by default
``` ```
@ -183,6 +183,6 @@ error[too-many-positional-arguments]: Too many positional arguments to function
| |
info: Union variant `def f1() -> int` is incompatible with this call site info: Union variant `def f1() -> int` is incompatible with this call site
info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable` info: Attempted to call union type `(def f1() -> int) | (def f2(name: str) -> int) | (def f3(a: int, b: int) -> int) | (def f4(x: T) -> int) | Literal[5] | Unknown | (<method-wrapper `__get__` of `f`>) | PossiblyNotCallable`
info: `too-many-positional-arguments` is enabled by default info: rule `too-many-positional-arguments` is enabled by default
``` ```

View file

@ -26,6 +26,6 @@ error[invalid-assignment]: Not enough values to unpack
| | | |
| Expected 2 | Expected 2
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -26,6 +26,6 @@ error[invalid-assignment]: Too many values to unpack
| | | |
| Expected 2 | Expected 2
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -25,6 +25,6 @@ error[not-iterable]: Object of type `Literal[1]` is not iterable
| ^ | ^
| |
info: It doesn't have an `__iter__` method or a `__getitem__` method info: It doesn't have an `__iter__` method or a `__getitem__` method
info: `not-iterable` is enabled by default info: rule `not-iterable` is enabled by default
``` ```

View file

@ -26,6 +26,6 @@ error[invalid-assignment]: Not enough values to unpack
| | | |
| Expected 3 or more | Expected 3 or more
| |
info: `invalid-assignment` is enabled by default info: rule `invalid-assignment` is enabled by default
``` ```

View file

@ -28,6 +28,6 @@ error[unresolved-import]: Cannot resolve imported module `does_not_exist`
2 | 2 |
3 | x = does_not_exist.foo 3 | x = does_not_exist.foo
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -31,6 +31,6 @@ error[unresolved-import]: Module `a` has no member `does_not_exist`
1 | from a import does_exist1, does_not_exist, does_exist2 # error: [unresolved-import] 1 | from a import does_exist1, does_not_exist, does_exist2 # error: [unresolved-import]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -28,6 +28,6 @@ error[unresolved-import]: Cannot resolve imported module `.does_not_exist`
2 | 2 |
3 | stat = add(10, 15) 3 | stat = add(10, 15)
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -28,6 +28,6 @@ error[unresolved-import]: Cannot resolve imported module `.does_not_exist.foo.ba
2 | 2 |
3 | stat = add(10, 15) 3 | stat = add(10, 15)
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -28,6 +28,6 @@ error[unresolved-import]: Cannot resolve imported module `does_not_exist`
2 | 2 |
3 | stat = add(10, 15) 3 | stat = add(10, 15)
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -40,6 +40,6 @@ error[unresolved-import]: Cannot resolve imported module `....foo`
2 | 2 |
3 | stat = add(10, 15) 3 | stat = add(10, 15)
| |
info: `unresolved-import` is enabled by default info: rule `unresolved-import` is enabled by default
``` ```

View file

@ -32,6 +32,6 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for type `
| ^ | ^
| |
info: `__bool__` on `NotBoolable` must be callable info: `__bool__` on `NotBoolable` must be callable
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -42,6 +42,6 @@ info: `str` is not assignable to `bool`
| Method defined here | Method defined here
3 | return "wat" 3 | return "wat"
| |
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -42,6 +42,6 @@ info: `__bool__` methods must only have a `self` parameter
| Method defined here | Method defined here
3 | return False 3 | return False
| |
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -39,6 +39,6 @@ error[unsupported-bool-conversion]: Boolean conversion is unsupported for union
15 | 10 and get() and True 15 | 10 and get() and True
| ^^^^^ | ^^^^^
| |
info: `unsupported-bool-conversion` is enabled by default info: rule `unsupported-bool-conversion` is enabled by default
``` ```

View file

@ -318,10 +318,13 @@ impl Drop for LintDiagnosticGuard<'_, '_> {
diag.sub(SubDiagnostic::new( diag.sub(SubDiagnostic::new(
Severity::Info, Severity::Info,
match self.source { match self.source {
LintSource::Default => format!("`{}` is enabled by default", diag.id()), LintSource::Default => format!("rule `{}` is enabled by default", diag.id()),
LintSource::Cli => format!("`{}` was selected on the command line", diag.id()), LintSource::Cli => format!("rule `{}` was selected on the command line", diag.id()),
LintSource::File => { LintSource::File => {
format!("`{}` was selected in the configuration file", diag.id()) format!(
"rule `{}` was selected in the configuration file",
diag.id()
)
} }
}, },
)); ));