Project

General

Profile

Actions

Bug #20401

closed

Duplicated when clause warning line number

Added by kddnewton (Kevin Newton) 10 months ago. Updated 8 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:117368]

Description

When you have a duplicated when clause, you get a warning for it. For example:

case foo
when :bar
when :baz
when :bar
end

you get warning: duplicated `when' clause with line 2 is ignored.

But the when clause that is ignored is the one on line 4, not line 2. It seems like it's warning for the wrong line.

Updated by kddnewton (Kevin Newton) 10 months ago

On the otherhand, if you have duplicated hash keys you get:

{
  bar: 1,
  baz: 1,
  bar: 1
}

For the warning: warning: key :bar is duplicated and overwritten on line 4. So this seems correct.

Updated by mame (Yusuke Endoh) 10 months ago

This behavior was discovered and briefly discussed during the previous dev meeting. The actual warning is

test.rb:4: warning: duplicated 'when' clause with line 2 is ignored

According to @nobu (Nobuyoshi Nakada), this reads "The 'when' clause at line 4 duplicates (conflicts) with (a 'when' clause at) line 2. This is ignored."

Anyway I agree that it is too confusing. I think it would be good if they could improve the English.

Actions #3

Updated by nobu (Nobuyoshi Nakada) 10 months ago

  • Description updated (diff)

Updated by kddnewton (Kevin Newton) 8 months ago

I've updated the message to say:

'when' clause on line 4 duplicates 'when' clause on line 2 and is ignored

I hope this is okay, I believe it is much more clear. The PR is here: https://github.com/ruby/ruby/pull/10776. @nobu (Nobuyoshi Nakada) or @mame (Yusuke Endoh) could you review?

Updated by kddnewton (Kevin Newton) 8 months ago

I've merged it for now. Happy to revert or change further if there's any more feedback!

Actions #6

Updated by kddnewton (Kevin Newton) 8 months ago

  • Status changed from Open to Closed
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0