Path 1: 1543 calls (0.9)

FunctionDef (1526) AsyncFunctionDef (17)

FunctionDef (1526) AsyncFunctionDef (17)

None (1543)

Const (874) Uninferable (501) Instance (58) Tuple (40) ClassDef (14) Generator (14) Lambda (13) Dict (8) FunctionDef (7) List (7)

StopIteration (1543)

1def _safe_infer_call_result(
2    node: nodes.FunctionDef,
3    caller: nodes.FunctionDef,
4    context: InferenceContext | None = None,
5) -> InferenceResult | None:
6    """Safely infer the return value of a function.
7
8    Returns None if inference failed or if there is some ambiguity (more than
9    one node has been inferred). Otherwise, returns inferred value.
10    """
11    try:
12        inferit = node.infer_call_result(caller, context=context)
13        value = next(inferit)
14    except astroid.InferenceError:
15        return None  # inference failed
16    except StopIteration:
17        return None  # no values inferred
18    try:
19        next(inferit)
20        return None  # there is ambiguity on the inferred node
21    except astroid.InferenceError:
22        return None  # there is some kind of ambiguity
23    except StopIteration:
24        return value
            

Path 2: 132 calls (0.08)

FunctionDef (132)

FunctionDef (132)

None (132)

None (132)

InferenceError (132)

1def _safe_infer_call_result(
2    node: nodes.FunctionDef,
3    caller: nodes.FunctionDef,
4    context: InferenceContext | None = None,
5) -> InferenceResult | None:
6    """Safely infer the return value of a function.
7
8    Returns None if inference failed or if there is some ambiguity (more than
9    one node has been inferred). Otherwise, returns inferred value.
10    """
11    try:
12        inferit = node.infer_call_result(caller, context=context)
13        value = next(inferit)
14    except astroid.InferenceError:
15        return None  # inference failed
16    except StopIteration:
17        return None  # no values inferred
18    try:
19        next(inferit)
20        return None  # there is ambiguity on the inferred node
21    except astroid.InferenceError:
22        return None  # there is some kind of ambiguity
23    except StopIteration:
24        return value
            

Path 3: 41 calls (0.02)

FunctionDef (41)

FunctionDef (41)

None (41)

None (41)

1def _safe_infer_call_result(
2    node: nodes.FunctionDef,
3    caller: nodes.FunctionDef,
4    context: InferenceContext | None = None,
5) -> InferenceResult | None:
6    """Safely infer the return value of a function.
7
8    Returns None if inference failed or if there is some ambiguity (more than
9    one node has been inferred). Otherwise, returns inferred value.
10    """
11    try:
12        inferit = node.infer_call_result(caller, context=context)
13        value = next(inferit)
14    except astroid.InferenceError:
15        return None  # inference failed
16    except StopIteration:
17        return None  # no values inferred
18    try:
19        next(inferit)
20        return None  # there is ambiguity on the inferred node
21    except astroid.InferenceError:
22        return None  # there is some kind of ambiguity
23    except StopIteration:
24        return value