aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-17 17:16:12 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-19 09:52:17 +0900
commit7aa8a786740fd84bd718b0c055f190b25a8f0277 (patch)
tree5d837abc1cc14480b4bff966c8945b8bb66b4f4e
parent9bf9de3d9d2f67bc401151fb94abf75b5eff5913 (diff)
downloadruby-7aa8a786740fd84bd718b0c055f190b25a8f0277.tar.gz
Manage deprecation warnings about keyword argument
-rw-r--r--test/ruby/test_exception.rb3
-rw-r--r--vm_args.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb
index 56cd19d0a2..c7cfe816b0 100644
--- a/test/ruby/test_exception.rb
+++ b/test/ruby/test_exception.rb
@@ -1160,6 +1160,7 @@ $stderr = $stdout; raise "\x82\xa0"') do |outs, errs, status|
def capture_warning_warn
verbose = $VERBOSE
+ deprecated = Warning[:deprecated]
warning = []
::Warning.class_eval do
@@ -1172,11 +1173,13 @@ $stderr = $stdout; raise "\x82\xa0"') do |outs, errs, status|
end
$VERBOSE = true
+ Warning[:deprecated] = true
yield
return warning
ensure
$VERBOSE = verbose
+ Warning[:deprecated] = deprecated
::Warning.class_eval do
remove_method :warn
diff --git a/vm_args.c b/vm_args.c
index a9027e3f8c..924af7157d 100644
--- a/vm_args.c
+++ b/vm_args.c
@@ -597,6 +597,8 @@ static st_table *caller_to_callees = 0;
static VALUE
rb_warn_check(const rb_execution_context_t * const ec, const rb_iseq_t *const iseq)
{
+ if (!rb_warning_category_enabled_p(RB_WARN_CATEGORY_DEPRECATED)) return 1;
+
if (!iseq) return 0;
const st_data_t callee = (st_data_t)(iseq->body->iseq_unique_id * 2);