summaryrefslogtreecommitdiff
path: root/astroid/mixins.py
diff options
context:
space:
mode:
Diffstat (limited to 'astroid/mixins.py')
-rw-r--r--astroid/mixins.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/astroid/mixins.py b/astroid/mixins.py
index cec4b4bc..497a8400 100644
--- a/astroid/mixins.py
+++ b/astroid/mixins.py
@@ -12,6 +12,7 @@
"""This module contains some mixins for the different nodes.
"""
+import itertools
from astroid import decorators
from astroid import exceptions
@@ -142,10 +143,14 @@ class MultiLineBlockMixin:
continue
yield from child_node._get_yield_nodes_skip_lambdas()
+ @decorators.cached
def _get_assign_nodes(self):
- for block in self._multi_line_blocks:
- for child_node in block:
- yield from child_node._get_assign_nodes()
+ children_assign_nodes = (
+ child_node._get_assign_nodes()
+ for block in self._multi_line_blocks
+ for child_node in block
+ )
+ return list(itertools.chain.from_iterable(children_assign_nodes))
class NoChildrenMixin: