diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 23e92001..1428eb04 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -206,6 +206,7 @@ class Script: before magic methods and name mangled names that start with ``__``. :rtype: list of :class:`.Completion` """ + self._inference_state.reset_recursion_limitations() with debug.increase_indent_cm('complete'): completion = Completion( self._inference_state, self._get_module_context(), self._code_lines, @@ -215,6 +216,7 @@ class Script: @validate_line_column def infer(self, line=None, column=None, *, only_stubs=False, prefer_stubs=False): + self._inference_state.reset_recursion_limitations() """ Return the definitions of under the cursor. It is basically a wrapper around Jedi's type inference. @@ -260,6 +262,7 @@ class Script: @validate_line_column def goto(self, line=None, column=None, *, follow_imports=False, follow_builtin_imports=False, only_stubs=False, prefer_stubs=False): + self._inference_state.reset_recursion_limitations() """ Goes to the name that defined the object under the cursor. Optionally you can follow imports. @@ -365,6 +368,7 @@ class Script: :rtype: list of :class:`.Name` """ + self._inference_state.reset_recursion_limitations() definitions = self.goto(line, column, follow_imports=True) if definitions: return definitions @@ -406,6 +410,7 @@ class Script: the current module only. :rtype: list of :class:`.Name` """ + self._inference_state.reset_recursion_limitations() def _references(include_builtins=True, scope='project'): if scope not in ('project', 'file'): @@ -440,6 +445,7 @@ class Script: :rtype: list of :class:`.Signature` """ + self._inference_state.reset_recursion_limitations() pos = line, column call_details = helpers.get_signature_details(self._module_node, pos) if call_details is None: @@ -559,6 +565,7 @@ class Script: return parso_to_jedi_errors(self._inference_state.grammar, self._module_node) def _names(self, all_scopes=False, definitions=True, references=False): + self._inference_state.reset_recursion_limitations() # Set line/column to a random position, because they don't matter. module_context = self._get_module_context() defs = [