forked from VimPlug/jedi
Cleanup some instance stuff
This commit is contained in:
@@ -15,23 +15,27 @@ from jedi.evaluate.context import iterable
|
|||||||
from jedi.parser_utils import get_parent_scope
|
from jedi.parser_utils import get_parent_scope
|
||||||
|
|
||||||
|
|
||||||
|
class BaseInstanceFunctionExecution(FunctionExecutionContext):
|
||||||
class InstanceFunctionExecution(FunctionExecutionContext):
|
def __init__(self, instance, *args, **kwargs):
|
||||||
def __init__(self, instance, parent_context, function_context, var_args):
|
|
||||||
self.instance = instance
|
self.instance = instance
|
||||||
|
super(BaseInstanceFunctionExecution, self).__init__(
|
||||||
|
instance.evaluator, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class InstanceFunctionExecution(BaseInstanceFunctionExecution):
|
||||||
|
def __init__(self, instance, parent_context, function_context, var_args):
|
||||||
var_args = InstanceVarArgs(self, var_args)
|
var_args = InstanceVarArgs(self, var_args)
|
||||||
|
|
||||||
super(InstanceFunctionExecution, self).__init__(
|
super(InstanceFunctionExecution, self).__init__(
|
||||||
instance.evaluator, parent_context, function_context, var_args)
|
instance, parent_context, function_context, var_args)
|
||||||
|
|
||||||
|
|
||||||
class AnonymousInstanceFunctionExecution(FunctionExecutionContext):
|
class AnonymousInstanceFunctionExecution(BaseInstanceFunctionExecution):
|
||||||
function_execution_filter = filters.AnonymousInstanceFunctionExecutionFilter
|
function_execution_filter = filters.AnonymousInstanceFunctionExecutionFilter
|
||||||
|
|
||||||
def __init__(self, instance, parent_context, function_context, var_args):
|
def __init__(self, instance, parent_context, function_context, var_args):
|
||||||
self.instance = instance
|
|
||||||
super(AnonymousInstanceFunctionExecution, self).__init__(
|
super(AnonymousInstanceFunctionExecution, self).__init__(
|
||||||
instance.evaluator, parent_context, function_context, var_args)
|
instance, parent_context, function_context, var_args)
|
||||||
|
|
||||||
|
|
||||||
class AbstractInstanceContext(Context):
|
class AbstractInstanceContext(Context):
|
||||||
|
|||||||
@@ -140,11 +140,19 @@ def infer_param(execution_context, param):
|
|||||||
# If the number of parameters doesn't match length of type comment,
|
# If the number of parameters doesn't match length of type comment,
|
||||||
# ignore first parameter (assume it's self).
|
# ignore first parameter (assume it's self).
|
||||||
if len(params_comments) != len(all_params):
|
if len(params_comments) != len(all_params):
|
||||||
|
debug.warning(
|
||||||
|
"Comments length != Params length %s %s",
|
||||||
|
params_comments, all_params
|
||||||
|
)
|
||||||
|
from jedi.evaluate.context.instance import BaseInstanceFunctionExecution
|
||||||
|
if isinstance(execution_context, BaseInstanceFunctionExecution):
|
||||||
if index == 0:
|
if index == 0:
|
||||||
# Assume it's self, which is already handled
|
# Assume it's self, which is already handled
|
||||||
return NO_CONTEXTS
|
return NO_CONTEXTS
|
||||||
else:
|
index -= 1
|
||||||
index -= 1
|
if index >= len(params_comments):
|
||||||
|
return NO_CONTEXTS
|
||||||
|
|
||||||
param_comment = params_comments[index]
|
param_comment = params_comments[index]
|
||||||
# Construct annotation from type comment
|
# Construct annotation from type comment
|
||||||
annotation = tree.String(repr(param_comment), node.start_pos)
|
annotation = tree.String(repr(param_comment), node.start_pos)
|
||||||
|
|||||||
@@ -178,3 +178,9 @@ def x(a, b):
|
|||||||
# type: (1) -> a
|
# type: (1) -> a
|
||||||
#?
|
#?
|
||||||
a
|
a
|
||||||
|
def x(a, b, c):
|
||||||
|
# type: (str) -> a
|
||||||
|
#?
|
||||||
|
b
|
||||||
|
#?
|
||||||
|
c
|
||||||
|
|||||||
Reference in New Issue
Block a user