Issue #5716 has been reported by markus heiler.

----------------------------------------
Feature #5716: duplicated when clause is ignored -> Report which clause it is specifically.
http://redmine.ruby-lang.org/issues/5716

Author: markus heiler
Status: Open
Priority: Low
Assignee: 
Category: 
Target version: 


In latest Ruby 1.9.3, if you have warnings enabled, you get information like this here:

foobar.rb:24: warning: duplicated when clause is ignored

This error comes from the file:

  compile.c


rb_compile_warning(RSTRING_PTR(iseq->filename), iobj->line_no,
    "duplicated when clause is ignored");


This is called, it seems, when the prior function fails:

  rb_hash_aset(map, obj, INT2FIX(lobj->position - (pos+len)));


As a user of Ruby, the warning should be better.

Rather than:

  foobar.rb:24: warning: duplicated when clause is ignored

I would like to see:

  foobar.rb:24: warning: duplicated when clause 'foo' is ignored.

This way, I can scan through the file with the case/when structure
and correct this error. But right now, if you have a very long 
case/when structure, you have no idea WHICH clause is duplicated.

The warning message just vaguely says that there is, and this is
not very helpful information.


-- 
http://redmine.ruby-lang.org