From 4a2ccac437cf99f009a149d0fec7c34eefc75684 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Fri, 24 Jan 2025 12:40:43 -0800 Subject: [PATCH] Do not trigger PLR6201 on empty collections --- .../resources/test/fixtures/pylint/literal_membership.py | 2 ++ .../ruff_linter/src/rules/pylint/rules/literal_membership.rs | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/crates/ruff_linter/resources/test/fixtures/pylint/literal_membership.py b/crates/ruff_linter/resources/test/fixtures/pylint/literal_membership.py index 446eda66d00c2..45ebdd273e565 100644 --- a/crates/ruff_linter/resources/test/fixtures/pylint/literal_membership.py +++ b/crates/ruff_linter/resources/test/fixtures/pylint/literal_membership.py @@ -13,3 +13,5 @@ fruits in [1, 2, 3] 1 in [[1, 2, 3], [4, 5, 6]] _ = {key: value for key, value in {"a": 1, "b": 2}.items() if key in (["a", "b"], ["c", "d"])} +1 in [] +1 in () diff --git a/crates/ruff_linter/src/rules/pylint/rules/literal_membership.rs b/crates/ruff_linter/src/rules/pylint/rules/literal_membership.rs index 6759eb6983be8..3e518b4d7098f 100644 --- a/crates/ruff_linter/src/rules/pylint/rules/literal_membership.rs +++ b/crates/ruff_linter/src/rules/pylint/rules/literal_membership.rs @@ -65,6 +65,11 @@ pub(crate) fn literal_membership(checker: &mut Checker, compare: &ast::ExprCompa _ => return, }; + // Skip empty collections (#15729). + if elts.is_empty() { + return; + } + // If `left`, or any of the elements in `right`, are known to _not_ be hashable, return. if std::iter::once(compare.left.as_ref()) .chain(elts)