diff options
author | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2022-08-31 22:06:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-31 22:06:40 +0200 |
commit | bcd4ca3052411e8c0823712d38cb970e354713f6 (patch) | |
tree | 4d114b86ba6d7e9126a434cddebd4bb1540d0284 /pylint/checkers | |
parent | c116349e256886edd33fc66efd4e5d7ff2a71fed (diff) | |
download | pylint-git-bcd4ca3052411e8c0823712d38cb970e354713f6.tar.gz |
Fix crash while iteraring over a class attribute (#7386)
Co-authored-by: orSolocate <38433858+orSolocate@users.noreply.github.com>
Diffstat (limited to 'pylint/checkers')
-rw-r--r-- | pylint/checkers/modified_iterating_checker.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/pylint/checkers/modified_iterating_checker.py b/pylint/checkers/modified_iterating_checker.py index bdabc2650..62e887a95 100644 --- a/pylint/checkers/modified_iterating_checker.py +++ b/pylint/checkers/modified_iterating_checker.py @@ -81,7 +81,7 @@ class ModifiedIterationChecker(checkers.BaseChecker): msg_id = "modified-iterating-dict" elif isinstance(inferred, nodes.Set): msg_id = "modified-iterating-set" - elif not isinstance(iter_obj, nodes.Name): + elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)): pass elif self._modified_iterating_list_cond(node, iter_obj): msg_id = "modified-iterating-list" @@ -90,10 +90,14 @@ class ModifiedIterationChecker(checkers.BaseChecker): elif self._modified_iterating_set_cond(node, iter_obj): msg_id = "modified-iterating-set" if msg_id: + if isinstance(iter_obj, nodes.Attribute): + obj_name = iter_obj.attrname + else: + obj_name = iter_obj.name self.add_message( msg_id, node=node, - args=(iter_obj.name,), + args=(obj_name,), confidence=interfaces.INFERENCE, ) |