Skip to content

Commit

Permalink
[flake8-pyi] - fix dropped exprs in PYI030 autofix (#13727)
Browse files Browse the repository at this point in the history
  • Loading branch information
diceroll123 authored Oct 13, 2024
1 parent 3209953 commit 46bc69d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,7 @@ def func2() -> Literal[1] | Literal[2]: # Error

# Should use the first literal subscript attribute when fixing
field25: typing.Union[typing_extensions.Literal[1], typing.Union[Literal[2], typing.Union[Literal[3], Literal[4]]], str] # Error

from typing import IO, Literal

InlineOption = Literal["a"] | Literal["b"] | IO[str]
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ pub(crate) fn unnecessary_literal_union<'a>(checker: &mut Checker, expr: &'a Exp
} else {
literal_exprs.push(slice);
}
} else {
other_exprs.push(expr);
}
} else {
other_exprs.push(expr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,8 @@ PYI030.py:89:10: PYI030 [*] Multiple literal members in a union. Use a single li
88 | # Should use the first literal subscript attribute when fixing
89 | field25: typing.Union[typing_extensions.Literal[1], typing.Union[Literal[2], typing.Union[Literal[3], Literal[4]]], str] # Error
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PYI030
90 |
91 | from typing import IO, Literal
|
= help: Replace with a single `Literal`

Expand All @@ -526,5 +528,22 @@ PYI030.py:89:10: PYI030 [*] Multiple literal members in a union. Use a single li
88 88 | # Should use the first literal subscript attribute when fixing
89 |-field25: typing.Union[typing_extensions.Literal[1], typing.Union[Literal[2], typing.Union[Literal[3], Literal[4]]], str] # Error
89 |+field25: typing.Union[typing_extensions.Literal[1, 2, 3, 4], str] # Error
90 90 |
91 91 | from typing import IO, Literal
92 92 |

PYI030.py:93:16: PYI030 [*] Multiple literal members in a union. Use a single literal, e.g. `Literal["a", "b"]`
|
91 | from typing import IO, Literal
92 |
93 | InlineOption = Literal["a"] | Literal["b"] | IO[str]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PYI030
|
= help: Replace with a single `Literal`

Safe fix
90 90 |
91 91 | from typing import IO, Literal
92 92 |
93 |-InlineOption = Literal["a"] | Literal["b"] | IO[str]
93 |+InlineOption = Literal["a", "b"] | IO[str]

0 comments on commit 46bc69d

Please # to comment.