1
0
forked from VimPlug/jedi

Fix dynamic arrays.

This commit is contained in:
Dave Halter
2016-11-27 21:48:48 +01:00
parent 558e8add49
commit c3f6172ca2
3 changed files with 72 additions and 80 deletions

View File

@@ -7,19 +7,16 @@ from jedi.evaluate import compiled
from jedi.evaluate import filters
from jedi.evaluate.context import Context, LazyKnownContext, LazyKnownContexts
from jedi.evaluate.cache import memoize_default
from jedi.evaluate.param import ValuesArguments
from jedi.cache import memoize_method
from jedi.evaluate import representation as er
from jedi.evaluate.dynamic import search_params
from jedi.evaluate import iterable
class AbstractInstanceContext(Context):
"""
This class is used to evaluate instances.
"""
_faked_class = None
def __init__(self, evaluator, parent_context, class_context, var_args):
super(AbstractInstanceContext, self).__init__(evaluator, parent_context)
# Generated instances are classes that are just generated by self
@@ -27,23 +24,6 @@ class AbstractInstanceContext(Context):
self.class_context = class_context
self.var_args = var_args
#####
""""
if class_context.name.string_name in ['list', 'set'] \
and evaluator.BUILTINS == parent_context.get_root_context():
# compare the module path with the builtin name.
self.var_args = iterable.check_array_instances(evaluator, self)
elif not is_generated:
# Need to execute the __init__ function, because the dynamic param
# searching needs it.
try:
method = self.get_subscope_by_name('__init__')
except KeyError:
pass
else:
self._init_execution = evaluator.execute(method, self.var_args)
"""
def is_class(self):
return False
@@ -191,6 +171,16 @@ class AbstractInstanceContext(Context):
class CompiledInstance(AbstractInstanceContext):
def __init__(self, *args, **kwargs):
super(CompiledInstance, self).__init__(*args, **kwargs)
# I don't think that dynamic append lookups should happen here. That
# sounds more like something that should go to py__iter__.
if self.class_context.name.string_name in ['list', 'set'] \
and self.parent_context.get_root_context() == self.evaluator.BUILTINS:
# compare the module path with the builtin name.
self.var_args = iterable.get_dynamic_array_instance(self)
@property
def name(self):
return compiled.CompiledContextName(self, self.class_context.name.string_name)