forked from VimPlug/jedi
Removed the dynamic_arrays_for_instances setting, because it's a subset of dynamic_array_additions, which is more concise.
This commit is contained in:
@@ -539,14 +539,12 @@ def _check_array_additions(evaluator, compare_array, module, is_list):
|
|||||||
|
|
||||||
def check_array_instances(evaluator, instance):
|
def check_array_instances(evaluator, instance):
|
||||||
"""Used for set() and list() instances."""
|
"""Used for set() and list() instances."""
|
||||||
|
if not settings.dynamic_array_additions:
|
||||||
return instance.var_args
|
|
||||||
|
|
||||||
|
|
||||||
if not settings.dynamic_arrays_instances:
|
|
||||||
return instance.var_args
|
return instance.var_args
|
||||||
|
|
||||||
ai = ArrayInstance(evaluator, instance)
|
ai = ArrayInstance(evaluator, instance)
|
||||||
return [ai]
|
from jedi.evaluate import param
|
||||||
|
return param.Arguments(evaluator, [AlreadyEvaluated([ai])])
|
||||||
|
|
||||||
|
|
||||||
class ArrayInstance(IterableWrapper):
|
class ArrayInstance(IterableWrapper):
|
||||||
@@ -567,22 +565,27 @@ class ArrayInstance(IterableWrapper):
|
|||||||
"""
|
"""
|
||||||
items = []
|
items = []
|
||||||
from jedi.evaluate.representation import Instance
|
from jedi.evaluate.representation import Instance
|
||||||
for stmt in self.var_args:
|
for key, nodes in self.var_args.unpack():
|
||||||
for typ in self._evaluator.eval_statement(stmt):
|
for node in nodes:
|
||||||
if isinstance(typ, Instance) and len(typ.var_args):
|
for typ in self._evaluator.eval_element(node):
|
||||||
array = typ.var_args[0]
|
if isinstance(typ, Instance) and len(typ.var_args):
|
||||||
if isinstance(array, ArrayInstance):
|
array = typ.var_args[0]
|
||||||
# Certain combinations can cause recursions, see tests.
|
if isinstance(array, ArrayInstance):
|
||||||
if not self._evaluator.recursion_detector.push_stmt(self.var_args):
|
# Certain combinations can cause recursions, see tests.
|
||||||
items += array.iter_content()
|
if not self._evaluator.recursion_detector.push_stmt(self.var_args):
|
||||||
self._evaluator.recursion_detector.pop_stmt()
|
items += array.iter_content()
|
||||||
items += get_iterator_types([typ])
|
self._evaluator.recursion_detector.pop_stmt()
|
||||||
|
items += get_iterator_types([typ])
|
||||||
|
|
||||||
|
|
||||||
|
# TODO remove?
|
||||||
|
"""
|
||||||
# TODO check if exclusion of tuple is a problem here.
|
# TODO check if exclusion of tuple is a problem here.
|
||||||
if isinstance(self.var_args, tuple) or self.var_args.parent is None:
|
if isinstance(self.var_args, tuple) or self.var_args.parent is None:
|
||||||
return [] # generated var_args should not be checked for arrays
|
return [] # generated var_args should not be checked for arrays
|
||||||
|
"""
|
||||||
|
|
||||||
module = self.var_args.get_parent_until()
|
module = self.var_args.argument_node.get_parent_until()
|
||||||
is_list = str(self.instance.name) == 'list'
|
is_list = str(self.instance.name) == 'list'
|
||||||
items += _check_array_additions(self._evaluator, self.instance, module, is_list)
|
items += _check_array_additions(self._evaluator, self.instance, module, is_list)
|
||||||
return items
|
return items
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ Parser
|
|||||||
Dynamic stuff
|
Dynamic stuff
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. autodata:: dynamic_arrays_instances
|
|
||||||
.. autodata:: dynamic_array_additions
|
.. autodata:: dynamic_array_additions
|
||||||
.. autodata:: dynamic_params
|
.. autodata:: dynamic_params
|
||||||
.. autodata:: dynamic_params_for_other_modules
|
.. autodata:: dynamic_params_for_other_modules
|
||||||
@@ -148,14 +147,9 @@ function is being reparsed.
|
|||||||
# dynamic stuff
|
# dynamic stuff
|
||||||
# ----------------
|
# ----------------
|
||||||
|
|
||||||
dynamic_arrays_instances = True
|
|
||||||
"""
|
|
||||||
Check for `append`, etc. on array instances like list()
|
|
||||||
"""
|
|
||||||
|
|
||||||
dynamic_array_additions = True
|
dynamic_array_additions = True
|
||||||
"""
|
"""
|
||||||
check for `append`, etc. on arrays: [], {}, ()
|
check for `append`, etc. on arrays: [], {}, () as well as list/set calls.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
dynamic_params = True
|
dynamic_params = True
|
||||||
|
|||||||
Reference in New Issue
Block a user