forked from enlightenment/efl
eolian-cxx: Make events inherit beta info from klass.
To mimic function behavior Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br> Differential Revision: https://phab.enlightenment.org/D10381
This commit is contained in:
parent
b1a1cdc701
commit
5516b06af5
|
@ -1188,7 +1188,7 @@ struct event_def
|
|||
} : eina::optional<type_def>{})
|
||||
, name( ::eolian_event_name_get(event))
|
||||
, c_name( ::eolian_event_c_macro_get(event))
|
||||
, is_beta( ::eolian_event_is_beta(event))
|
||||
, is_beta( ::eolian_event_is_beta(event) || klass.is_beta)
|
||||
, is_protected( ::eolian_event_scope_get(event) == EOLIAN_SCOPE_PROTECTED)
|
||||
, documentation( ::eolian_event_documentation_get(event)) {}
|
||||
};
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
class @beta Beta_Class extends Efl.Object
|
||||
{
|
||||
methods {
|
||||
method_should_be_beta {
|
||||
[[ Method should be beta ]]
|
||||
}
|
||||
}
|
||||
events {
|
||||
event_should_be_beta: void; [[ Event should be beta.]]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -191,6 +191,7 @@ using efl::eolian::grammar::attributes::klass_def;
|
|||
using efl::eolian::grammar::attributes::function_def;
|
||||
using efl::eolian::grammar::attributes::property_def;
|
||||
using efl::eolian::grammar::attributes::type_def;
|
||||
using efl::eolian::grammar::attributes::event_def;
|
||||
|
||||
// FIXME Unify this definition some so we can share it with documentation tests.
|
||||
static
|
||||
|
@ -318,6 +319,31 @@ EFL_START_TEST(eolian_cxx_test_beta)
|
|||
}
|
||||
EFL_END_TEST
|
||||
|
||||
EFL_START_TEST(eolian_cxx_test_beta_cascading)
|
||||
{
|
||||
efl::eolian::eolian_init eolian_init;
|
||||
efl::eolian::eolian_state eolian_state;
|
||||
|
||||
klass_def cls = init_test_data("beta_class.eo", "Beta_Class", eolian_state);
|
||||
|
||||
ck_assert(cls.is_beta);
|
||||
|
||||
auto func = std::find_if(cls.functions.begin(), cls.functions.end(), [](function_def const& f) {
|
||||
return f.name == "method_should_be_beta";
|
||||
});
|
||||
|
||||
ck_assert(func != cls.functions.end());
|
||||
ck_assert(func->is_beta);
|
||||
|
||||
auto evt = std::find_if(cls.events.begin(), cls.events.end(), [](event_def const& e) {
|
||||
return e.name == "event_should_be_beta";
|
||||
});
|
||||
|
||||
ck_assert(evt != cls.events.end());
|
||||
ck_assert(evt->is_beta);
|
||||
}
|
||||
EFL_END_TEST
|
||||
|
||||
void
|
||||
eolian_cxx_test_binding(TCase* tc)
|
||||
{
|
||||
|
@ -333,4 +359,5 @@ eolian_cxx_test_binding(TCase* tc)
|
|||
tcase_add_test(tc, eolian_cxx_test_cls_get);
|
||||
tcase_add_test(tc, eolian_cxx_test_constructors);
|
||||
tcase_add_test(tc, eolian_cxx_test_beta);
|
||||
tcase_add_test(tc, eolian_cxx_test_beta_cascading);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue