diff options
author | Claudiu Popa <pcmanticore@gmail.com> | 2020-12-27 10:17:35 +0100 |
---|---|---|
committer | Claudiu Popa <pcmanticore@gmail.com> | 2020-12-27 10:29:23 +0100 |
commit | ef288522d0dadccd97578b515c43c5c2fd3d1f52 (patch) | |
tree | 7409c6340b9a21cd23afc974c7fc1b4a6f2d99a1 | |
parent | 3c5ff572ad774b2fa1ea457bee61005833118cc3 (diff) | |
download | astroid-git-ef288522d0dadccd97578b515c43c5c2fd3d1f52.tar.gz |
Fix a crash in functools.partial inference when the arguments cannot be determined
Close PyCQA/pylint#3776
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | astroid/brain/brain_functools.py | 13 |
2 files changed, 13 insertions, 5 deletions
@@ -75,6 +75,11 @@ Release Date: TBA Close #835 +* Fix a crash in functools.partial inference when the arguments cannot be determined + + Close PyCQA/pylint#3776 + + What's New in astroid 2.4.3? ============================ Release Date: TBA diff --git a/astroid/brain/brain_functools.py b/astroid/brain/brain_functools.py index d6c60691..f943f71a 100644 --- a/astroid/brain/brain_functools.py +++ b/astroid/brain/brain_functools.py @@ -86,11 +86,14 @@ def _functools_partial_inference(node, context=None): # Determine if the passed keywords into the callsite are supported # by the wrapped function. - function_parameters = chain( - inferred_wrapped_function.args.args or (), - inferred_wrapped_function.args.posonlyargs or (), - inferred_wrapped_function.args.kwonlyargs or (), - ) + if not inferred_wrapped_function.args: + function_parameters = [] + else: + function_parameters = chain( + inferred_wrapped_function.args.args or (), + inferred_wrapped_function.args.posonlyargs or (), + inferred_wrapped_function.args.kwonlyargs or (), + ) parameter_names = set( param.name for param in function_parameters |