module RSpec::Support::RubyFeatures

def caller_locations_supported?

def caller_locations_supported?
  respond_to?(:caller_locations, true)
end

def distincts_kw_args_from_positional_hash?

def distincts_kw_args_from_positional_hash?
  RUBY_VERSION >= '3.0.0'
end

def foo; end }.instance_method(:foo).bind(Object.new)

def foo; end }.instance_method(:foo).bind(Object.new)

def fork_supported?

this special case.
When we drop support for JRuby 1.7 and/or Ruby 1.8, we can drop

NotImplementedError: fork is not available on this platform
but when you try to fork, it raises an error:
On JRuby 1.7 `--1.8` mode, `Process.respond_to?(:fork)` returns true,
def fork_supported?
  false
end

def fork_supported?

def fork_supported?
  Process.respond_to?(:fork)
end

def kw_arg_separation?

https://rubyreferences.github.io/rubychanges/3.0.html#keyword-arguments-are-now-fully-separated-from-positional-arguments
def kw_arg_separation?
  true
end

def kw_arg_separation?

def kw_arg_separation?
  false
end

def kw_args_supported?

def kw_args_supported?
  RUBY_VERSION >= '2.0.0'
end

def kw_args_supported?

def kw_args_supported?
  true
end

def kw_args_supported?

def kw_args_supported?
  false
end

def module_prepends_supported?

def module_prepends_supported?
  Module.method_defined?(:prepend) || Module.private_method_defined?(:prepend)
end

def module_refinement_supported?

def module_refinement_supported?
  Module.method_defined?(:refine) || Module.private_method_defined?(:refine)
end

def optional_and_splat_args_supported?

def optional_and_splat_args_supported?
  Method.method_defined?(:parameters)
end

def required_kw_args_supported?

def required_kw_args_supported?
  RUBY_VERSION >= '2.1.0'
end

def required_kw_args_supported?

def required_kw_args_supported?
  true
end

def required_kw_args_supported?

def required_kw_args_supported?
  false
end

def ripper_supported?

def ripper_supported?
  true
end

def ripper_supported?

def ripper_supported?
  false
end

def supports_exception_cause?

def supports_exception_cause?
  true
end

def supports_exception_cause?

def supports_exception_cause?
  false
end

def supports_rebinding_module_methods?

def supports_rebinding_module_methods?
  RUBY_VERSION.to_i >= 2
end

def supports_rebinding_module_methods?

def supports_rebinding_module_methods?
  true
end

def supports_rebinding_module_methods?

def supports_rebinding_module_methods?
  false
end

def supports_syntax_suggest?

def supports_syntax_suggest?
  true
end

def supports_syntax_suggest?

def supports_syntax_suggest?
  false
end

def supports_taint?

def supports_taint?
  false
end

def supports_taint?

def supports_taint?
  true
end