mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
merge revision(s) 50182,50183: [Backport #11035]
* hash.c (rb_any_hash): Symbols are compared by the identities always. [ruby-core:68767] [Bug #11035] * test/ruby/test_symbol.rb: fix syntax error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@50620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c758d63138
commit
92e97984c6
4 changed files with 32 additions and 1 deletions
|
|
@ -1,3 +1,12 @@
|
|||
Sun May 24 02:02:00 2015 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* test/ruby/test_symbol.rb: fix syntax error.
|
||||
|
||||
Sun May 24 02:02:00 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* hash.c (rb_any_hash): Symbols are compared by the identities
|
||||
always. [ruby-core:68767] [Bug #11035]
|
||||
|
||||
Sun May 24 02:01:07 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* hash.c (rb_any_hash): use same hash values with Float#hash so
|
||||
|
|
|
|||
3
hash.c
3
hash.c
|
|
@ -149,6 +149,9 @@ rb_any_hash(VALUE a)
|
|||
else if (BUILTIN_TYPE(a) == T_STRING) {
|
||||
hnum = rb_str_hash(a);
|
||||
}
|
||||
else if (BUILTIN_TYPE(a) == T_SYMBOL) {
|
||||
hnum = rb_objid_hash((st_index_t)a);
|
||||
}
|
||||
else if (BUILTIN_TYPE(a) == T_FLOAT) {
|
||||
return rb_dbl_hash(rb_float_value(a));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -267,4 +267,23 @@ class TestSymbol < Test::Unit::TestCase
|
|||
200_000.times { |i| i.to_s.to_sym }
|
||||
end;
|
||||
end
|
||||
|
||||
def test_hash_redefinition
|
||||
assert_separately([], <<-'end;')
|
||||
bug11035 = '[ruby-core:68767] [Bug #11035]'
|
||||
class Symbol
|
||||
def hash
|
||||
raise
|
||||
end
|
||||
end
|
||||
|
||||
h = {}
|
||||
assert_nothing_raised(RuntimeError, bug11035) {
|
||||
h[:foo] = 1
|
||||
}
|
||||
assert_nothing_raised(RuntimeError, bug11035) {
|
||||
h['bar'.to_sym] = 2
|
||||
}
|
||||
end;
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#define RUBY_VERSION "2.2.3"
|
||||
#define RUBY_RELEASE_DATE "2015-05-24"
|
||||
#define RUBY_PATCHLEVEL 116
|
||||
#define RUBY_PATCHLEVEL 117
|
||||
|
||||
#define RUBY_RELEASE_YEAR 2015
|
||||
#define RUBY_RELEASE_MONTH 5
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue