-
-
Notifications
You must be signed in to change notification settings - Fork 524
Open
Labels
Description
Steps to reproduce:
mamba create -n jedi-repro python=3.11 jedi ipython
mamba activate jedi-repro
cat << EOF > test.py
def test(x, **kwargs):
if isinstance(x, int):
return test((x,), **kwargs)
EOF
then open ipython repl and type:
from test import <tab>
and after a short delay you should see a stack trace like:
RecursionError: maximum recursion depth exceeded
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/star_args.py", line 125, in process_params
kwarg_callables = list(_iter_nodes_for_param(p))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/star_args.py", line 44, in _iter_nodes_for_param
if _goes_to_param_name(param_name, context, name):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/star_args.py", line 61, in _goes_to_param_name
found = TreeNameDefinition(context, potential_name).goto()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/names.py", line 213, in goto
return context.goto(name, position=stmt.start_pos)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/context.py", line 34, in goto
names = finder.filter_name(filters, name_or_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/finder.py", line 36, in filter_name
names = filter.get(string_name)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/filters.py", line 109, in get
return self._convert_names(self._filter(
^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/filters.py", line 145, in _filter
return list(self._check_flows(names))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/filters.py", line 156, in _check_flows
check = flow_analysis.reachability_check(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/flow_analysis.py", line 54, in reachability_check
origin_flow_scopes = list(_get_flow_scopes(origin_scope))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/inference/flow_analysis.py", line 41, in _get_flow_scopes
node = get_parent_scope(node, include_flows=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/parser_utils.py", line 261, in get_parent_scope
and any(n.start_pos <= node.start_pos < n.end_pos
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/jedi/parser_utils.py", line 261, in
and any(n.start_pos <= node.start_pos < n.end_pos
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/johannes/.local/share/mamba/envs/jedi-repro/lib/python3.11/site-packages/parso/python/tree.py", line 706, in get_test_nodes
if c in ('elif', 'if'):
^^^^^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded
Reactions are currently unavailable