Show more in `RBIMPL_ASSERT_TYPE`

This commit is contained in:
Nobuyoshi Nakada 2024-06-19 14:21:48 +09:00
Родитель b834c62efd
Коммит 249a1fb0eb
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 3582D74E1FEE4465
2 изменённых файлов: 12 добавлений и 5 удалений

Просмотреть файл

@ -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} */