Project

General

Profile

Actions

Feature #5716

closed

duplicated when clause is ignored -> Report which clause it is specifically.

Added by shevegen (Robert A. Heiler) over 12 years ago. Updated almost 12 years ago.

Status:
Closed
Target version:
-
[ruby-core:<unknown>]

Description

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.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0