require "bundler/inline"

gemfile(true) do
  source "https://rubygems.org"
  gem "rspec"
end

BoomError = Class.new(StandardError)

RSpec.describe 'rescue arguments' do
  # passes, as expected
  describe 'no arguments' do
    it 'rescues StandardError' do
      expect do
        begin
          raise BoomError
        rescue
        end
      end.not_to raise_error
    end
  end

  # passes, as expected
  describe 'nil' do
    it 'rescues StandardError' do
      expect do
        begin
          raise BoomError
        rescue nil
        end
      end.to raise_error(TypeError)
    end
  end

  # fails, unexpected
  describe 'splat nil' do
    it 'rescues StandardError' do
      expect do
        begin
          raise BoomError
        rescue *nil
        end
      end.to raise_error(TypeError)
    end
  end
end