Project

General

Profile

Actions

Bug #1376

closed

inline symbols/fixnums in a case expression do not honor an overwritten #=== method

Added by lrz (Laurent Sansonetti) over 15 years ago. Updated over 13 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.1 (2008-12-28 patchlevel-5000 trunk 21107) [i386-darwin9.5.0]
Backport:
[ruby-core:23190]

Description

=begin
The case expression in Ruby 1.9 does not seem to honor the fact that Symbol#=== could have been overwritten prior to the expression.

An example with both Ruby 1.8 and Ruby 1.9:

$ ruby -e "class Symbol; def ===(o); p 42; true; end; end; case :foo; when :foo; end"
42

$ ruby19 -e "class Symbol; def ===(o); p 42; true; end; end; case :foo; when :foo; end"
$

The same problem seems to exist with fixnums as well.
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0