1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Added rb_warn_deprecated

This commit is contained in:
Nobuyoshi Nakada 2019-12-17 17:17:07 +09:00
parent 7aa8a78674
commit c6c67254fb
No known key found for this signature in database
GPG key ID: 4BC7D6DF58D8DF60
6 changed files with 30 additions and 13 deletions

View file

@ -466,7 +466,7 @@ enumerator_initialize(int argc, VALUE *argv, VALUE obj)
}
else {
rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
rb_warn("Enumerator.new without a block is deprecated; use Object#to_enum");
rb_warn_deprecated("Enumerator.new without a block", "Object#to_enum");
recv = *argv++;
if (--argc) {
meth = *argv++;

16
error.c
View file

@ -325,6 +325,22 @@ rb_enc_warning(rb_encoding *enc, const char *fmt, ...)
}
#endif
void
rb_warn_deprecated(const char *fmt, const char *suggest, ...)
{
if (NIL_P(ruby_verbose)) return;
if (!rb_warning_category_enabled_p(RB_WARN_CATEGORY_DEPRECATED)) return;
va_list args;
va_start(args, suggest);
VALUE mesg = warning_string(0, fmt, args);
va_end(args);
rb_str_set_len(mesg, RSTRING_LEN(mesg) - 1);
rb_str_cat_cstr(mesg, " is deprecated");
if (suggest) rb_str_catf(mesg, "; use %s instead", suggest);
rb_str_cat_cstr(mesg, "\n");
rb_write_warning_str(mesg);
}
static inline int
end_with_asciichar(VALUE str, int c)
{

4
hash.c
View file

@ -2245,7 +2245,7 @@ rb_hash_key(VALUE hash, VALUE value)
static VALUE
rb_hash_index(VALUE hash, VALUE value)
{
rb_warn("Hash#index is deprecated; use Hash#key");
rb_warn_deprecated("Hash#index", "Hash#key");
return rb_hash_key(hash, value);
}
@ -5861,7 +5861,7 @@ env_key(VALUE dmy, VALUE value)
static VALUE
env_index(VALUE dmy, VALUE value)
{
rb_warn("ENV.index is deprecated; use ENV.key");
rb_warn_deprecated("ENV.index", "ENV.key");
return env_key(dmy, value);
}

View file

@ -1547,6 +1547,7 @@ void rb_report_bug_valist(VALUE file, int line, const char *fmt, va_list args);
NORETURN(void rb_async_bug_errno(const char *,int));
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);
#ifdef RUBY_ENCODING_H
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);

16
io.c
View file

@ -3810,7 +3810,7 @@ rb_io_each_line(int argc, VALUE *argv, VALUE io)
static VALUE
rb_io_lines(int argc, VALUE *argv, VALUE io)
{
rb_warn("IO#lines is deprecated; use #each_line instead");
rb_warn_deprecated("IO#lines", "#each_line");
if (!rb_block_given_p())
return rb_enumeratorize(io, ID2SYM(rb_intern("each_line")), argc, argv);
return rb_io_each_line(argc, argv, io);
@ -3861,7 +3861,7 @@ rb_io_each_byte(VALUE io)
static VALUE
rb_io_bytes(VALUE io)
{
rb_warn("IO#bytes is deprecated; use #each_byte instead");
rb_warn_deprecated("IO#bytes", "#each_byte");
if (!rb_block_given_p())
return rb_enumeratorize(io, ID2SYM(rb_intern("each_byte")), 0, 0);
return rb_io_each_byte(io);
@ -4015,7 +4015,7 @@ rb_io_each_char(VALUE io)
static VALUE
rb_io_chars(VALUE io)
{
rb_warn("IO#chars is deprecated; use #each_char instead");
rb_warn_deprecated("IO#chars", "#each_char");
if (!rb_block_given_p())
return rb_enumeratorize(io, ID2SYM(rb_intern("each_char")), 0, 0);
return rb_io_each_char(io);
@ -4143,7 +4143,7 @@ rb_io_each_codepoint(VALUE io)
static VALUE
rb_io_codepoints(VALUE io)
{
rb_warn("IO#codepoints is deprecated; use #each_codepoint instead");
rb_warn_deprecated("IO#codepoints", "#each_codepoint");
if (!rb_block_given_p())
return rb_enumeratorize(io, ID2SYM(rb_intern("each_codepoint")), 0, 0);
return rb_io_each_codepoint(io);
@ -12479,7 +12479,7 @@ argf_each_line(int argc, VALUE *argv, VALUE argf)
static VALUE
argf_lines(int argc, VALUE *argv, VALUE argf)
{
rb_warn("ARGF#lines is deprecated; use #each_line instead");
rb_warn_deprecated("ARGF#lines", "#each_line");
if (!rb_block_given_p())
return rb_enumeratorize(argf, ID2SYM(rb_intern("each_line")), argc, argv);
return argf_each_line(argc, argv, argf);
@ -12526,7 +12526,7 @@ argf_each_byte(VALUE argf)
static VALUE
argf_bytes(VALUE argf)
{
rb_warn("ARGF#bytes is deprecated; use #each_byte instead");
rb_warn_deprecated("ARGF#bytes", "#each_byte");
if (!rb_block_given_p())
return rb_enumeratorize(argf, ID2SYM(rb_intern("each_byte")), 0, 0);
return argf_each_byte(argf);
@ -12565,7 +12565,7 @@ argf_each_char(VALUE argf)
static VALUE
argf_chars(VALUE argf)
{
rb_warn("ARGF#chars is deprecated; use #each_char instead");
rb_warn_deprecated("ARGF#chars", "#each_char");
if (!rb_block_given_p())
return rb_enumeratorize(argf, ID2SYM(rb_intern("each_char")), 0, 0);
return argf_each_char(argf);
@ -12604,7 +12604,7 @@ argf_each_codepoint(VALUE argf)
static VALUE
argf_codepoints(VALUE argf)
{
rb_warn("ARGF#codepoints is deprecated; use #each_codepoint instead");
rb_warn_deprecated("ARGF#codepoints", "#each_codepoint");
if (!rb_block_given_p())
return rb_enumeratorize(argf, ID2SYM(rb_intern("each_codepoint")), 0, 0);
return argf_each_codepoint(argf);

4
proc.c
View file

@ -758,8 +758,8 @@ proc_new(VALUE klass, int8_t is_lambda, int8_t kernel)
}
else {
const char *name = kernel ? "Kernel#proc" : "Proc.new";
rb_warn("Capturing the given block using %s is deprecated; "
"use `&block` instead", name);
rb_warn_deprecated("Capturing the given block using %s",
"`&block`", name);
}
}
#else