mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-01 06:11:43 +00:00

## Summary Follow-up to #15779. Prior to this change, non-name expressions are not reported at all: ```python type(a.b) is type(None) # no error ``` This change enhances the rule so that such cases are also reported in preview. Additionally: * The fix will now be marked as unsafe if there are any comments within its range. * Error messages are slightly modified. ## Test Plan `cargo nextest run` and `cargo insta test`. --------- Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
84 lines
869 B
Python
84 lines
869 B
Python
foo = None
|
|
|
|
# Error.
|
|
|
|
type(foo) is type(None)
|
|
|
|
type(None) is type(foo)
|
|
|
|
type(None) is type(None)
|
|
|
|
type(foo) is not type(None)
|
|
|
|
type(None) is not type(foo)
|
|
|
|
type(None) is not type(None)
|
|
|
|
type(foo) == type(None)
|
|
|
|
type(None) == type(foo)
|
|
|
|
type(None) == type(None)
|
|
|
|
type(foo) != type(None)
|
|
|
|
type(None) != type(foo)
|
|
|
|
type(None) != type(None)
|
|
|
|
type(a.b) is type(None)
|
|
|
|
type(
|
|
a(
|
|
# Comment
|
|
)
|
|
) != type(None)
|
|
|
|
type(
|
|
a := 1
|
|
) == type(None)
|
|
|
|
type(
|
|
a for a in range(0)
|
|
) is not type(None)
|
|
|
|
|
|
# Ok.
|
|
|
|
foo is None
|
|
|
|
foo is not None
|
|
|
|
None is foo
|
|
|
|
None is not foo
|
|
|
|
None is None
|
|
|
|
None is not None
|
|
|
|
foo is type(None)
|
|
|
|
type(foo) is None
|
|
|
|
type(None) is None
|
|
|
|
foo is not type(None)
|
|
|
|
type(foo) is not None
|
|
|
|
type(None) is not None
|
|
|
|
foo == type(None)
|
|
|
|
type(foo) == None
|
|
|
|
type(None) == None
|
|
|
|
foo != type(None)
|
|
|
|
type(foo) != None
|
|
|
|
type(None) != None
|
|
|
|
type(foo) > type(None)
|