diff options
-rw-r--r-- | pylint/checkers/refactoring/recommendation_checker.py | 3 | ||||
-rw-r--r-- | tests/functional/u/use/use_maxsplit_arg.py | 3 | ||||
-rw-r--r-- | tests/functional/u/use/use_maxsplit_arg.txt | 42 |
3 files changed, 25 insertions, 23 deletions
diff --git a/pylint/checkers/refactoring/recommendation_checker.py b/pylint/checkers/refactoring/recommendation_checker.py index 6445b2da2..0cb724985 100644 --- a/pylint/checkers/refactoring/recommendation_checker.py +++ b/pylint/checkers/refactoring/recommendation_checker.py @@ -108,14 +108,17 @@ class RecommendationChecker(checkers.BaseChecker): # Check if loop present within the scope of the node scope = node.scope() for loop_node in scope.nodes_of_class((astroid.For, astroid.While)): + loop_node = cast(astroid.node_classes.NodeNG, loop_node) if not loop_node.parent_of(node): continue # Check if var is mutated within loop (Assign/AugAssign) for assignment_node in loop_node.nodes_of_class(astroid.AugAssign): + assignment_node = cast(astroid.AugAssign, assignment_node) if node.parent.slice.name == assignment_node.target.name: return for assignment_node in loop_node.nodes_of_class(astroid.Assign): + assignment_node = cast(astroid.Assign, assignment_node) if node.parent.slice.name in [ n.name for n in assignment_node.targets ]: diff --git a/tests/functional/u/use/use_maxsplit_arg.py b/tests/functional/u/use/use_maxsplit_arg.py index baa8398c9..396da3adc 100644 --- a/tests/functional/u/use/use_maxsplit_arg.py +++ b/tests/functional/u/use/use_maxsplit_arg.py @@ -86,8 +86,7 @@ a = "1,2,3".rsplit('rsplit')[0] # [use-maxsplit-arg] # Test cases for false-positive reported in #4664
# https://github.com/PyCQA/pylint/issues/4664
source = 'A.B.C.D.E.F.G'
-other_iterable = range(5)
i = 0
-for j in other_iterable:
+for j in range(5):
print(source.split('.')[i])
i = i + 1
diff --git a/tests/functional/u/use/use_maxsplit_arg.txt b/tests/functional/u/use/use_maxsplit_arg.txt index ec0ec4d0c..8137374aa 100644 --- a/tests/functional/u/use/use_maxsplit_arg.txt +++ b/tests/functional/u/use/use_maxsplit_arg.txt @@ -1,21 +1,21 @@ -use-maxsplit-arg:5:12::Use '1,2,3'.split(',', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:6:11::"Use '1,2,3'[::-1].split(',', maxsplit=1)[0] instead":HIGH -use-maxsplit-arg:9:12::Use SEQ.split(',', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:10:11::Use SEQ.rsplit(',', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:11:12::Use SEQ.split(',', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:12:11::Use SEQ.rsplit(',', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:45:12::Use Foo.class_str.split(',', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:46:11::Use Foo.class_str.rsplit(',', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:47:12::Use Foo.class_str.split(',', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:48:11::Use Foo.class_str.rsplit(',', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:56:12::Use bar.get_string().split(',', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:57:11::Use bar.get_string().rsplit(',', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:66:10::Use s.split(' ', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:67:10::Use s.rsplit(' ', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:76:6::Use Bar.split.split(',', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:77:6::Use Bar.split.rsplit(',', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:78:6::Use Bar.split.split(',', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:79:6::Use Bar.split.rsplit(',', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:82:4::Use '1,2,3'.split('\n', maxsplit=1)[0] instead:HIGH -use-maxsplit-arg:83:4::Use '1,2,3'.rsplit('split', maxsplit=1)[-1] instead:HIGH -use-maxsplit-arg:84:4::Use '1,2,3'.split('rsplit', maxsplit=1)[0] instead:HIGH +use-maxsplit-arg:5:12::Use '1,2,3'.split(',', maxsplit=1)[0] instead +use-maxsplit-arg:6:11::"Use '1,2,3'[::-1].split(',', maxsplit=1)[0] instead" +use-maxsplit-arg:9:12::Use SEQ.split(',', maxsplit=1)[0] instead +use-maxsplit-arg:10:11::Use SEQ.rsplit(',', maxsplit=1)[-1] instead +use-maxsplit-arg:11:12::Use SEQ.split(',', maxsplit=1)[0] instead +use-maxsplit-arg:12:11::Use SEQ.rsplit(',', maxsplit=1)[-1] instead +use-maxsplit-arg:45:12::Use Foo.class_str.split(',', maxsplit=1)[0] instead +use-maxsplit-arg:46:11::Use Foo.class_str.rsplit(',', maxsplit=1)[-1] instead +use-maxsplit-arg:47:12::Use Foo.class_str.split(',', maxsplit=1)[0] instead +use-maxsplit-arg:48:11::Use Foo.class_str.rsplit(',', maxsplit=1)[-1] instead +use-maxsplit-arg:56:12::Use bar.get_string().split(',', maxsplit=1)[0] instead +use-maxsplit-arg:57:11::Use bar.get_string().rsplit(',', maxsplit=1)[-1] instead +use-maxsplit-arg:66:10::Use s.split(' ', maxsplit=1)[0] instead +use-maxsplit-arg:67:10::Use s.rsplit(' ', maxsplit=1)[-1] instead +use-maxsplit-arg:76:6::Use Bar.split.split(',', maxsplit=1)[0] instead +use-maxsplit-arg:77:6::Use Bar.split.rsplit(',', maxsplit=1)[-1] instead +use-maxsplit-arg:78:6::Use Bar.split.split(',', maxsplit=1)[0] instead +use-maxsplit-arg:79:6::Use Bar.split.rsplit(',', maxsplit=1)[-1] instead +use-maxsplit-arg:82:4::Use '1,2,3'.split('\n', maxsplit=1)[0] instead +use-maxsplit-arg:83:4::Use '1,2,3'.rsplit('split', maxsplit=1)[-1] instead +use-maxsplit-arg:84:4::Use '1,2,3'.split('rsplit', maxsplit=1)[0] instead |