From fa3e433f6ea86988f2324119f1869eeacaa7dca5 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Fri, 18 Jul 2014 17:29:25 +0100 Subject: [PATCH] eolian: disallow the data field in interfaces; it's always null --- src/lib/eolian/eo_parser.c | 5 +++++ src/lib/evas/canvas/evas_clickable_interface.eo | 1 - src/lib/evas/canvas/evas_common_interface.eo | 1 - src/lib/evas/canvas/evas_draggable_interface.eo | 1 - src/lib/evas/canvas/evas_scrollable_interface.eo | 1 - src/lib/evas/canvas/evas_selectable_interface.eo | 1 - src/lib/evas/canvas/evas_signal_interface.eo | 1 - src/lib/evas/canvas/evas_zoomable_interface.eo | 1 - 8 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 9ddcf25309..d5bdc0c7a8 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -939,6 +939,10 @@ parse_class_body(Eo_Lexer *ls, Eina_Bool allow_ctors, Eolian_Class_Type type) ls->tmp.kls->comment = eina_stringshare_ref(ls->t.value); eo_lexer_get(ls); } + if (type == EOLIAN_CLASS_INTERFACE) + { + ls->tmp.kls->data_type = eina_stringshare_add("null"); + } for (;;) switch (ls->t.kw) { case KW_legacy_prefix: @@ -960,6 +964,7 @@ parse_class_body(Eo_Lexer *ls, Eina_Bool allow_ctors, Eolian_Class_Type type) check_next(ls, ';'); break; case KW_data: + if (type == EOLIAN_CLASS_INTERFACE) return; CASE_LOCK(ls, data, "data definition") eo_lexer_get(ls); check_next(ls, ':'); diff --git a/src/lib/evas/canvas/evas_clickable_interface.eo b/src/lib/evas/canvas/evas_clickable_interface.eo index d3de7ee16f..47337b6f57 100644 --- a/src/lib/evas/canvas/evas_clickable_interface.eo +++ b/src/lib/evas/canvas/evas_clickable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Clickable_Interface (Evas.Signal_Interface) { - data: null; events { clicked; clicked,double; diff --git a/src/lib/evas/canvas/evas_common_interface.eo b/src/lib/evas/canvas/evas_common_interface.eo index 392f8ec3c2..390ef4cbc0 100644 --- a/src/lib/evas/canvas/evas_common_interface.eo +++ b/src/lib/evas/canvas/evas_common_interface.eo @@ -1,7 +1,6 @@ interface Evas.Common_Interface () { eo_prefix: evas_common; - data: null; properties { evas { get { diff --git a/src/lib/evas/canvas/evas_draggable_interface.eo b/src/lib/evas/canvas/evas_draggable_interface.eo index 628f32fcd6..5f1a8d06b1 100644 --- a/src/lib/evas/canvas/evas_draggable_interface.eo +++ b/src/lib/evas/canvas/evas_draggable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Draggable_Interface (Evas.Signal_Interface) { - data: null; events { drag; drag,start; diff --git a/src/lib/evas/canvas/evas_scrollable_interface.eo b/src/lib/evas/canvas/evas_scrollable_interface.eo index 370435cb06..8fd36d3967 100644 --- a/src/lib/evas/canvas/evas_scrollable_interface.eo +++ b/src/lib/evas/canvas/evas_scrollable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Scrollable_Interface (Evas.Signal_Interface) { - data: null; events { scroll; scroll,anim,start; diff --git a/src/lib/evas/canvas/evas_selectable_interface.eo b/src/lib/evas/canvas/evas_selectable_interface.eo index 4ee2685fad..44952ab5a0 100644 --- a/src/lib/evas/canvas/evas_selectable_interface.eo +++ b/src/lib/evas/canvas/evas_selectable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Selectable_Interface (Evas.Signal_Interface) { - data: null; events { selected; unselected; diff --git a/src/lib/evas/canvas/evas_signal_interface.eo b/src/lib/evas/canvas/evas_signal_interface.eo index 733e020fcb..1938c96996 100644 --- a/src/lib/evas/canvas/evas_signal_interface.eo +++ b/src/lib/evas/canvas/evas_signal_interface.eo @@ -1,6 +1,5 @@ interface Evas.Signal_Interface () { - data: null; implements { class.constructor; class.destructor; diff --git a/src/lib/evas/canvas/evas_zoomable_interface.eo b/src/lib/evas/canvas/evas_zoomable_interface.eo index ce39aba77d..43de299f1d 100644 --- a/src/lib/evas/canvas/evas_zoomable_interface.eo +++ b/src/lib/evas/canvas/evas_zoomable_interface.eo @@ -1,6 +1,5 @@ interface Evas.Zoomable_Interface (Evas.Signal_Interface) { - data: null; events { zoom,start; zoom,stop;