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>{})
|
} : eina::optional<type_def>{})
|
||||||
, name( ::eolian_event_name_get(event))
|
, name( ::eolian_event_name_get(event))
|
||||||
, c_name( ::eolian_event_c_macro_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)
|
, is_protected( ::eolian_event_scope_get(event) == EOLIAN_SCOPE_PROTECTED)
|
||||||
, documentation( ::eolian_event_documentation_get(event)) {}
|
, documentation( ::eolian_event_documentation_get(event)) {}
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
class @beta Beta_Class extends Efl.Object
|
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::function_def;
|
||||||
using efl::eolian::grammar::attributes::property_def;
|
using efl::eolian::grammar::attributes::property_def;
|
||||||
using efl::eolian::grammar::attributes::type_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.
|
// FIXME Unify this definition some so we can share it with documentation tests.
|
||||||
static
|
static
|
||||||
|
@ -318,6 +319,31 @@ EFL_START_TEST(eolian_cxx_test_beta)
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
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
|
void
|
||||||
eolian_cxx_test_binding(TCase* tc)
|
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_cls_get);
|
||||||
tcase_add_test(tc, eolian_cxx_test_constructors);
|
tcase_add_test(tc, eolian_cxx_test_constructors);
|
||||||
tcase_add_test(tc, eolian_cxx_test_beta);
|
tcase_add_test(tc, eolian_cxx_test_beta);
|
||||||
|
tcase_add_test(tc, eolian_cxx_test_beta_cascading);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue