mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-19 01:50:38 +00:00
[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
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:
parent
d944a1397e
commit
fcd858e0c8
90 changed files with 184 additions and 181 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -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()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue