summaryrefslogtreecommitdiff
path: root/tests/functional/ext/set_membership/set_membership_use_set_membership.py
blob: 50e07f4dddf8425b0de4ddea48e4dd62799eac0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# pylint: disable=invalid-name,missing-docstring,pointless-statement,unnecessary-comprehension,undefined-variable

x = 1
var = frozenset({1, 2, 3})

x in var
x in {1, 2, 3}
x in (1, 2, 3)  # [use-set-for-membership]
x in [1, 2, 3]  # [use-set-for-membership]

if x in var:
    pass
if x in {1, 2, 3}:
    pass
if x in (1, 2, 3):  # [use-set-for-membership]
    pass
if x in [1, 2, 3]:  # [use-set-for-membership]
    pass

42 if x in [1, 2, 3] else None  # [use-set-for-membership]
assert x in [1, 2, 3]  # [use-set-for-membership]
(x for x in var if x in [1, 2, 3])  # [use-set-for-membership]
while x in [1, 2, 3]:  # [use-set-for-membership]
    break

# Stacked operators, rightmost pair is evaluated first
# Doesn't make much sense in practice since `in` will only return `bool`
True == x in [1, 2, 3]  # [use-set-for-membership]  # noqa: E712
1 >= x in [1, 2, 3]  # [use-set-for-membership]  # noqa: E712


# Test hashable heuristic
x in (1, "Hello World", False, None)  # [use-set-for-membership]
x in (1, [])  # List is not hashable

if some_var:
    var2 = 2
else:
    var2 = []
x in (1, var2)  # var2 can be a list