Actions
Bug #13312
closedString#casecmp raises TypeError instead of returning nil
Bug #13312:
String#casecmp raises TypeError instead of returning nil
Description
String#casecmp and String#casecmp? behave differently from other comparison methods: for incomparable values they raise a TypeError, while Symbol#{casecmp,casecmp?} and the #<=> methods (also for other classes) return nil
:
"abc" <=> 1 # => nil
"abc".casecmp 1 # TypeError: no implicit conversion of Integer into String
"abc".casecmp? 1 # TypeError: no implicit conversion of Integer into String
:abc <=> 1 # => nil
:abc.casecmp 1 # => nil
:abc.casecmp? 1 # => nil
1 <=> Time.now # => nil
[] <=> :foo # => nil
This is surprising, since String#casecmp is essentially a case-insensitive version of String#<=>, which seems to imply that they should behave in a similar way. Also, the different behavior for String and Symbol might be an indication that this is a bug and not intentional.
Files
Actions