@decorators.raise_if_nothing_inferred<EOL>def unpack_infer(stmt, context=None):
if isinstance(stmt, (List, Tuple)):<EOL><INDENT>for elt in stmt.elts:<EOL><INDENT>if elt is util.Uninferable:<EOL><INDENT>yield elt<EOL>continue<EOL><DEDENT>yield from unpack_infer(elt, context)<EOL><DEDENT>return dict(node=stmt, context=context)<EOL><DEDENT>inferred = next(stmt.infer(context))<EOL>if inferred is stmt:<EOL><INDENT>yield inferred<EOL>return dict(node=stmt, context=context)<EOL><DEDENT>for inferred in stmt.infer(context):<EOL><INDENT>if inferred is util.Uninferable:<EOL><INDENT>yield inferred<EOL><DEDENT>else:<EOL><INDENT>yield from unpack_infer(inferred, context)<EOL><DEDENT><DEDENT>return dict(node=stmt, context=context)<EOL>
recursively generate nodes inferred by the given statement.
    If the inferred value is a list or a tuple, recurse on the elements