summaryrefslogtreecommitdiff
path: root/test/ruby/test_call.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_call.rb')
-rw-r--r--test/ruby/test_call.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/ruby/test_call.rb b/test/ruby/test_call.rb
index d2406743af..12793a7572 100644
--- a/test/ruby/test_call.rb
+++ b/test/ruby/test_call.rb
@@ -52,4 +52,17 @@ class TestCall < Test::Unit::TestCase
assert_nothing_raised(NoMethodError) {o.?x = 6}
assert_nothing_raised(NoMethodError) {o.?x *= 7}
end
+
+ def test_safe_call_evaluate_arguments_only_method_call_is_made
+ count = 0
+ proc = proc { count += 1; 1 }
+ s = Struct.new(:x, :y)
+ o = s.new(["a", "b", "c"])
+
+ o.y.?at(proc.call)
+ assert_equal(0, count)
+
+ o.x.?at(proc.call)
+ assert_equal(1, count)
+ end
end