summaryrefslogtreecommitdiff
path: root/astroid/node_classes.py
diff options
context:
space:
mode:
authorClaudiu Popa <pcmanticore@gmail.com>2019-07-10 08:49:19 +0200
committerClaudiu Popa <pcmanticore@gmail.com>2019-07-10 08:49:19 +0200
commitbc710340c8af251fcacfc9f6de6c7ce56a4b7202 (patch)
tree44f587927e6a1155e47fc76841d405435b681666 /astroid/node_classes.py
parentbe8a2e141d87c6c4fc3e8505d9482837c8d74cf7 (diff)
downloadastroid-git-bc710340c8af251fcacfc9f6de6c7ce56a4b7202.tar.gz
Relax the spreading of defaults to both positional only and positional or keywords arguments
Diffstat (limited to 'astroid/node_classes.py')
-rw-r--r--astroid/node_classes.py14
1 files changed, 4 insertions, 10 deletions
diff --git a/astroid/node_classes.py b/astroid/node_classes.py
index 8b496032..58f28bcb 100644
--- a/astroid/node_classes.py
+++ b/astroid/node_classes.py
@@ -1626,16 +1626,10 @@ class Arguments(mixins.AssignTypeMixin, NodeNG):
result = []
positional_only_defaults = []
positional_or_keyword_defaults = self.defaults
- if self.defaults and self.args:
- if len(self.defaults) > len(self.args):
- # We have defaults that spread from positional only
- # to positional or keyword parameters.
- # In that case, all the positional or keyword parameters
- # have a default
- positional_or_keyword_defaults = self.defaults[-len(self.args) :]
- positional_only_defaults = self.defaults[
- : len(self.defaults) - len(self.args)
- ]
+ if self.defaults:
+ args = self.args or []
+ positional_or_keyword_defaults = self.defaults[-len(args) :]
+ positional_only_defaults = self.defaults[: len(self.defaults) - len(args)]
if self.posonlyargs:
result.append(_format_args(self.posonlyargs, positional_only_defaults))