TracePoint.new: raise ArgumentError when no block given [#14074]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
marcandre 2017-11-09 22:04:47 +00:00
Родитель 7b1f3906a0
Коммит a5abde57b8
2 изменённых файлов: 6 добавлений и 2 удалений

Просмотреть файл

@ -1770,4 +1770,8 @@ class TestSetTraceFunc < Test::Unit::TestCase
end
}, bug13705
end
def test_trace_point_require_block
assert_raise(ArgumentError) { TracePoint.new(:return) }
end
end

Просмотреть файл

@ -1238,7 +1238,7 @@ rb_tracepoint_new(VALUE target_thval, rb_event_flag_t events, void (*func)(VALUE
*
* See TracePoint@Events for possible events and more information.
*
* A block must be given, otherwise a ThreadError is raised.
* A block must be given, otherwise an ArgumentError is raised.
*
* If the trace method isn't included in the given events filter, a
* RuntimeError is raised.
@ -1274,7 +1274,7 @@ tracepoint_new_s(int argc, VALUE *argv, VALUE self)
}
if (!rb_block_given_p()) {
rb_raise(rb_eThreadError, "must be called with a block");
rb_raise(rb_eArgError, "must be called with a block");
}
return tracepoint_new(self, 0, events, 0, 0, rb_block_proc());