eolian: use consistent pure_virtual naming in API

Previously one API used just virtual (incorrect) and one used
virtual_pure (which just sounds weird). So unify with a single
name, pure_virtual, similar as in other lanugages.

This does not change eo file syntax yet.
This commit is contained in:
Daniel Kolesa 2017-01-13 15:40:29 +01:00
parent a70645e154
commit 692ae7adb6
11 changed files with 61 additions and 61 deletions

View File

@ -272,7 +272,7 @@ _gen_func(const Eolian_Class *cl, const Eolian_Function *fid,
Eina_Bool impl_same_class = (eolian_implement_class_get(impl) == cl);
Eina_Bool impl_need = EINA_TRUE;
if (impl_same_class && eolian_function_is_virtual_pure(fid, ftype))
if (impl_same_class && eolian_function_is_pure_virtual(fid, ftype))
impl_need = EINA_FALSE;
Eina_Stringshare *rtpn = rtp ? eolian_type_c_type_get(rtp)
@ -502,7 +502,7 @@ _gen_opfunc(const Eolian_Function *fid, Eolian_Function_Type ftype,
eina_strbuf_append(buf, " EFL_OBJECT_OP_FUNC(");
eina_strbuf_append(buf, fnm);
eina_strbuf_append(buf, ", ");
if (!ocnamel && eolian_function_is_virtual_pure(fid, ftype))
if (!ocnamel && eolian_function_is_pure_virtual(fid, ftype))
eina_strbuf_append(buf, "NULL),\n");
else
{
@ -840,7 +840,7 @@ _gen_proto(const Eolian_Class *cl, const Eolian_Function *fid,
const char *cnamel)
{
Eina_Bool impl_same_class = (eolian_implement_class_get(impl) == cl);
if (impl_same_class && eolian_function_is_virtual_pure(fid, ftype))
if (impl_same_class && eolian_function_is_pure_virtual(fid, ftype))
return;
char *ocnamel = NULL;

View File

@ -250,7 +250,7 @@ ffi.cdef [[
const Eolian_Function *eolian_class_function_get_by_name(const Eolian_Class *klass, const char *func_name, Eolian_Function_Type f_type);
const char *eolian_function_legacy_get(const Eolian_Function *function_id, Eolian_Function_Type f_type);
const Eolian_Documentation *eolian_function_documentation_get(const Eolian_Function *function_id, Eolian_Function_Type f_type);
Eina_Bool eolian_function_is_virtual_pure(const Eolian_Function *function_id, Eolian_Function_Type f_type);
Eina_Bool eolian_function_is_pure_virtual(const Eolian_Function *function_id, Eolian_Function_Type f_type);
Eina_Bool eolian_function_is_auto(const Eolian_Function *function_id, Eolian_Function_Type f_type);
Eina_Bool eolian_function_is_empty(const Eolian_Function *function_id, Eolian_Function_Type f_type);
Eina_Bool eolian_function_is_legacy_only(const Eolian_Function *function_id, Eolian_Function_Type ftype);
@ -277,7 +277,7 @@ ffi.cdef [[
const Eolian_Function *eolian_implement_function_get(const Eolian_Implement *impl, Eolian_Function_Type *func_type);
Eina_Bool eolian_implement_is_auto(const Eolian_Implement *impl, Eolian_Function_Type ftype);
Eina_Bool eolian_implement_is_empty(const Eolian_Implement *impl, Eolian_Function_Type ftype);
Eina_Bool eolian_implement_is_virtual(const Eolian_Implement *impl, Eolian_Function_Type ftype);
Eina_Bool eolian_implement_is_pure_virtual(const Eolian_Implement *impl, Eolian_Function_Type ftype);
Eina_Bool eolian_implement_is_prop_get(const Eolian_Implement *impl);
Eina_Bool eolian_implement_is_prop_set(const Eolian_Implement *impl);
Eina_Iterator *eolian_class_implements_get(const Eolian_Class *klass);
@ -783,8 +783,8 @@ M.Function = ffi.metatype("Eolian_Function", {
return v
end,
is_virtual_pure = function(self, ftype)
return eolian.eolian_function_is_virtual_pure(self, ftype) ~= 0
is_pure_virtual = function(self, ftype)
return eolian.eolian_function_is_pure_virtual(self, ftype) ~= 0
end,
is_auto = function(self, ftype)
@ -931,8 +931,8 @@ ffi.metatype("Eolian_Implement", {
return eolian.eolian_implement_is_empty(self, ftype) ~= 0
end,
is_virtual = function(self, ftype)
return eolian.eolian_implement_is_virtual(self, ftype) ~= 0
is_pure_virtual = function(self, ftype)
return eolian.eolian_implement_is_pure_virtual(self, ftype) ~= 0
end,
is_prop_get = function(self)

View File

@ -761,17 +761,17 @@ EAPI Eina_Stringshare *eolian_function_legacy_get(const Eolian_Function *functio
EAPI const Eolian_Documentation *eolian_function_documentation_get(const Eolian_Function *function_id, Eolian_Function_Type f_type);
/*
* @brief Indicates if a function is virtual pure.
* @brief Indicates if a function is pure virtual.
*
* @param[in] function_id Id of the function
* @param[in] f_type The function type, for property get/set distinction.
* @return EINA_TRUE if virtual pure, EINA_FALSE othrewise.
* @return EINA_TRUE if pure virtual, EINA_FALSE othrewise.
*
* Acceptable input types are METHOD, PROP_GET and PROP_SET.
*
* @ingroup Eolian
*/
EAPI Eina_Bool eolian_function_is_virtual_pure(const Eolian_Function *function_id, Eolian_Function_Type f_type);
EAPI Eina_Bool eolian_function_is_pure_virtual(const Eolian_Function *function_id, Eolian_Function_Type f_type);
/*
* @brief Indicates if a function is auto.
@ -1113,7 +1113,7 @@ EAPI Eina_Bool eolian_implement_is_auto(const Eolian_Implement *impl, Eolian_Fun
EAPI Eina_Bool eolian_implement_is_empty(const Eolian_Implement *impl, Eolian_Function_Type f_type);
/*
* @brief Get whether an implement is tagged with @virtual.
* @brief Get whether an implement is pure virtual.
*
* @param[in] impl the handle of the implement
* @param[in] f_type The function type, for property get/set distinction.
@ -1123,7 +1123,7 @@ EAPI Eina_Bool eolian_implement_is_empty(const Eolian_Implement *impl, Eolian_Fu
*
* @ingroup Eolian
*/
EAPI Eina_Bool eolian_implement_is_virtual(const Eolian_Implement *impl, Eolian_Function_Type f_type);
EAPI Eina_Bool eolian_implement_is_pure_virtual(const Eolian_Implement *impl, Eolian_Function_Type f_type);
/*
* @brief Get whether an implement references a property getter.
@ -1152,7 +1152,7 @@ EAPI Eina_Bool eolian_implement_is_prop_set(const Eolian_Implement *impl);
* @return the iterator
*
* Implements include fields specified in the "implements" section of your Eo
* file (i.e. overriding and virtual/auto/empty functions) and all other
* file (i.e. overriding and pure virtual/auto/empty functions) and all other
* methods/properties of your class (local only) that are not specified
* within that section.
*

View File

@ -185,9 +185,9 @@ _db_build_implement(Eolian_Class *cl, Eolian_Function *foo_id)
if (foo_id->type == EOLIAN_PROPERTY)
{
if (foo_id->get_virtual_pure && !foo_id->get_impl)
if (foo_id->get_pure_virtual && !foo_id->get_impl)
{
impl->get_virtual = EINA_TRUE;
impl->get_pure_virtual = EINA_TRUE;
impl->is_prop_get = EINA_TRUE;
foo_id->get_impl = impl;
cl->implements = eina_list_append(cl->implements, impl);
@ -195,9 +195,9 @@ _db_build_implement(Eolian_Class *cl, Eolian_Function *foo_id)
_db_build_implement(cl, foo_id);
return;
}
else if (foo_id->set_virtual_pure && !foo_id->set_impl)
else if (foo_id->set_pure_virtual && !foo_id->set_impl)
{
impl->set_virtual = EINA_TRUE;
impl->set_pure_virtual = EINA_TRUE;
impl->is_prop_set = EINA_TRUE;
foo_id->set_impl = impl;
cl->implements = eina_list_append(cl->implements, impl);
@ -208,7 +208,7 @@ _db_build_implement(Eolian_Class *cl, Eolian_Function *foo_id)
if (foo_id->get_impl)
{
impl->is_prop_set = EINA_TRUE;
impl->set_virtual = foo_id->set_virtual_pure;
impl->set_pure_virtual = foo_id->set_pure_virtual;
foo_id->set_impl = impl;
}
else if (foo_id->set_impl)
@ -222,18 +222,18 @@ _db_build_implement(Eolian_Class *cl, Eolian_Function *foo_id)
else if (foo_id->type == EOLIAN_PROP_SET)
{
impl->is_prop_set = EINA_TRUE;
impl->get_virtual = foo_id->get_virtual_pure;
impl->get_pure_virtual = foo_id->get_pure_virtual;
foo_id->set_impl = impl;
}
else if (foo_id->type == EOLIAN_PROP_GET)
{
impl->is_prop_get = EINA_TRUE;
impl->get_virtual = foo_id->set_virtual_pure;
impl->get_pure_virtual = foo_id->set_pure_virtual;
foo_id->get_impl = impl;
}
else
{
impl->get_virtual = foo_id->get_virtual_pure;
impl->get_pure_virtual = foo_id->get_pure_virtual;
foo_id->get_impl = foo_id->set_impl = impl;
}

View File

@ -197,7 +197,7 @@ eolian_function_documentation_get(const Eolian_Function *fid, Eolian_Function_Ty
}
EAPI Eina_Bool
eolian_function_is_virtual_pure(const Eolian_Function *fid, Eolian_Function_Type ftype)
eolian_function_is_pure_virtual(const Eolian_Function *fid, Eolian_Function_Type ftype)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_UNRESOLVED, EINA_FALSE);
@ -207,15 +207,15 @@ eolian_function_is_virtual_pure(const Eolian_Function *fid, Eolian_Function_Type
case EOLIAN_METHOD:
if (fid->type != EOLIAN_METHOD)
return EINA_FALSE;
return fid->get_virtual_pure;
return fid->get_pure_virtual;
case EOLIAN_PROP_GET:
if ((fid->type != EOLIAN_PROP_GET) && (fid->type != EOLIAN_PROPERTY))
return EINA_FALSE;
return fid->get_virtual_pure;
return fid->get_pure_virtual;
case EOLIAN_PROP_SET:
if ((fid->type != EOLIAN_PROP_SET) && (fid->type != EOLIAN_PROPERTY))
return EINA_FALSE;
return fid->set_virtual_pure;
return fid->set_pure_virtual;
default:
return EINA_FALSE;
}

View File

@ -82,7 +82,7 @@ eolian_implement_is_empty(const Eolian_Implement *impl, Eolian_Function_Type fty
}
EAPI Eina_Bool
eolian_implement_is_virtual(const Eolian_Implement *impl, Eolian_Function_Type ftype)
eolian_implement_is_pure_virtual(const Eolian_Implement *impl, Eolian_Function_Type ftype)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(impl, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_UNRESOLVED, EINA_FALSE);
@ -90,11 +90,11 @@ eolian_implement_is_virtual(const Eolian_Implement *impl, Eolian_Function_Type f
switch (ftype)
{
case EOLIAN_METHOD:
return impl->get_virtual && !impl->is_prop_get && !impl->is_prop_set;
return impl->get_pure_virtual && !impl->is_prop_get && !impl->is_prop_set;
case EOLIAN_PROP_GET:
return impl->get_virtual && impl->is_prop_get;
return impl->get_pure_virtual && impl->is_prop_get;
case EOLIAN_PROP_SET:
return impl->set_virtual && impl->is_prop_set;
return impl->set_pure_virtual && impl->is_prop_set;
default:
return EINA_FALSE;
}

View File

@ -1166,7 +1166,7 @@ parse_accessor(Eo_Lexer *ls, Eolian_Function *prop)
Eina_Bool has_return = EINA_FALSE, has_legacy = EINA_FALSE,
has_eo = EINA_FALSE, has_keys = EINA_FALSE,
has_values = EINA_FALSE, has_protected = EINA_FALSE,
has_virtual_pure = EINA_FALSE;
has_virtp = EINA_FALSE;
Eina_Bool is_get = (ls->t.kw == KW_get);
if (is_get)
{
@ -1190,9 +1190,9 @@ parse_accessor(Eo_Lexer *ls, Eolian_Function *prop)
for (;;) switch (ls->t.kw)
{
case KW_at_virtual_pure:
CASE_LOCK(ls, virtual_pure, "virtual_pure qualifier");
if (is_get) prop->get_virtual_pure = EINA_TRUE;
else prop->set_virtual_pure = EINA_TRUE;
CASE_LOCK(ls, virtp, "virtual_pure qualifier");
if (is_get) prop->get_pure_virtual = EINA_TRUE;
else prop->set_pure_virtual = EINA_TRUE;
eo_lexer_get(ls);
break;
case KW_at_protected:
@ -1291,17 +1291,17 @@ end:
}
static void
_func_virtual_set(Eo_Lexer *ls, Eolian_Function *foo_id, Eina_Bool virt)
_func_pure_virtual_set(Eo_Lexer *ls, Eolian_Function *foo_id, Eina_Bool virt)
{
if (ls->tmp.kls->type != EOLIAN_CLASS_INTERFACE && !virt)
return;
if (foo_id->type == EOLIAN_PROP_GET || foo_id->type == EOLIAN_METHOD)
foo_id->get_virtual_pure = EINA_TRUE;
foo_id->get_pure_virtual = EINA_TRUE;
else if (foo_id->type == EOLIAN_PROP_SET)
foo_id->set_virtual_pure = EINA_TRUE;
foo_id->set_pure_virtual = EINA_TRUE;
else if (foo_id->type == EOLIAN_PROPERTY)
foo_id->get_virtual_pure = foo_id->set_virtual_pure = EINA_TRUE;
foo_id->get_pure_virtual = foo_id->set_pure_virtual = EINA_TRUE;
}
static void
@ -1387,7 +1387,7 @@ end:
check_match(ls, '}', '{', line, col);
if (!has_get && !has_set)
prop->type = EOLIAN_PROPERTY;
_func_virtual_set(ls, prop, has_virtp);
_func_pure_virtual_set(ls, prop, has_virtp);
}
static void
@ -1487,7 +1487,7 @@ body:
}
end:
check_match(ls, '}', '{', line, col);
_func_virtual_set(ls, meth, has_virtp);
_func_pure_virtual_set(ls, meth, has_virtp);
}
static void

View File

@ -133,8 +133,8 @@ struct _Eolian_Function
Eolian_Documentation *get_return_doc;
Eolian_Documentation *set_return_doc;
Eina_Bool obj_is_const :1; /* True if the object has to be const. Useful for a few methods. */
Eina_Bool get_virtual_pure :1;
Eina_Bool set_virtual_pure :1;
Eina_Bool get_pure_virtual :1;
Eina_Bool set_pure_virtual :1;
Eina_Bool get_auto :1;
Eina_Bool set_auto :1;
Eina_Bool get_empty :1;
@ -203,8 +203,8 @@ struct _Eolian_Implement
Eina_Stringshare *full_name;
Eina_Bool is_prop_get :1;
Eina_Bool is_prop_set :1;
Eina_Bool get_virtual :1;
Eina_Bool set_virtual :1;
Eina_Bool get_pure_virtual :1;
Eina_Bool set_pure_virtual :1;
Eina_Bool get_auto: 1;
Eina_Bool set_auto: 1;
Eina_Bool get_empty: 1;

View File

@ -321,8 +321,8 @@ M.Function = Node:clone {
return nil
end,
is_virtual_pure = function(self, ft)
return self.func:is_virtual_pure(ft)
is_pure_virtual = function(self, ft)
return self.func:is_pure_virtual(ft)
end,
is_auto = function(self, ft)

View File

@ -175,7 +175,7 @@ end
local gen_method_sig = function(fn, cl)
local buf = {}
gen_func_namesig(fn, cl, buf, false, false, false)
if fn:is_virtual_pure(fn.METHOD) then
if fn:is_pure_virtual(fn.METHOD) then
buf[#buf + 1] = "@virtual_pure "
end
buf[#buf + 1] = "{"
@ -229,8 +229,8 @@ local gen_prop_sig = function(fn, cl)
local isset = (fnt == fn.PROPERTY or fnt == fn.PROP_SET)
gen_func_namesig(fn, cl, buf, true, isget, isset)
local gvirt = fn:is_virtual_pure(fn.PROP_GET)
local svirt = fn:is_virtual_pure(fn.PROP_SET)
local gvirt = fn:is_pure_virtual(fn.PROP_GET)
local svirt = fn:is_pure_virtual(fn.PROP_SET)
if (not isget or gvirt) and (not isset or svirt) then
buf[#buf + 1] = "@virtual_pure "

View File

@ -89,7 +89,7 @@ START_TEST(eolian_namespaces)
/* Virtual regression */
fail_if(!(fid = eolian_class_function_get_by_name(class112, "a", EOLIAN_UNRESOLVED)));
fail_if(!eolian_function_is_virtual_pure(fid, EOLIAN_PROP_SET));
fail_if(!eolian_function_is_pure_virtual(fid, EOLIAN_PROP_SET));
eolian_shutdown();
}
@ -187,16 +187,16 @@ START_TEST(eolian_override)
/* Base ctor */
fail_if(!(fid = eolian_class_function_get_by_name(base, "constructor", EOLIAN_METHOD)));
fail_if(!eolian_function_is_virtual_pure(fid, EOLIAN_METHOD));
fail_if(!eolian_function_is_pure_virtual(fid, EOLIAN_METHOD));
/* Property */
fail_if(!(fid = eolian_class_function_get_by_name(class, "a", EOLIAN_PROPERTY)));
fail_if(!eolian_function_is_virtual_pure(fid, EOLIAN_PROP_SET));
fail_if(eolian_function_is_virtual_pure(fid, EOLIAN_PROP_GET));
fail_if(!eolian_function_is_pure_virtual(fid, EOLIAN_PROP_SET));
fail_if(eolian_function_is_pure_virtual(fid, EOLIAN_PROP_GET));
/* Method */
fail_if(!(fid = eolian_class_function_get_by_name(class, "foo", EOLIAN_METHOD)));
fail_if(!eolian_function_is_virtual_pure(fid, EOLIAN_METHOD));
fail_if(!eolian_function_is_pure_virtual(fid, EOLIAN_METHOD));
/* Implements */
fail_if(!(iter = eolian_class_implements_get(class)));
@ -204,7 +204,7 @@ START_TEST(eolian_override)
fail_if(!(eina_iterator_next(iter, (void**)&impl)));
fail_if(eolian_implement_is_auto(impl, EOLIAN_METHOD));
fail_if(eolian_implement_is_empty(impl, EOLIAN_METHOD));
fail_if(eolian_implement_is_virtual(impl, EOLIAN_METHOD));
fail_if(eolian_implement_is_pure_virtual(impl, EOLIAN_METHOD));
fail_if(!(impl_class = eolian_implement_class_get(impl)));
fail_if(!(impl_func = eolian_implement_function_get(impl, NULL)));
fail_if(impl_class != base);
@ -213,7 +213,7 @@ START_TEST(eolian_override)
fail_if(!(eina_iterator_next(iter, (void**)&impl)));
fail_if(!eolian_implement_is_auto(impl, EOLIAN_PROP_SET));
fail_if(eolian_implement_is_empty(impl, EOLIAN_PROP_SET));
fail_if(eolian_implement_is_virtual(impl, EOLIAN_PROP_SET));
fail_if(eolian_implement_is_pure_virtual(impl, EOLIAN_PROP_SET));
fail_if(!(impl_class = eolian_implement_class_get(impl)));
fail_if(!(impl_func = eolian_implement_function_get(impl, NULL)));
fail_if(impl_class != class);
@ -222,20 +222,20 @@ START_TEST(eolian_override)
fail_if(eolian_function_is_auto(impl_func, EOLIAN_PROP_GET));
fail_if(eolian_function_is_empty(impl_func, EOLIAN_PROP_SET));
fail_if(eolian_function_is_empty(impl_func, EOLIAN_PROP_GET));
fail_if(eolian_function_is_virtual_pure(impl_func, EOLIAN_PROP_SET));
fail_if(eolian_function_is_virtual_pure(impl_func, EOLIAN_PROP_GET));
fail_if(eolian_function_is_pure_virtual(impl_func, EOLIAN_PROP_SET));
fail_if(eolian_function_is_pure_virtual(impl_func, EOLIAN_PROP_GET));
fail_if(!(eina_iterator_next(iter, (void**)&impl)));
fail_if(eolian_implement_is_auto(impl, EOLIAN_METHOD));
fail_if(!eolian_implement_is_empty(impl, EOLIAN_METHOD));
fail_if(eolian_implement_is_virtual(impl, EOLIAN_METHOD));
fail_if(eolian_implement_is_pure_virtual(impl, EOLIAN_METHOD));
fail_if(!(impl_class = eolian_implement_class_get(impl)));
fail_if(!(impl_func = eolian_implement_function_get(impl, NULL)));
fail_if(impl_class != class);
fail_if(strcmp(eolian_function_name_get(impl_func), "bar"));
fail_if(eolian_function_is_auto(impl_func, EOLIAN_METHOD));
fail_if(!eolian_function_is_empty(impl_func, EOLIAN_METHOD));
fail_if(eolian_function_is_virtual_pure(impl_func, EOLIAN_METHOD));
fail_if(eolian_function_is_pure_virtual(impl_func, EOLIAN_METHOD));
eina_iterator_free(iter);