mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
rb_warn_deprecated_to_remove_at [Feature #17432]
At compilation time with RUBY_DEBUG enabled, check if the removal version has been reached.
This commit is contained in:
parent
d1998d8767
commit
8118d435d0
Notes:
git
2021-06-30 10:47:37 +09:00
5 changed files with 86 additions and 28 deletions
|
@ -49,7 +49,50 @@ 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);
|
||||
PRINTF_ARGS(void rb_warn_deprecated_to_remove(const char *fmt, const char *removal, ...), 1, 3);
|
||||
PRINTF_ARGS(void rb_warn_deprecated_to_remove(const char *fmt, const char *suggest, ...), 1, 3);
|
||||
#if RUBY_DEBUG && (RBIMPL_HAS_ATTRIBUTE(diagnose_if) || defined(__OPTIMIZE__))
|
||||
# include "ruby/version.h"
|
||||
|
||||
#define RUBY_VERSION_isdigit(c) ('0'<=(c)&&(c)<='9')
|
||||
// upto 99
|
||||
#define RUBY_VERSION__number_len(v, ofs) \
|
||||
(!RUBY_VERSION_isdigit((v)[ofs]) ? \
|
||||
0 : !RUBY_VERSION_isdigit((v)[(ofs) + 1]) ? 1 : 2)
|
||||
#define RUBY_VERSION__to_number(v, ofs) \
|
||||
(!RUBY_VERSION_isdigit((v)[ofs]) ? \
|
||||
0 : !RUBY_VERSION_isdigit((v)[(ofs) + 1]) ? \
|
||||
((v)[ofs]-'0') : \
|
||||
(((v)[ofs]-'0')*10+(v)[(ofs)+1]-'0'))
|
||||
|
||||
#define RUBY_VERSION_CODE_FROM_MAJOR_MINOR_STRING(v) \
|
||||
(RUBY_VERSION__to_number(v, 0) * 10000 + \
|
||||
((v)[RUBY_VERSION__number_len(v, 0)] == '.' ? \
|
||||
RUBY_VERSION__to_number(v, RUBY_VERSION__number_len(v, 0)+1) * 100 : 0))
|
||||
#define RUBY_VERSION_SINCE(v) (RUBY_API_VERSION_CODE >= RUBY_VERSION_CODE_FROM_MAJOR_MINOR_STRING(v))
|
||||
#define RUBY_VERSION_BEFORE(v) (RUBY_API_VERSION_CODE < RUBY_VERSION_CODE_FROM_MAJOR_MINOR_STRING(v))
|
||||
|
||||
# if RBIMPL_HAS_ATTRIBUTE(diagnose_if)
|
||||
RBIMPL_ATTR_FORCEINLINE()
|
||||
static void
|
||||
rb_deprecated_method_to_be_removed(const char *removal)
|
||||
RBIMPL_ATTR_DIAGNOSE_IF(RUBY_VERSION_SINCE(removal), "deprecated method to be removed", "error")
|
||||
{
|
||||
}
|
||||
# else
|
||||
RBIMPL_ATTR_ERROR(("deprecated"))
|
||||
void rb_deprecated_method_to_be_removed(const char *);
|
||||
# define rb_deprecated_method_to_be_removed(removal) \
|
||||
(sizeof(char[1-2*RUBY_VERSION_SINCE(removal)])!=1 ? \
|
||||
rb_deprecated_method_to_be_removed(removal) : \
|
||||
RBIMPL_ASSERT_NOTHING)
|
||||
# endif
|
||||
# define rb_warn_deprecated_to_remove_at(removal, ...) \
|
||||
(rb_deprecated_method_to_be_removed(removal), \
|
||||
rb_warn_deprecated_to_remove(__VA_ARGS__))
|
||||
#else
|
||||
# define rb_warn_deprecated_to_remove_at(removal, ...) \
|
||||
rb_warn_deprecated_to_remove(__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);
|
||||
PRINTF_ARGS(void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue