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

ruby-changes:59785

From: Nobuyoshi <ko1@a...>
Date: Thu, 23 Jan 2020 21:48:32 +0900 (JST)
Subject: [ruby-changes:59785] aefb13eb63 (master): Added rb_warn_deprecated_to_remove

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

From aefb13eb631cc5cd784fe2fc10f1f333a2c5e68c Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Thu, 23 Jan 2020 21:42:05 +0900
Subject: Added rb_warn_deprecated_to_remove

Warn the deprecation and future removal, with obeying the warning
flag.

diff --git a/error.c b/error.c
index 1702a70..b9ec842 100644
--- a/error.c
+++ b/error.c
@@ -389,6 +389,20 @@ rb_warn_deprecated(const char *fmt, const char *suggest, ...) https://github.com/ruby/ruby/blob/trunk/error.c#L389
     rb_write_warning_str(mesg);
 }
 
+void
+rb_warn_deprecated_to_remove(const char *fmt, const char *removal, ...)
+{
+    if (NIL_P(ruby_verbose)) return;
+    if (!rb_warning_category_enabled_p(RB_WARN_CATEGORY_DEPRECATED)) return;
+    va_list args;
+    va_start(args, removal);
+    VALUE mesg = warning_string(0, fmt, args);
+    va_end(args);
+    rb_str_set_len(mesg, RSTRING_LEN(mesg) - 1);
+    rb_str_catf(mesg, " is deprecated and will be removed in Ruby %s\n", removal);
+    rb_write_warning_str(mesg);
+}
+
 static inline int
 end_with_asciichar(VALUE str, int c)
 {
@@ -3035,14 +3049,14 @@ rb_check_frozen(VALUE obj) https://github.com/ruby/ruby/blob/trunk/error.c#L3049
 void
 rb_error_untrusted(VALUE obj)
 {
-    rb_warn("rb_error_untrusted is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("rb_error_untrusted", "3.2");
 }
 
 #undef rb_check_trusted
 void
 rb_check_trusted(VALUE obj)
 {
-    rb_warn("rb_check_trusted is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("rb_check_trusted", "3.2");
 }
 
 void
diff --git a/ext/pathname/pathname.c b/ext/pathname/pathname.c
index e511560..86b22ca 100644
--- a/ext/pathname/pathname.c
+++ b/ext/pathname/pathname.c
@@ -138,7 +138,7 @@ path_freeze(VALUE self) https://github.com/ruby/ruby/blob/trunk/ext/pathname/pathname.c#L138
 static VALUE
 path_taint(VALUE self)
 {
-    rb_warn("Pathname#taint is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("Pathname#taint", "3.2");
     return self;
 }
 
@@ -151,7 +151,7 @@ path_taint(VALUE self) https://github.com/ruby/ruby/blob/trunk/ext/pathname/pathname.c#L151
 static VALUE
 path_untaint(VALUE self)
 {
-    rb_warn("Pathname#untaint is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("Pathname#untaint", "3.2");
     return self;
 }
 
diff --git a/hash.c b/hash.c
index 6823bae..32df430 100644
--- a/hash.c
+++ b/hash.c
@@ -4968,7 +4968,7 @@ env_fetch(int argc, VALUE *argv, VALUE _) https://github.com/ruby/ruby/blob/trunk/hash.c#L4968
 int
 rb_env_path_tainted(void)
 {
-    rb_warn("rb_env_path_tainted is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("rb_env_path_tainted", "3.2");
     return 0;
 }
 
diff --git a/internal/error.h b/internal/error.h
index cb2f23d..ebedc9b 100644
--- a/internal/error.h
+++ b/internal/error.h
@@ -52,6 +52,7 @@ NORETURN(void rb_async_bug_errno(const char *,int)); https://github.com/ruby/ruby/blob/trunk/internal/error.h#L52
 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 *removal, ...), 1, 3);
 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);
 PRINTF_ARGS(void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3);
diff --git a/object.c b/object.c
index bfce958..166fdae 100644
--- a/object.c
+++ b/object.c
@@ -1216,7 +1216,7 @@ rb_obj_dummy1(VALUE _x, VALUE _y) https://github.com/ruby/ruby/blob/trunk/object.c#L1216
 VALUE
 rb_obj_tainted(VALUE obj)
 {
-    rb_warn("Object#tainted? is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("Object#tainted?", "3.2");
     return Qfalse;
 }
 
@@ -1230,7 +1230,7 @@ rb_obj_tainted(VALUE obj) https://github.com/ruby/ruby/blob/trunk/object.c#L1230
 VALUE
 rb_obj_taint(VALUE obj)
 {
-    rb_warn("Object#taint is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("Object#taint", "3.2");
     return obj;
 }
 
@@ -1245,7 +1245,7 @@ rb_obj_taint(VALUE obj) https://github.com/ruby/ruby/blob/trunk/object.c#L1245
 VALUE
 rb_obj_untaint(VALUE obj)
 {
-    rb_warn("Object#untaint is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("Object#untaint", "3.2");
     return obj;
 }
 
@@ -1259,7 +1259,7 @@ rb_obj_untaint(VALUE obj) https://github.com/ruby/ruby/blob/trunk/object.c#L1259
 VALUE
 rb_obj_untrusted(VALUE obj)
 {
-    rb_warn("Object#untrusted? is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("Object#untrusted?", "3.2");
     return Qfalse;
 }
 
@@ -1273,7 +1273,7 @@ rb_obj_untrusted(VALUE obj) https://github.com/ruby/ruby/blob/trunk/object.c#L1273
 VALUE
 rb_obj_untrust(VALUE obj)
 {
-    rb_warn("Object#untrust is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("Object#untrust", "3.2");
     return obj;
 }
 
@@ -1288,7 +1288,7 @@ rb_obj_untrust(VALUE obj) https://github.com/ruby/ruby/blob/trunk/object.c#L1288
 VALUE
 rb_obj_trust(VALUE obj)
 {
-    rb_warn("Object#trust is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("Object#trust", "3.2");
     return obj;
 }
 
@@ -1299,7 +1299,7 @@ rb_obj_trust(VALUE obj) https://github.com/ruby/ruby/blob/trunk/object.c#L1299
 void
 rb_obj_infect(VALUE victim, VALUE carrier)
 {
-    rb_warn("rb_obj_infect is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("rb_obj_infect", "3.2");
 }
 
 /**
diff --git a/string.c b/string.c
index b4b365a..cdd987d 100644
--- a/string.c
+++ b/string.c
@@ -910,14 +910,14 @@ rb_enc_str_new_static(const char *ptr, long len, rb_encoding *enc) https://github.com/ruby/ruby/blob/trunk/string.c#L910
 VALUE
 rb_tainted_str_new(const char *ptr, long len)
 {
-    rb_warn("rb_tainted_str_new is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("rb_tainted_str_new", "3.2");
     return rb_str_new(ptr, len);
 }
 
 VALUE
 rb_tainted_str_new_cstr(const char *ptr)
 {
-    rb_warn("rb_tainted_str_new_cstr is deprecated and will be removed in Ruby 3.2.");
+    rb_warn_deprecated_to_remove("rb_tainted_str_new_cstr", "3.2");
     return rb_str_new_cstr(ptr);
 }
 
-- 
cgit v0.10.2


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

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