summaryrefslogtreecommitdiff
path: root/src/lib/eolian/eolian_database.h
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2018-11-22 16:21:52 +0100
committerDaniel Kolesa <d.kolesa@samsung.com>2018-11-23 13:57:07 +0100
commit14ce54c30321e3b78b979872427b07d9420d5c66 (patch)
treef5947b26e04a7a162434d9ca250b0cb145bfab03 /src/lib/eolian/eolian_database.h
parentf3eb8d6441af396e61842cb83b9ac7b3af34f527 (diff)
eolian: implement new inherit behavior
Eolian now separates 'parent' and 'extensions'. For regular classes, parent is the first item in the inherits list and extesions is the rest. For interfaces and mixins, parent is NULL and extends is the inherits list. The reason for this is the separation of them in syntax in near future. It also slightly changes the behavior; since for interfaces and mixins, parent is always NULL now, you can freely inherit from all types of classes without needing to manually put an interface type as the first item of the inherits list.
Diffstat (limited to 'src/lib/eolian/eolian_database.h')
-rw-r--r--src/lib/eolian/eolian_database.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index b0684f0..9804449 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -180,7 +180,11 @@ struct _Eolian_Class
180 Eina_Stringshare *eo_prefix; 180 Eina_Stringshare *eo_prefix;
181 Eina_Stringshare *ev_prefix; 181 Eina_Stringshare *ev_prefix;
182 Eina_Stringshare *data_type; 182 Eina_Stringshare *data_type;
183 Eina_List *inherits; /* Eolian_Class */ 183 union {
184 Eolian_Class *parent;
185 Eina_Stringshare *parent_name;
186 };
187 Eina_List *extends; /* Eolian_Class */
184 Eina_List *properties; /* Eolian_Function */ 188 Eina_List *properties; /* Eolian_Function */
185 Eina_List *methods; /* Eolian_Function */ 189 Eina_List *methods; /* Eolian_Function */
186 Eina_List *implements; /* Eolian_Implement */ 190 Eina_List *implements; /* Eolian_Implement */