From 817eb7d17d3f1327dfb4c706ef6604dd1483ece7 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 16 Mar 2012 03:00:44 +0000 Subject: * vm_insnhelper.c (argument_error): use line number at the beginning of lambda, not the first code ob its body. [ruby-core:43314][Bug #6151] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_lambda.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'test') diff --git a/test/ruby/test_lambda.rb b/test/ruby/test_lambda.rb index ae12c6d609..40bd134e2f 100644 --- a/test/ruby/test_lambda.rb +++ b/test/ruby/test_lambda.rb @@ -70,4 +70,23 @@ class TestLambdaParameters < Test::Unit::TestCase BasicObject.new.instance_eval {->() {called = true}.()} assert_equal(true, called, bug5966) end + + def test_location_on_error + bug6151 = '[ruby-core:43314]' + called = 0 + line, f = __LINE__, lambda do + called += 1 + true + end + e = assert_raise(ArgumentError) do + f.call(42) + end + assert_send([e.backtrace.first, :start_with?, "#{__FILE__}:#{line}:"], bug6151) + assert_equal(0, called) + e = assert_raise(ArgumentError) do + 42.times(&f) + end + assert_send([e.backtrace.first, :start_with?, "#{__FILE__}:#{line}:"], bug6151) + assert_equal(0, called) + end end -- cgit v1.2.3