Project

General

Profile

Bug #9883

Different behaviour between `==` and hash key lookup regarding multibyte character fragment

Added by sawa (Tsuyoshi Sawada) over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
2.1
Backport:
[ruby-core:62848]

Description

This question is reported in stackoverflow (http://stackoverflow.com/questions/23946127). When a multibyte character is split by slice, == ignores the split fragment of the character, while key lookup on hash does not:

s1 = "’xxxxxxxxxxxxxxxxxxxxxxxx".slice(1, 24)
s2 = "xxxxxxxxxxxxxxxxxxxxxxxx"

s1 == s2          # => true
{s2=>""}.key?(s1) # => false

This is inconsistent, and I believe either of the above two is a bug. If it is not a bug, but intended, then it is misleading, and I propose the feature should be changed.


Related issues

Is duplicate of Ruby master - Bug #9882: Issue with hash string keysClosed05/30/2014Actions

Associated revisions

Revision 08e698d4
Added by usa (Usaku NAKAMURA) over 5 years ago

merge revision(s) 46243,46244: [Backport #9882] [Backport #9883]

    * string.c (rb_str_substr): need to reset code range for shared
      string too, not only copied string.
      [ruby-core:62842] [Bug #9882]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@46584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 46584
Added by usa (Usaku NAKAMURA) over 5 years ago

merge revision(s) 46243,46244: [Backport #9882] [Backport #9883]

* string.c (rb_str_substr): need to reset code range for shared
  string too, not only copied string.
  [ruby-core:62842] [Bug #9882]

Revision 108828f6
Added by nagachika (Tomoyuki Chikanaga) over 5 years ago

merge revision(s) r46243,r46244: [Backport #9882] [Backport #9883]

    * string.c (rb_str_substr): need to reset code range for shared
      string too, not only copied string.
      [ruby-core:62842] [Bug #9882]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 46599
Added by nagachika (Tomoyuki Chikanaga) over 5 years ago

merge revision(s) r46243,r46244: [Backport #9882] [Backport #9883]

* string.c (rb_str_substr): need to reset code range for shared
  string too, not only copied string.
  [ruby-core:62842] [Bug #9882]

History

Updated by phasis68 (Heesob Park) over 5 years ago

This issue is a duplicate of Bug #9882.

And already solved with changeset r46243.

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

  • Is duplicate of Bug #9882: Issue with hash string keys added

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

  • Status changed from Open to Closed
  • Description updated (diff)

Also available in: Atom PDF