diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 44c4e1e5..d1e02c97 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -115,7 +115,7 @@ class Script(object): # Load the Python grammar of the current interpreter. self._grammar = parso.load_grammar() project = Project(sys_path=sys_path) - self._evaluator = Evaluator(self._grammar, project, environment) + self._evaluator = Evaluator(project, environment) project.add_script_path(self.path) debug.speed('init') diff --git a/jedi/api/environment.py b/jedi/api/environment.py index e3cabfc1..f34e9a26 100644 --- a/jedi/api/environment.py +++ b/jedi/api/environment.py @@ -28,7 +28,7 @@ class _BaseEnvironment(object): return Project(self.get_sys_path()) @memoize_method - def get_parser(self): + def get_grammar(self): version_string = '%s.%s' % (self.version_info.major, self.version_info.minor) return parso.load_grammar(version=version_string) diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index d67b34e2..7f8a33b3 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -87,8 +87,13 @@ from jedi.evaluate.syntax_tree import eval_trailer, eval_expr_stmt, \ class Evaluator(object): - def __init__(self, grammar, project, environment=None): - self.grammar = grammar + def __init__(self, project, environment=None): + if environment is None: + environment = get_default_environment() + self.environment = environment + self.compiled_subprocess = environment.get_evaluator_subprocess(self) + self.grammar = environment.get_grammar() + self.latest_grammar = parso.load_grammar(version='3.6') self.memoize_cache = {} # for memoize decorators # To memorize modules -> equals `sys.modules`. @@ -104,11 +109,6 @@ class Evaluator(object): self.access_cache = {} project.add_evaluator(self) - if environment is None: - environment = get_default_environment() - self.environment = environment - self.compiled_subprocess = environment.get_evaluator_subprocess(self) - self.reset_recursion_limitations() @property diff --git a/jedi/evaluate/compiled/subprocess/__init__.py b/jedi/evaluate/compiled/subprocess/__init__.py index 9e0e4da1..a56b6bec 100644 --- a/jedi/evaluate/compiled/subprocess/__init__.py +++ b/jedi/evaluate/compiled/subprocess/__init__.py @@ -203,7 +203,6 @@ class Listener(object): except KeyError: from jedi.api.environment import InterpreterEnvironment evaluator = Evaluator( - grammar=None, project=project.Project(), environment=InterpreterEnvironment() ) diff --git a/test/test_api/test_environment.py b/test/test_api/test_environment.py index 07886e86..95fce36f 100644 --- a/test/test_api/test_environment.py +++ b/test/test_api/test_environment.py @@ -15,7 +15,7 @@ def test_find_python_environments(): for env in envs: assert env.version_info assert env.get_sys_path() - parser_version = env.get_parser().version_info + parser_version = env.get_grammar().version_info assert parser_version[:2] == env.version_info[:2]