diff --git a/jedi/evaluate/param.py b/jedi/evaluate/param.py index a9a67422..e73f82e1 100644 --- a/jedi/evaluate/param.py +++ b/jedi/evaluate/param.py @@ -101,8 +101,10 @@ def get_params(evaluator, func, var_args): had_multiple_value_error = True m = ("TypeError: %s() got multiple values for keyword argument '%s'." % (func.name, k)) - analysis.add(evaluator, 'type-error-multiple-values', - var_args, message=m) + calling_va = _get_calling_var_args(evaluator, var_args) + if calling_va is not None: + analysis.add(evaluator, 'type-error-multiple-values', + calling_va, message=m) else: keys_used.add(k) result.append(_gen_param_name_copy(func, var_args, key_param, diff --git a/test/static_analysis/star_arguments.py b/test/static_analysis/star_arguments.py index af851e30..d797bc85 100644 --- a/test/static_analysis/star_arguments.py +++ b/test/static_analysis/star_arguments.py @@ -45,3 +45,7 @@ kwargs_test(c=3, b=2) kwargs_test(c=3) #! 11 type-error-too-few-arguments kwargs_test(b=2) +#! 22 type-error-keyword-argument +kwargs_test(b=2, c=3, d=4) +#! 22 type-error-multiple-values +kwargs_test(b=2, c=3, a=4)