eolian: add implement validation (currently for docs)

This commit is contained in:
Daniel Kolesa 2017-01-19 14:56:23 +01:00
parent 95181f2d36
commit 5411dba596
1 changed files with 18 additions and 7 deletions

View File

@ -227,13 +227,6 @@ _validate_function(const Eolian_Function *func)
#undef EOLIAN_PARAMS_VALIDATE
/* TODO: validate docs via impls to also validate overrides */
if (!_validate_doc(func->impl->common_doc))
return EINA_FALSE;
if (!_validate_doc(func->impl->get_doc))
return EINA_FALSE;
if (!_validate_doc(func->impl->set_doc))
return EINA_FALSE;
if (!_validate_doc(func->get_return_doc))
return EINA_FALSE;
if (!_validate_doc(func->set_return_doc))
@ -254,12 +247,26 @@ _validate_event(const Eolian_Event *event)
return EINA_TRUE;
}
static Eina_Bool
_validate_implement(const Eolian_Implement *impl)
{
if (!_validate_doc(impl->common_doc))
return EINA_FALSE;
if (!_validate_doc(impl->get_doc))
return EINA_FALSE;
if (!_validate_doc(impl->set_doc))
return EINA_FALSE;
return EINA_TRUE;
}
static Eina_Bool
_validate_class(const Eolian_Class *cl)
{
Eina_List *l;
const Eolian_Function *func;
const Eolian_Event *event;
const Eolian_Implement *impl;
EINA_LIST_FOREACH(cl->properties, l, func)
if (!_validate_function(func))
@ -273,6 +280,10 @@ _validate_class(const Eolian_Class *cl)
if (!_validate_event(event))
return EINA_FALSE;
EINA_LIST_FOREACH(cl->implements, l, impl)
if (!_validate_implement(impl))
return EINA_FALSE;
if (!_validate_doc(cl->doc))
return EINA_FALSE;