summaryrefslogtreecommitdiff
path: root/tests/functional/ext/redefined_loop_name/redefined_loop_name.py
blob: 0af49f9bfdbe372a26be6f86290431fba2e28c8e (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
41
42
43
44
45
46
47
48
49
50
51
52
53
"""Tests for redefinitions of loop variables inside the loop body.

See: https://github.com/PyCQA/pylint/issues/5608
"""
# pylint: disable=invalid-name

lines = ["1\t", "2\t"]
for line in lines:
    line = line.strip()  # [redefined-loop-name]

for i in range(8):
    for j in range(8):
        for i in range(j):  # [redefined-loop-name]
            j = i  # [redefined-loop-name]
            print(i, j)

for i in range(8):
    for j in range(8):
        for k in range(j):
            k = (i, j)  # [redefined-loop-name]
            print(i, j, k)

lines = [(1, "1\t"), (2, "2\t")]
for i, line in lines:
    line = line.strip()  # [redefined-loop-name]

line = "no warning"

for i in range(10):
    i += 1  # [redefined-loop-name]


def outer():
    """No redefined-loop-name for variables in nested scopes"""
    for i1 in range(5):
        def inner():
            """No warning, because i has a new scope"""
            for i1 in range(3):
                print(i1)
        print(i1)
        inner()


def outer2():
    """Similar, but with an assignment instead of homonymous loop variables"""
    for i1 in range(5):
        def inner():
            """No warning, because i has a new scope"""
            for _ in range(3):
                i1 = 0
                print(i1)
        print(i1)
        inner()