On 1.8 a block doesn't indicate if it ignores args.

Proc.new { }.arity # => -1
Proc.new { |*a| }.arity # => -1

The first one returns 0 on 1.9, allowing us to differentiate
these two cases, but returns -1 on 1.8 (as shown above).
Thus, we can't differentiate here and we have to err on
the side of printing the warning.