eolian: enforce no get/set as method/property name rule

Fixes T3849.
This commit is contained in:
Daniel Kolesa 2016-08-23 13:43:46 +01:00
parent df74455ec9
commit 1c78d2196b
3 changed files with 12 additions and 2 deletions

View File

@ -216,7 +216,7 @@ _efl_vpath_core_efl_object_destructor(Eo *obj, Efl_Vpath_Core_Data *pd)
} }
EOLIAN static Efl_Vpath_Core * EOLIAN static Efl_Vpath_Core *
_efl_vpath_core_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED) _efl_vpath_core_core_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED)
{ {
// no locks here as we expect efl to init this early in main "thread" // no locks here as we expect efl to init this early in main "thread"
if (!vpath_core) vpath_core = efl_add(EFL_VPATH_CORE_CLASS, NULL); if (!vpath_core) vpath_core = efl_add(EFL_VPATH_CORE_CLASS, NULL);

View File

@ -6,7 +6,7 @@ class Efl.Vpath.Core (Efl.Object, Efl.Vpath)
]] ]]
eo_prefix: efl_vpath_core; eo_prefix: efl_vpath_core;
methods { methods {
get @class { core_get @class {
[[ This gets the global EFL Core Vpath class - only 1 - singleton ]] [[ This gets the global EFL Core Vpath class - only 1 - singleton ]]
return: Efl.Vpath.Core; [[ Get the singleton core vpath ]] return: Efl.Vpath.Core; [[ Get the singleton core vpath ]]
} }

View File

@ -1351,6 +1351,11 @@ parse_property(Eo_Lexer *ls)
FILL_BASE(prop->base, ls, ls->line_number, ls->column); FILL_BASE(prop->base, ls, ls->line_number, ls->column);
ls->tmp.kls->properties = eina_list_append(ls->tmp.kls->properties, prop); ls->tmp.kls->properties = eina_list_append(ls->tmp.kls->properties, prop);
check(ls, TOK_VALUE); check(ls, TOK_VALUE);
if (ls->t.kw == KW_get || ls->t.kw == KW_set)
{
eo_lexer_syntax_error(ls, "reserved keyword as property name");
return;
}
prop->name = eina_stringshare_ref(ls->t.value.s); prop->name = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
for (;;) switch (ls->t.kw) for (;;) switch (ls->t.kw)
@ -1431,6 +1436,11 @@ parse_method(Eo_Lexer *ls)
FILL_BASE(meth->base, ls, ls->line_number, ls->column); FILL_BASE(meth->base, ls, ls->line_number, ls->column);
ls->tmp.kls->methods = eina_list_append(ls->tmp.kls->methods, meth); ls->tmp.kls->methods = eina_list_append(ls->tmp.kls->methods, meth);
check(ls, TOK_VALUE); check(ls, TOK_VALUE);
if (ls->t.kw == KW_get || ls->t.kw == KW_set)
{
eo_lexer_syntax_error(ls, "reserved keyword as method name");
return;
}
meth->name = eina_stringshare_ref(ls->t.value.s); meth->name = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
for (;;) switch (ls->t.kw) for (;;) switch (ls->t.kw)