зеркало из https://github.com/github/ruby.git
Show more in `RBIMPL_ASSERT_TYPE`
This commit is contained in:
Родитель
b834c62efd
Коммит
249a1fb0eb
|
@ -299,16 +299,18 @@ RBIMPL_WARNING_IGNORED(-Wgnu-zero-variadic-macro-arguments)
|
||||||
*/
|
*/
|
||||||
#if RUBY_DEBUG
|
#if RUBY_DEBUG
|
||||||
# define RBIMPL_ASSERT_OR_ASSUME RUBY_ASSERT_ALWAYS
|
# define RBIMPL_ASSERT_OR_ASSUME RUBY_ASSERT_ALWAYS
|
||||||
|
#elif ! defined(RBIMPL_VA_OPT_ARGS)
|
||||||
|
# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSUME(expr)
|
||||||
#elif RBIMPL_COMPILER_BEFORE(Clang, 7, 0, 0)
|
#elif RBIMPL_COMPILER_BEFORE(Clang, 7, 0, 0)
|
||||||
# /* See commit 67d259c5dccd31fe49d417fec169977712ffdf10 */
|
# /* See commit 67d259c5dccd31fe49d417fec169977712ffdf10 */
|
||||||
# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING
|
# define RBIMPL_ASSERT_OR_ASSUME(...) RBIMPL_ASSERT_NOTHING
|
||||||
#elif defined(RUBY_ASSERT_NOASSUME)
|
#elif defined(RUBY_ASSERT_NOASSUME)
|
||||||
# /* See commit d300a734414ef6de7e8eb563b7cc4389c455ed08 */
|
# /* See commit d300a734414ef6de7e8eb563b7cc4389c455ed08 */
|
||||||
# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING
|
# define RBIMPL_ASSERT_OR_ASSUME(...) RBIMPL_ASSERT_NOTHING
|
||||||
#elif ! defined(RBIMPL_HAVE___ASSUME)
|
#elif ! defined(RBIMPL_HAVE___ASSUME)
|
||||||
# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING
|
# define RBIMPL_ASSERT_OR_ASSUME(...) RBIMPL_ASSERT_NOTHING
|
||||||
#else
|
#else
|
||||||
# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSUME(expr)
|
# define RBIMPL_ASSERT_OR_ASSUME(expr, ...) RBIMPL_ASSUME(expr)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* RUBY_ASSERT_H */
|
#endif /* RUBY_ASSERT_H */
|
||||||
|
|
|
@ -96,7 +96,12 @@
|
||||||
#define RB_TYPE_P RB_TYPE_P
|
#define RB_TYPE_P RB_TYPE_P
|
||||||
#define Check_Type Check_Type
|
#define Check_Type Check_Type
|
||||||
|
|
||||||
#define RBIMPL_ASSERT_TYPE(v, t) RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P((v), (t)))
|
#ifdef RBIMPL_VA_OPT_ARGS
|
||||||
|
# define RBIMPL_ASSERT_TYPE(v, t) \
|
||||||
|
RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P(v, t), "actual type: %d", rb_type(v))
|
||||||
|
#else
|
||||||
|
# define RBIMPL_ASSERT_TYPE(v, t) RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P(v, t))
|
||||||
|
#endif
|
||||||
/** @endcond */
|
/** @endcond */
|
||||||
|
|
||||||
/** @old{rb_type} */
|
/** @old{rb_type} */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче