From 563762f6c54ac7f6ceaee49f7212ab56eb2d2d06 Mon Sep 17 00:00:00 2001 From: mame Date: Mon, 23 Apr 2012 15:23:41 +0000 Subject: * parse.y (primary): remove wrong "fixpos" that caused incorrect source_location of blocks. [ruby-core:42232] [Bug #5930] * test/ruby/test_proc.rb: add a test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_proc.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test/ruby/test_proc.rb') diff --git a/test/ruby/test_proc.rb b/test/ruby/test_proc.rb index 686db844ee..3deb5c0109 100644 --- a/test/ruby/test_proc.rb +++ b/test/ruby/test_proc.rb @@ -1059,6 +1059,20 @@ class TestProc < Test::Unit::TestCase assert_equal(@@line_of_attr_accessor_source_location_test, lineno) end + def block_source_location_test(*args, &block) + block.source_location + end + + def test_block_source_location + exp_lineno = __LINE__ + 3 + file, lineno = block_source_location_test(1, + 2, + 3) do + end + assert_match(/^#{ Regexp.quote(__FILE__) }$/, file) + assert_equal(exp_lineno, lineno) + end + def test_splat_without_respond_to def (obj = Object.new).respond_to?(m,*); false end [obj].each do |a, b| -- cgit v1.2.3