q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fa3e433f6ea86988f2324119f1869eeacaa7dca5

commit fa3e433f6ea86988f2324119f1869eeacaa7dca5
Author: Daniel Kolesa <d.kol...@samsung.com>
Date:   Fri Jul 18 17:29:25 2014 +0100

    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 9ddcf25..d5bdc0c 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 d3de7ee..47337b6 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 392f8ec..390ef4c 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 628f32f..5f1a8d0 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 370435c..8fd36d3 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 4ee2685..44952ab 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 733e020..1938c96 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 ce39aba..43de299 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;

-- 


Reply via email to