diff --git a/m-variant.h b/m-variant.h index 9bf69b16..bc45df67 100644 --- a/m-variant.h +++ b/m-variant.h @@ -137,13 +137,13 @@ #define VARIANTI_DEFINE_SETTER(name, ...) \ - static inline bool M_C(name, _set_empty)(M_C(name,_t) my) { \ + static inline void M_C(name, _set_empty)(M_C(name,_t) my) { \ M_C(name, _clear)(my); \ M_C(name, _init)(my); \ } \ M_MAP2(VARIANTI_DEFINE_SETTER_FUNC, name, __VA_ARGS__) #define VARIANTI_DEFINE_SETTER_FUNC(name, a) \ - static inline bool M_C3(name, _set_, VARIANTI_GET_FIELD a)(M_C(name,_t) my,\ + static inline void M_C3(name, _set_, VARIANTI_GET_FIELD a)(M_C(name,_t) my, \ VARIANTI_GET_TYPE a VARIANTI_GET_FIELD a ) { \ if (my->type == M_C(VARIANT_, VARIANTI_GET_FIELD a) ) { \ VARIANTI_GET_SET a (my -> value. VARIANTI_GET_FIELD a, \ diff --git a/tests/test-mvariant.c b/tests/test-mvariant.c index 1c317daf..0ae88805 100644 --- a/tests/test-mvariant.c +++ b/tests/test-mvariant.c @@ -35,6 +35,37 @@ static void test_pair(void) pair_t p; pair_init (p); + assert (pair_empty_p(p)); + assert (!pair_key_p(p)); + assert (!pair_value_p(p)); + + pair_set_key(p, 17); + assert (!pair_empty_p(p)); + assert (pair_key_p(p)); + assert (!pair_value_p(p)); + int *i = pair_get_key(p); + assert (*i == 17); + float *f = pair_get_value(p); + assert (f == NULL); + + pair_set_value(p, 42.0); + assert (!pair_empty_p(p)); + assert (!pair_key_p(p)); + assert (pair_value_p(p)); + i = pair_get_key(p); + assert (i == NULL); + f = pair_get_value(p); + assert (*f == 42.0); + + pair_set_empty(p); + assert (pair_empty_p(p)); + assert (!pair_key_p(p)); + assert (!pair_value_p(p)); + i = pair_get_key(p); + assert (i == NULL); + f = pair_get_value(p); + assert (f == NULL); + pair_clear(p); }