diff --git a/jedi/evaluate/instance.py b/jedi/evaluate/instance.py index 5c89af05..308680f1 100644 --- a/jedi/evaluate/instance.py +++ b/jedi/evaluate/instance.py @@ -366,6 +366,11 @@ class SelfNameFilter(InstanceClassFilter): if name.is_definition() and self._access_possible(name): yield name continue + + + + + init_execution = self.context.get_init_function() # Hopefully we can somehow change this. if init_execution is not None and \ diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index 7b504efd..ec844f0e 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -208,6 +208,17 @@ class ClassContext(use_metaclass(CachedMetaClass, context.TreeContext)): return names return [] + def get_param_names(self): + for name in self.get_function_slot_names('__init__'): + for context_ in name.infer(): + try: + method = context_.get_param_names + except AttributeError: + pass + else: + return method()[:-1] + return [] + @property def name(self): return ContextName(self, self.classdef.name) @@ -277,12 +288,8 @@ class FunctionContext(use_metaclass(CachedMetaClass, context.TreeContext)): return ContextName(self, self.funcdef.name) def get_param_names(self): - anon = AnonymousFunctionExecution( - self.evaluator, - self.parent_context, - self - ) - return [ParamName(anon, param.name) for param in self.funcdef.params] + function_execution = self.get_function_execution() + return [ParamName(function_execution, param.name) for param in self.funcdef.params] class FunctionExecutionContext(Executed):