class RSpec::Support::MethodSignature

def classify_parameters

def classify_parameters
  optional_non_kw_args = @min_non_kw_args = 0
  @allows_any_kw_args = false
  @method.parameters.each do |(type, name)|
    case type
    # def foo(a:)
    when :keyreq  then @required_kw_args << name
    # def foo(a: 1)
    when :key     then @optional_kw_args << name
    # def foo(**kw_args)
    when :keyrest then @allows_any_kw_args = true
    # def foo(a)
    when :req     then @min_non_kw_args += 1
    # def foo(a = 1)
    when :opt     then optional_non_kw_args += 1
    # def foo(*a)
    when :rest    then optional_non_kw_args = INFINITY
    end
  end
  @max_non_kw_args = @min_non_kw_args + optional_non_kw_args
  @allowed_kw_args = @required_kw_args + @optional_kw_args
end