summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--astroid/brain/brain_functools.py13
2 files changed, 13 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index f30157b5..954f21b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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