mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 18:58:04 +00:00
[refurb
] Avoid None | None
as well as better detection and fix (FURB168
) (#15779)
This commit is contained in:
parent
4df0796d61
commit
59be5f5278
3 changed files with 212 additions and 64 deletions
|
@ -5,28 +5,45 @@ foo: object
|
|||
if isinstance(foo, type(None)):
|
||||
pass
|
||||
|
||||
if isinstance(foo, (type(None))):
|
||||
if isinstance(foo and bar, type(None)):
|
||||
pass
|
||||
|
||||
if isinstance(foo, (type(None), type(None), type(None))):
|
||||
pass
|
||||
|
||||
if isinstance(foo, None | None):
|
||||
if isinstance(foo, type(None)) is True:
|
||||
pass
|
||||
|
||||
if isinstance(foo, (None | None)):
|
||||
if -isinstance(foo, type(None)):
|
||||
pass
|
||||
|
||||
if isinstance(foo, None | type(None)):
|
||||
pass
|
||||
|
||||
if isinstance(foo, (None | type(None))):
|
||||
if isinstance(foo, type(None) | type(None)):
|
||||
pass
|
||||
|
||||
# A bit contrived, but is both technically valid and equivalent to the above.
|
||||
if isinstance(foo, (type(None) | ((((type(None))))) | ((None | type(None))))):
|
||||
pass
|
||||
|
||||
if isinstance(
|
||||
foo, # Comment
|
||||
None
|
||||
):
|
||||
...
|
||||
|
||||
from typing import Union
|
||||
|
||||
if isinstance(foo, Union[None]):
|
||||
...
|
||||
|
||||
if isinstance(foo, Union[None, None]):
|
||||
...
|
||||
|
||||
if isinstance(foo, Union[None, type(None)]):
|
||||
...
|
||||
|
||||
|
||||
# Okay.
|
||||
|
||||
|
@ -42,6 +59,12 @@ if isinstance(foo, (int, str)):
|
|||
if isinstance(foo, (int, type(None), str)):
|
||||
pass
|
||||
|
||||
if isinstance(foo, str | None):
|
||||
pass
|
||||
|
||||
if isinstance(foo, Union[None, str]):
|
||||
...
|
||||
|
||||
# This is a TypeError, which the rule ignores.
|
||||
if isinstance(foo, None):
|
||||
pass
|
||||
|
@ -49,3 +72,16 @@ if isinstance(foo, None):
|
|||
# This is also a TypeError, which the rule ignores.
|
||||
if isinstance(foo, (None,)):
|
||||
pass
|
||||
|
||||
if isinstance(foo, None | None):
|
||||
pass
|
||||
|
||||
if isinstance(foo, (type(None) | ((((type(None))))) | ((None | None | type(None))))):
|
||||
pass
|
||||
|
||||
# https://github.com/astral-sh/ruff/issues/15776
|
||||
def _():
|
||||
def type(*args): ...
|
||||
|
||||
if isinstance(foo, type(None)):
|
||||
...
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue