diff --git a/jedi/evaluate/compiled/context.py b/jedi/evaluate/compiled/context.py index 12e6e727..49cab814 100644 --- a/jedi/evaluate/compiled/context.py +++ b/jedi/evaluate/compiled/context.py @@ -127,7 +127,10 @@ class CompiledObject(Context): signature_params = self.access_handle.get_signature_params() except ValueError: # Has no signature params_str, ret = self._parse_function_doc() - tokens = params_str.split(',') + if not params_str: + tokens = [] + else: + tokens = params_str.split(',') if self.access_handle.ismethoddescriptor(): tokens.insert(0, 'self') for p in tokens: diff --git a/test/test_api/test_call_signatures.py b/test/test_api/test_call_signatures.py index 83ca628a..4ea04422 100644 --- a/test/test_api/test_call_signatures.py +++ b/test/test_api/test_call_signatures.py @@ -1,3 +1,4 @@ +import sys from textwrap import dedent import inspect @@ -394,6 +395,7 @@ def test_keyword_argument_index(Script, environment): assert get(both + 'foo(a, b, c').index == 0 +@pytest.mark.skipif(sys.version_info[0] == 2, reason="Python 2 doesn't support __signature__") @pytest.mark.parametrize('code', ['foo', 'instance.foo']) def test_arg_defaults(Script, environment, code): def foo(arg="bla", arg1=1):