diff --git a/jedi/inference/param.py b/jedi/inference/param.py index 09e450ab..64f831de 100644 --- a/jedi/inference/param.py +++ b/jedi/inference/param.py @@ -42,7 +42,7 @@ class ExecutedParamName(ParamName): matches = any(c1.is_sub_class_of(c2) for c1 in argument_values for c2 in annotations.gather_annotation_classes()) - debug.dbg("signature compare %s: %s <=> %s", + debug.dbg("param compare %s: %s <=> %s", matches, argument_values, annotations, color='BLUE') return matches diff --git a/jedi/inference/signature.py b/jedi/inference/signature.py index d174dfd9..e6264758 100644 --- a/jedi/inference/signature.py +++ b/jedi/inference/signature.py @@ -55,6 +55,8 @@ class AbstractSignature(_SignatureMixin): raise NotImplementedError def __repr__(self): + if self.value is self._function_value: + return '<%s: %s>' % (self.__class__.__name__, self.value) return '<%s: %s, %s>' % (self.__class__.__name__, self.value, self._function_value) diff --git a/jedi/inference/value/function.py b/jedi/inference/value/function.py index 05d894f6..3cd1f4a7 100644 --- a/jedi/inference/value/function.py +++ b/jedi/inference/value/function.py @@ -127,7 +127,8 @@ class FunctionValue(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndCla if overloaded_funcs: return OverloadedFunctionValue( function, - [create(f) for f in overloaded_funcs] + # Get them into the correct order: lower line first. + list(reversed([create(f) for f in overloaded_funcs])) ) return function diff --git a/test/completion/arrays.py b/test/completion/arrays.py index 9d7f8272..2f4bac85 100644 --- a/test/completion/arrays.py +++ b/test/completion/arrays.py @@ -281,11 +281,19 @@ d = dict(a=3, b='') x, = d.values() #? int() str() x -#? int() str() +#? int() d['a'] #? int() str() None d.get('a') +some_dct = dict({'a': 1, 'b': ''}, a=1.0) +#? float() +some_dct['a'] +#? str() +some_dct['b'] +#? int() float() str() +some_dct['c'] + # ----------------- # with variable as index # ----------------- diff --git a/test/test_api/test_call_signatures.py b/test/test_api/test_call_signatures.py index 4586d290..1e7bf0ea 100644 --- a/test/test_api/test_call_signatures.py +++ b/test/test_api/test_call_signatures.py @@ -266,11 +266,11 @@ def _params(Script, source, line=None, column=None): def test_int_params(Script): sig1, sig2 = Script('int(').call_signatures() # int is defined as: `int(x[, base])` - assert len(sig1.params) == 2 + assert len(sig1.params) == 1 assert sig1.params[0].name == 'x' - assert sig1.params[1].name == 'base' - assert len(sig2.params) == 1 + assert len(sig2.params) == 2 assert sig2.params[0].name == 'x' + assert sig2.params[1].name == 'base' def test_pow_params(Script):