Path 1: 570 calls (0.92)

Name (566) BinOp (2) Call (1) Attribute (1)

None (570)

tuple (573)

1def _annotated_unpack_infer(
2    stmt: nodes.NodeNG, context: InferenceContext | None = None
3) -> Generator[tuple[nodes.NodeNG, SuccessfulInferenceResult], None, None]:
4    """Recursively generate nodes inferred by the given statement.
5
6    If the inferred value is a list or a tuple, recurse on the elements.
7    Returns an iterator which yields tuples in the format
8    ('original node', 'inferred node').
9    """
10    if isinstance(stmt, (nodes.List, nodes.Tuple)):
11        for elt in stmt.elts:
12            inferred = utils.safe_infer(elt)
13            if inferred and inferred is not astroid.Uninferable:
14                yield elt, inferred
15        return
16    for inferred in stmt.infer(context):
17        if inferred is astroid.Uninferable:
18            continue
19        yield stmt, inferred
            

Path 2: 40 calls (0.06)

Tuple (40)

None (40)

tuple (84)

None (40)

1def _annotated_unpack_infer(
2    stmt: nodes.NodeNG, context: InferenceContext | None = None
3) -> Generator[tuple[nodes.NodeNG, SuccessfulInferenceResult], None, None]:
4    """Recursively generate nodes inferred by the given statement.
5
6    If the inferred value is a list or a tuple, recurse on the elements.
7    Returns an iterator which yields tuples in the format
8    ('original node', 'inferred node').
9    """
10    if isinstance(stmt, (nodes.List, nodes.Tuple)):
11        for elt in stmt.elts:
12            inferred = utils.safe_infer(elt)
13            if inferred and inferred is not astroid.Uninferable:
14                yield elt, inferred
15        return
16    for inferred in stmt.infer(context):
17        if inferred is astroid.Uninferable:
18            continue
19        yield stmt, inferred
            

Path 3: 5 calls (0.01)

Name (3) BinOp (1) Compare (1)

None (5)

1def _annotated_unpack_infer(
2    stmt: nodes.NodeNG, context: InferenceContext | None = None
3) -> Generator[tuple[nodes.NodeNG, SuccessfulInferenceResult], None, None]:
4    """Recursively generate nodes inferred by the given statement.
5
6    If the inferred value is a list or a tuple, recurse on the elements.
7    Returns an iterator which yields tuples in the format
8    ('original node', 'inferred node').
9    """
10    if isinstance(stmt, (nodes.List, nodes.Tuple)):
11        for elt in stmt.elts:
12            inferred = utils.safe_infer(elt)
13            if inferred and inferred is not astroid.Uninferable:
14                yield elt, inferred
15        return
16    for inferred in stmt.infer(context):
17        if inferred is astroid.Uninferable:
18            continue
19        yield stmt, inferred
            

Path 4: 5 calls (0.01)

Name (4) Attribute (1)

None (5)

NameInferenceError (4) InferenceError (1)

1def _annotated_unpack_infer(
2    stmt: nodes.NodeNG, context: InferenceContext | None = None
3) -> Generator[tuple[nodes.NodeNG, SuccessfulInferenceResult], None, None]:
4    """Recursively generate nodes inferred by the given statement.
5
6    If the inferred value is a list or a tuple, recurse on the elements.
7    Returns an iterator which yields tuples in the format
8    ('original node', 'inferred node').
9    """
10    if isinstance(stmt, (nodes.List, nodes.Tuple)):
11        for elt in stmt.elts:
12            inferred = utils.safe_infer(elt)
13            if inferred and inferred is not astroid.Uninferable:
14                yield elt, inferred
15        return
16    for inferred in stmt.infer(context):
17        if inferred is astroid.Uninferable:
18            continue
19        yield stmt, inferred