eolian: disallow duplicate implements

This commit is contained in:
Daniel Kolesa 2017-01-02 16:09:04 +01:00
parent 3dc9d28279
commit 45e6a3e86a
4 changed files with 19 additions and 12 deletions

View File

@ -416,11 +416,10 @@ class Efl.Ui.Text (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Elm.Widget.focus_next_manager_is;
Elm.Layout.theme_enable;
Elm.Layout.sizing_eval;
Elm.Layout.text { get; }
Elm.Layout.text { get; set; }
Elm.Layout.signal_callback_add;
Elm.Layout.signal_callback_del;
Elm.Layout.signal_emit;
Elm.Layout.text { set; }
Elm.Layout.content_aliases { get; }
Elm.Interface_Scrollable.policy { set; }
Elm.Interface_Scrollable.bounce_allow { set; }
@ -438,11 +437,10 @@ class Efl.Ui.Text (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Elm.Interface.Atspi.Text.offset_at_point { get; }
Elm.Interface.Atspi.Text.bounded_ranges { get; }
Elm.Interface.Atspi.Text.range_extents { get; }
Elm.Interface.Atspi.Text.selection { get; }
Elm.Interface.Atspi.Text.selection { get; set; }
Elm.Interface.Atspi.Text.selections_count { get; }
Elm.Interface.Atspi.Text.selection_add;
Elm.Interface.Atspi.Text.selection_remove;
Elm.Interface.Atspi.Text.selection { set; }
Elm.Interface.Atspi.Text.Editable.content { set; }
Elm.Interface.Atspi.Text.Editable.insert;
Elm.Interface.Atspi.Text.Editable.copy;

View File

@ -963,8 +963,7 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Elm.Interface.Atspi.Window,
Efl.Canvas.object_top_at_xy_get;
Efl.Canvas.objects_in_rectangle_get;
Efl.Canvas.object_top_in_rectangle_get;
Efl.Container.content { set; }
Efl.Container.content { get; }
Efl.Container.content { get; set; }
Efl.Container.content_unset;
Efl.Part.part;
}

View File

@ -957,11 +957,10 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Elm.Widget.focus_next_manager_is;
Elm.Layout.theme_enable;
Elm.Layout.sizing_eval;
Elm.Layout.text { get; }
Elm.Layout.text { get; set; }
Elm.Layout.signal_callback_add;
Elm.Layout.signal_callback_del;
Elm.Layout.signal_emit;
Elm.Layout.text { set; }
Elm.Layout.content_aliases { get; }
Elm.Interface_Scrollable.policy { set; }
Elm.Interface_Scrollable.bounce_allow { set; }
@ -979,11 +978,10 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Elm.Interface.Atspi.Text.offset_at_point { get; }
Elm.Interface.Atspi.Text.bounded_ranges { get; }
Elm.Interface.Atspi.Text.range_extents { get; }
Elm.Interface.Atspi.Text.selection { get; }
Elm.Interface.Atspi.Text.selection { get; set; }
Elm.Interface.Atspi.Text.selections_count { get; }
Elm.Interface.Atspi.Text.selection_add;
Elm.Interface.Atspi.Text.selection_remove;
Elm.Interface.Atspi.Text.selection { set; }
Elm.Interface.Atspi.Text.Editable.content { set; }
Elm.Interface.Atspi.Text.Editable.insert;
Elm.Interface.Atspi.Text.Editable.copy;

View File

@ -190,9 +190,21 @@ _db_fill_implements(Eolian_Class *cl)
Eolian_Function *foo_id;
Eina_List *l;
Eina_Hash *th = eina_hash_string_small_new(NULL);
EINA_LIST_FOREACH(cl->implements, l, impl)
if (!_db_fill_implement(cl, impl))
return EINA_FALSE;
{
if (eina_hash_find(th, impl->full_name))
{
fprintf(stderr, "eolian:%s:%d:%d: duplicate implement '%s'\n",
impl->base.file, impl->base.line, impl->base.column,
impl->full_name);
return EINA_FALSE;
}
if (!_db_fill_implement(cl, impl))
return EINA_FALSE;
eina_hash_add(th, impl->full_name, impl->full_name);
}
eina_hash_free(th);
EINA_LIST_FOREACH(cl->properties, l, foo_id)
_db_build_implement(cl, foo_id);