Project

General

Profile

Actions

Bug #7471

closed

character class has duplicated range warning for "" =~ /[\w\W]/

Added by drbrain (Eric Hodel) about 12 years ago. Updated almost 12 years ago.

Status:
Closed
Target version:
ruby -v:
-
Backport:
[ruby-core:50344]

Description

=begin
The warning seems bogus, \w and \W do not overlap.

$ cat test.rb
$-w = true

""=~/[\w\W]/
$ make runruby
/Users/drbrain/Work/svn/ruby/trunk/test.rb:3: warning: character class has duplicated range: /[\w\W]/

There is no warning with 1.9.3:

$ ~/.multiruby/install/1.9.3-p194/bin/ruby -v test.rb
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.1.0]
[no output]

This affects abbrev.rb:

/usr/local/lib/ruby/2.0.0/abbrev.rb:77: warning: character class has duplicated range: /[\w\W]\z/

=end

Updated by knu (Akinori MUSHA) about 12 years ago

  • Assignee changed from usa (Usaku NAKAMURA) to knu (Akinori MUSHA)
Actions #2

Updated by knu (Akinori MUSHA) about 12 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r38028.
Eric, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


Stop using a regexp that causes a false warning.

  • lib/abbrev.rb (Abbrev#abbrev): Stop using a regexp that causes a
    false warning. [Bug #7471]

Updated by knu (Akinori MUSHA) about 12 years ago

  • Status changed from Closed to Open
  • Assignee changed from knu (Akinori MUSHA) to naruse (Yui NARUSE)

While I worked around this, the warning itself looks like a bug in our regexp engine (Onigmo?).

Updated by knu (Akinori MUSHA) about 12 years ago

Onigmo doesn't have the code for detecting duplication in character class, so this problem seems to be on our own.

I narrowed the problem down:

% ruby@2.0.0 -EUS-ASCII -W2 -e '/[\D]/=~""'
-e:1: warning: character class has duplicated range: /[\D]/
% ruby@2.0.0 -EUS-ASCII -W2 -e '/[\W]/=~""'
-e:1: warning: character class has duplicated range: /[\W]/

Looks like CTYPE + NOT = FAIL.

Updated by usa (Usaku NAKAMURA) almost 12 years ago

  • Status changed from Open to Assigned
Actions #6

Updated by naruse (Yui NARUSE) almost 12 years ago

  • Status changed from Assigned to Closed

This issue was solved with changeset r38805.
Eric, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • regparse.c (add_ctype_to_cc): don't check dup warn on adding
    negative ctype to cclass. [Bug #7471] [ruby-core:50344]
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0