[前][次][番号順一覧][スレッド一覧]

ruby-changes:66633

From: Nobuyoshi <ko1@a...>
Date: Wed, 30 Jun 2021 10:47:26 +0900 (JST)
Subject: [ruby-changes:66633] 0b726924a4 (master): Show the removal version

https://git.ruby-lang.org/ruby.git/commit/?id=0b726924a4

From 0b726924a4ac6a09b33d0f7d082c30d667b7564e Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Mon, 28 Dec 2020 19:17:52 +0900
Subject: Show the removal version

---
 error.c          | 12 +++++++-----
 internal/error.h |  6 +++---
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/error.c b/error.c
index c719d54..6e08e64 100644
--- a/error.c
+++ b/error.c
@@ -493,11 +493,13 @@ deprecation_warning_enabled(void) https://github.com/ruby/ruby/blob/trunk/error.c#L493
 }
 
 static void
-warn_deprecated(VALUE mesg, bool removal, const char *suggest)
+warn_deprecated(VALUE mesg, const char *removal, const char *suggest)
 {
     rb_str_set_len(mesg, RSTRING_LEN(mesg) - 1);
     rb_str_cat_cstr(mesg, " is deprecated");
-    if (removal) rb_str_cat_cstr(mesg, ", and is planned for removal");
+    if (removal) {
+        rb_str_catf(mesg, " and will be removed in Ruby %s", removal);
+    }
     if (suggest) rb_str_catf(mesg, "; use %s instead", suggest);
     rb_str_cat_cstr(mesg, "\n");
     rb_warn_category(mesg, ID2SYM(id_deprecated));
@@ -513,11 +515,11 @@ rb_warn_deprecated(const char *fmt, const char *suggest, ...) https://github.com/ruby/ruby/blob/trunk/error.c#L515
     VALUE mesg = warning_string(0, fmt, args);
     va_end(args);
 
-    warn_deprecated(mesg, false, suggest);
+    warn_deprecated(mesg, NULL, suggest);
 }
 
 void
-rb_warn_deprecated_to_remove(const char *fmt, const char *suggest, ...)
+rb_warn_deprecated_to_remove(const char *removal, const char *fmt, const char *suggest, ...)
 {
     if (!deprecation_warning_enabled()) return;
 
@@ -526,7 +528,7 @@ rb_warn_deprecated_to_remove(const char *fmt, const char *suggest, ...) https://github.com/ruby/ruby/blob/trunk/error.c#L528
     VALUE mesg = warning_string(0, fmt, args);
     va_end(args);
 
-    warn_deprecated(mesg, true, suggest);
+    warn_deprecated(mesg, removal, suggest);
 }
 
 static inline int
diff --git a/internal/error.h b/internal/error.h
index 16a2f38..b1095b7 100644
--- a/internal/error.h
+++ b/internal/error.h
@@ -49,7 +49,7 @@ NORETURN(void rb_async_bug_errno(const char *,int)); https://github.com/ruby/ruby/blob/trunk/internal/error.h#L49
 const char *rb_builtin_type_name(int t);
 const char *rb_builtin_class_name(VALUE x);
 PRINTF_ARGS(void rb_warn_deprecated(const char *fmt, const char *suggest, ...), 1, 3);
-PRINTF_ARGS(void rb_warn_deprecated_to_remove(const char *fmt, const char *suggest, ...), 1, 3);
+PRINTF_ARGS(void rb_warn_deprecated_to_remove(const char *removal, const char *fmt, const char *suggest, ...), 2, 4);
 #if RUBY_DEBUG && (RBIMPL_HAS_ATTRIBUTE(diagnose_if) || defined(__OPTIMIZE__))
 # include "ruby/version.h"
 
@@ -88,10 +88,10 @@ void rb_deprecated_method_to_be_removed(const char *); https://github.com/ruby/ruby/blob/trunk/internal/error.h#L88
 # endif
 # define rb_warn_deprecated_to_remove_at(removal, ...) \
     (rb_deprecated_method_to_be_removed(removal), \
-     rb_warn_deprecated_to_remove(__VA_ARGS__))
+     rb_warn_deprecated_to_remove(removal, __VA_ARGS__))
 #else
 # define rb_warn_deprecated_to_remove_at(removal, ...) \
-        rb_warn_deprecated_to_remove(__VA_ARGS__)
+        rb_warn_deprecated_to_remove(removal, __VA_ARGS__)
 #endif
 VALUE rb_syntax_error_append(VALUE, VALUE, int, int, rb_encoding*, const char*, va_list);
 PRINTF_ARGS(void rb_enc_warn(rb_encoding *enc, const char *fmt, ...), 2, 3);
-- 
cgit v1.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]