message: Optimize not kwargs case?
diff: @@ -2467,7 +2467,7 @@ class FunctionSpec(object):
  self._args_to_indices = {arg: i for i, arg in enumerate(args)}
  self._arg_names = args
  - self._num_req_args = (len(args) - len(self._fullargspec.defaults or []))
  + self._num_req_args = len(args) - len(self._fullargspec.defaults or [])
  if input_signature is None:
  self._input_signature = None
  @@ -2648,7 +2648,9 @@ class FunctionSpec(object):
  raise TypeError("{} missing required arguments: {}".format(
  self.signature_summary(), ", ".join(missing_args)))
  inputs += tuple(
  - self._fullargspec.defaults[len(args) - self._num_req_args:])
  + self._fullargspec.defaults[i]
  + for i in range(len(args) - self._num_req_args,
  + len(self._arg_names) - self._num_req_args))
  if self._fullargspec.kwonlydefaults:
  kwargs.update(self._fullargspec.kwonlydefaults)
  