summaryrefslogtreecommitdiff
path: root/test/ruby/test_primitive.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-08-05 11:30:50 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-08-05 11:30:50 +0000
commit600601c338006d9701ce3a8ee9922cdc47d9fed8 (patch)
treef64f740e5598f72a0fff9b604a95bea8d08f29a3 /test/ruby/test_primitive.rb
parent3a32ef53aaab15199e59c643630726b041c9fa88 (diff)
* compile.c (iseq_compile_each): to_a method should be called.
[Bug #3658] * compile.c (iseq_compile_each): ditto for ARGSPUSH. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_primitive.rb')
-rw-r--r--test/ruby/test_primitive.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/ruby/test_primitive.rb b/test/ruby/test_primitive.rb
index e87028c860..448349fcbb 100644
--- a/test/ruby/test_primitive.rb
+++ b/test/ruby/test_primitive.rb
@@ -405,5 +405,20 @@ class TestRubyPrimitive < Test::Unit::TestCase
bug3658 = '[ruby-dev:41933]'
[0, *x=1]
assert_equal(1, x, bug3658)
+ [0, *x=1, 2]
+ assert_equal(1, x, bug3658)
+ class << (x = Object.new)
+ attr_accessor :to_a_called
+ def to_a
+ @to_a_called = true
+ [self]
+ end
+ end
+ x.to_a_called = false
+ [0, *x]
+ assert(x.to_a_called, bug3658)
+ x.to_a_called = false
+ [0, *x, 2]
+ assert(x.to_a_called, bug3658)
end
end