diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-02-15 07:18:22 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-02-15 07:18:22 +0000 |
commit | 31e0a51652967bf6c260176101a372faabe489a7 (patch) | |
tree | 52ff80901166ffc2d0388d502bdbdf576c586320 /test/-ext- | |
parent | ab530f056c7e45aa711a736790fb448bbdce19e7 (diff) |
merge revision(s) r40101:
* struct.c (make_struct): avoid inadvertent symbol creation.
(rb_struct_aref): ditto.
(rb_struct_aset): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@44968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/-ext-')
-rw-r--r-- | test/-ext-/symbol/test_inadvertent_creation.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/-ext-/symbol/test_inadvertent_creation.rb b/test/-ext-/symbol/test_inadvertent_creation.rb index 7c0aaa89f0..6447c955c5 100644 --- a/test/-ext-/symbol/test_inadvertent_creation.rb +++ b/test/-ext-/symbol/test_inadvertent_creation.rb @@ -159,5 +159,25 @@ module Test_Symbol assert_equal(name, e.name) assert_equal([Feature5112], e.args) end + + def test_struct_new + name = noninterned_name + assert_raise(NameError) {Struct.new(name)} + assert_not_send([Bug::Symbol, :interned?, name]) + end + + def test_struct_aref + s = Struct.new(:foo).new + name = noninterned_name + assert_raise(NameError) {s[name]} + assert_not_send([Bug::Symbol, :interned?, name]) + end + + def test_struct_aset + s = Struct.new(:foo).new + name = noninterned_name + assert_raise(NameError) {s[name] = true} + assert_not_send([Bug::Symbol, :interned?, name]) + end end end |