summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile_Eolian.am1
-rw-r--r--src/bindings/luajit/eolian.lua5
-rw-r--r--src/lib/ecore_con/efl_net_control_manager.eo10
-rw-r--r--src/lib/ecore_con/efl_net_dialer.eo2
-rw-r--r--src/lib/ecore_con/efl_net_socket_ssl.eo2
-rw-r--r--src/lib/ecore_con/efl_net_ssl_context.eo2
-rw-r--r--src/lib/efl/interfaces/efl_canvas_scene.eo2
-rw-r--r--src/lib/efl/interfaces/efl_gfx_buffer.eo4
-rw-r--r--src/lib/efl/interfaces/efl_ui_format.eo4
-rw-r--r--src/lib/elementary/efl_ui_clock.eo2
-rw-r--r--src/lib/elementary/efl_ui_internal_text_scroller.eo4
-rw-r--r--src/lib/elementary/efl_ui_pager.eo4
-rw-r--r--src/lib/elementary/efl_ui_radio.eo2
-rw-r--r--src/lib/elementary/efl_ui_scroll_manager.eo2
-rw-r--r--src/lib/elementary/efl_ui_text.eo2
-rw-r--r--src/lib/elementary/efl_ui_widget.eo10
-rw-r--r--src/lib/elementary/efl_ui_win.eo8
-rw-r--r--src/lib/elementary/elm_interface_scrollable.eo48
-rw-r--r--src/lib/eo/efl_object.eo6
-rw-r--r--src/lib/eolian/Eolian.h10
-rw-r--r--src/lib/eolian/database_function_parameter_api.c7
-rw-r--r--src/lib/eolian/eo_lexer.h5
-rw-r--r--src/lib/eolian/eo_parser.c11
-rw-r--r--src/lib/eolian/eolian_database.h1
-rw-r--r--src/scripts/pyolian/eolian.py6
-rw-r--r--src/scripts/pyolian/eolian_lib.py4
-rwxr-xr-xsrc/scripts/pyolian/test_eolian.py1
-rw-r--r--src/tests/eolian/data/null.eo12
-rw-r--r--src/tests/eolian/eolian_parsing.c51
29 files changed, 63 insertions, 165 deletions
diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am
index 876a2f0..0336b7f 100644
--- a/src/Makefile_Eolian.am
+++ b/src/Makefile_Eolian.am
@@ -92,7 +92,6 @@ tests/eolian/data/nmsp1_class1.eo \
92tests/eolian/data/nmsp1_nmsp11_class2.eo \ 92tests/eolian/data/nmsp1_nmsp11_class2.eo \
93tests/eolian/data/nmsp2_class1.eo \ 93tests/eolian/data/nmsp2_class1.eo \
94tests/eolian/data/no_nmsp.eo \ 94tests/eolian/data/no_nmsp.eo \
95tests/eolian/data/null.eo \
96tests/eolian/data/object_impl.eo \ 95tests/eolian/data/object_impl.eo \
97tests/eolian/data/object_impl_add.eo \ 96tests/eolian/data/object_impl_add.eo \
98tests/eolian/data/override.eo \ 97tests/eolian/data/override.eo \
diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua
index 20118af..34da82c 100644
--- a/src/bindings/luajit/eolian.lua
+++ b/src/bindings/luajit/eolian.lua
@@ -370,7 +370,6 @@ ffi.cdef [[
370 const Eolian_Expression *eolian_parameter_default_value_get(const Eolian_Function_Parameter *param); 370 const Eolian_Expression *eolian_parameter_default_value_get(const Eolian_Function_Parameter *param);
371 const Eolian_Documentation *eolian_parameter_documentation_get(const Eolian_Function_Parameter *param); 371 const Eolian_Documentation *eolian_parameter_documentation_get(const Eolian_Function_Parameter *param);
372 Eina_Bool eolian_parameter_is_nonull(const Eolian_Function_Parameter *param_desc); 372 Eina_Bool eolian_parameter_is_nonull(const Eolian_Function_Parameter *param_desc);
373 Eina_Bool eolian_parameter_is_nullable(const Eolian_Function_Parameter *param_desc);
374 Eina_Bool eolian_parameter_is_optional(const Eolian_Function_Parameter *param_desc); 373 Eina_Bool eolian_parameter_is_optional(const Eolian_Function_Parameter *param_desc);
375 const Eolian_Type *eolian_function_return_type_get(const Eolian_Function *function_id, Eolian_Function_Type ftype); 374 const Eolian_Type *eolian_function_return_type_get(const Eolian_Function *function_id, Eolian_Function_Type ftype);
376 const Eolian_Expression *eolian_function_return_default_value_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype); 375 const Eolian_Expression *eolian_function_return_default_value_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
@@ -1268,10 +1267,6 @@ ffi.metatype("Eolian_Function_Parameter", {
1268 return eolian.eolian_parameter_is_nonull(self) ~= 0 1267 return eolian.eolian_parameter_is_nonull(self) ~= 0
1269 end, 1268 end,
1270 1269
1271 is_nullable = function(self)
1272 return eolian.eolian_parameter_is_nullable(self) ~= 0
1273 end,
1274
1275 is_optional = function(self) 1270 is_optional = function(self)
1276 return eolian.eolian_parameter_is_optional(self) ~= 0 1271 return eolian.eolian_parameter_is_optional(self) ~= 0
1277 end 1272 end
diff --git a/src/lib/ecore_con/efl_net_control_manager.eo b/src/lib/ecore_con/efl_net_control_manager.eo
index cfb729b..fb2fabf 100644
--- a/src/lib/ecore_con/efl_net_control_manager.eo
+++ b/src/lib/ecore_con/efl_net_control_manager.eo
@@ -193,11 +193,11 @@ class @beta Efl.Net.Control.Manager extends Efl.Loop_Consumer {
193 agent_reply { 193 agent_reply {
194 [[If event "agent_request_input" was emitted, this will reply with the requested data]] 194 [[If event "agent_request_input" was emitted, this will reply with the requested data]]
195 params { 195 params {
196 name: string @nullable; [[If @Efl.Net.Control.Agent_Request_Input_Field.name was present, this should contain the network name or the 'ssid' parameter should be used.]] 196 name: string; [[If @Efl.Net.Control.Agent_Request_Input_Field.name was present, this should contain the network name or the 'ssid' parameter should be used.]]
197 @cref ssid: Eina.Slice @nullable; [[If @Efl.Net.Control.Agent_Request_Input_Field.ssid was present, this should contain the network SSID or the 'name' parameter should be used.]] 197 @cref ssid: Eina.Slice; [[If @Efl.Net.Control.Agent_Request_Input_Field.ssid was present, this should contain the network SSID or the 'name' parameter should be used.]]
198 username: string @nullable; [[If @Efl.Net.Control.Agent_Request_Input_Field.username was present, this should contain the identity or username]] 198 username: string; [[If @Efl.Net.Control.Agent_Request_Input_Field.username was present, this should contain the identity or username]]
199 passphrase: string @nullable; [[If @Efl.Net.Control.Agent_Request_Input_Field.passphrase was present, this should contain the password or passphrase, more details on how it should be interpreted was given in Efl.Net.Control.Agent_Request_Input.passphrase_type.]] 199 passphrase: string; [[If @Efl.Net.Control.Agent_Request_Input_Field.passphrase was present, this should contain the password or passphrase, more details on how it should be interpreted was given in Efl.Net.Control.Agent_Request_Input.passphrase_type.]]
200 wps: string @nullable; [[If @Efl.Net.Control.Agent_Request_Input_Field.wps was present, this should contain the WPS PIN or an empty string "" to use the WPS push button instead.]] 200 wps: string; [[If @Efl.Net.Control.Agent_Request_Input_Field.wps was present, this should contain the WPS PIN or an empty string "" to use the WPS push button instead.]]
201 } 201 }
202 } 202 }
203 } 203 }
diff --git a/src/lib/ecore_con/efl_net_dialer.eo b/src/lib/ecore_con/efl_net_dialer.eo
index 02770dc..fce3897 100644
--- a/src/lib/ecore_con/efl_net_dialer.eo
+++ b/src/lib/ecore_con/efl_net_dialer.eo
@@ -109,7 +109,7 @@ interface @beta Efl.Net.Dialer extends Efl.Net.Socket {
109 } 109 }
110 110
111 events { 111 events {
112 /* FIXME: Might be NULL, but @nullable does not work on event types */ 112 /* tag nullable once supported by eolian */
113 dialer,resolved: string; [[Notifies @.address_dial was resolved to 113 dialer,resolved: string; [[Notifies @.address_dial was resolved to
114 @Efl.Net.Socket.address_remote. 114 @Efl.Net.Socket.address_remote.
115 115
diff --git a/src/lib/ecore_con/efl_net_socket_ssl.eo b/src/lib/ecore_con/efl_net_socket_ssl.eo
index 9fb0031..31fcb30 100644
--- a/src/lib/ecore_con/efl_net_socket_ssl.eo
+++ b/src/lib/ecore_con/efl_net_socket_ssl.eo
@@ -75,7 +75,7 @@ class @beta Efl.Net.Socket_Ssl extends Efl.Loop_Consumer implements Efl.Net.Sock
75 It's only used if @.hostname_verify is $true. 75 It's only used if @.hostname_verify is $true.
76 ]] 76 ]]
77 values { 77 values {
78 hostname_override: string @nullable; [[Hostname for this socket]] 78 hostname_override: string; [[Hostname for this socket]]
79 } 79 }
80 } 80 }
81 } 81 }
diff --git a/src/lib/ecore_con/efl_net_ssl_context.eo b/src/lib/ecore_con/efl_net_ssl_context.eo
index 2557a03..26fd68f 100644
--- a/src/lib/ecore_con/efl_net_ssl_context.eo
+++ b/src/lib/ecore_con/efl_net_ssl_context.eo
@@ -122,7 +122,7 @@ class @beta Efl.Net.Ssl.Context extends Efl.Object {
122 It's only used if @.hostname_verify is $true. 122 It's only used if @.hostname_verify is $true.
123 ]] 123 ]]
124 values { 124 values {
125 hostname: string @nullable; [[Hostname for this socket]] 125 hostname: string; [[Hostname for this socket]]
126 } 126 }
127 } 127 }
128 } 128 }
diff --git a/src/lib/efl/interfaces/efl_canvas_scene.eo b/src/lib/efl/interfaces/efl_canvas_scene.eo
index fd1a818..44539d3 100644
--- a/src/lib/efl/interfaces/efl_canvas_scene.eo
+++ b/src/lib/efl/interfaces/efl_canvas_scene.eo
@@ -235,7 +235,7 @@ interface Efl.Canvas.Scene
235 object,focus,in: Efl.Input.Focus; [[Called when object got focus]] 235 object,focus,in: Efl.Input.Focus; [[Called when object got focus]]
236 object,focus,out: Efl.Input.Focus; [[Called when object lost focus]] 236 object,focus,out: Efl.Input.Focus; [[Called when object lost focus]]
237 render,pre: void; [[Called when pre render happens]] 237 render,pre: void; [[Called when pre render happens]]
238 /* FIXME: event_info can be NULL, but @nullable tag does not work on events yet */ 238 /* tag nullable once supported by eolian */
239 render,post @beta: Efl.Gfx.Event.Render_Post; [[Called when post render happens]] 239 render,post @beta: Efl.Gfx.Event.Render_Post; [[Called when post render happens]]
240 device,changed @beta : Efl.Input.Device; [[Called when input device changed]] 240 device,changed @beta : Efl.Input.Device; [[Called when input device changed]]
241 device,added @beta: Efl.Input.Device; [[Called when input device was added]] 241 device,added @beta: Efl.Input.Device; [[Called when input device was added]]
diff --git a/src/lib/efl/interfaces/efl_gfx_buffer.eo b/src/lib/efl/interfaces/efl_gfx_buffer.eo
index 074dd78..38da6c8 100644
--- a/src/lib/efl/interfaces/efl_gfx_buffer.eo
+++ b/src/lib/efl/interfaces/efl_gfx_buffer.eo
@@ -174,7 +174,7 @@ interface @beta Efl.Gfx.Buffer
174 $slice should not be the return value of @.buffer_managed_get. 174 $slice should not be the return value of @.buffer_managed_get.
175 ]] 175 ]]
176 params { 176 params {
177 @cref slice: Eina.Slice @nullable; [[If $null, allocates an empty buffer]] 177 @cref slice: Eina.Slice; [[If $null, allocates an empty buffer]]
178 @in size: Eina.Size2D; [[The size in pixels.]] 178 @in size: Eina.Size2D; [[The size in pixels.]]
179 @in stride: int @optional; [[If 0, automatically guessed from the $width.]] 179 @in stride: int @optional; [[If 0, automatically guessed from the $width.]]
180 @in cspace: Efl.Gfx.Colorspace @optional; [[argb8888 by default.]] 180 @in cspace: Efl.Gfx.Colorspace @optional; [[argb8888 by default.]]
@@ -199,7 +199,7 @@ interface @beta Efl.Gfx.Buffer
199 internally. 199 internally.
200 ]] 200 ]]
201 params { 201 params {
202 @cref slice: Eina.Slice @nullable; [[If $null, detaches the previous buffer.]] 202 @cref slice: Eina.Slice; [[If $null, detaches the previous buffer.]]
203 @in size: Eina.Size2D; [[The size in pixels.]] 203 @in size: Eina.Size2D; [[The size in pixels.]]
204 @in stride: int @optional; [[If 0, automatically guessed from the $width.]] 204 @in stride: int @optional; [[If 0, automatically guessed from the $width.]]
205 @in cspace: Efl.Gfx.Colorspace @optional; [[argb8888 by default.]] 205 @in cspace: Efl.Gfx.Colorspace @optional; [[argb8888 by default.]]
diff --git a/src/lib/efl/interfaces/efl_ui_format.eo b/src/lib/efl/interfaces/efl_ui_format.eo
index 8f59d85..c7b6aba 100644
--- a/src/lib/efl/interfaces/efl_ui_format.eo
+++ b/src/lib/efl/interfaces/efl_ui_format.eo
@@ -18,7 +18,7 @@ mixin @beta Efl.Ui.Format
18 ]] 18 ]]
19 } 19 }
20 values { 20 values {
21 func: Efl.Ui.Format_Func_Cb @nullable; [[The format function callback]] 21 func: Efl.Ui.Format_Func_Cb; [[The format function callback]]
22 } 22 }
23 } 23 }
24 @property format_string { 24 @property format_string {
@@ -35,7 +35,7 @@ mixin @beta Efl.Ui.Format
35 as in $"%.0f %%". 35 as in $"%.0f %%".
36 ]] 36 ]]
37 values { 37 values {
38 units: string @nullable; [[The format string for $obj's units label.]] 38 units: string; [[The format string for $obj's units label.]]
39 } 39 }
40 } 40 }
41 } 41 }
diff --git a/src/lib/elementary/efl_ui_clock.eo b/src/lib/elementary/efl_ui_clock.eo
index e2c7fde..abc7b5e 100644
--- a/src/lib/elementary/efl_ui_clock.eo
+++ b/src/lib/elementary/efl_ui_clock.eo
@@ -95,7 +95,7 @@ class @beta Efl.Ui.Clock extends Efl.Ui.Layout_Base
95 */ 95 */
96 set {} get {} 96 set {} get {}
97 values { 97 values {
98 fmt: string @nullable; [[The clock format.]] 98 fmt: string; [[The clock format.]]
99 } 99 }
100 } 100 }
101 @property pause { 101 @property pause {
diff --git a/src/lib/elementary/efl_ui_internal_text_scroller.eo b/src/lib/elementary/efl_ui_internal_text_scroller.eo
index 4e20e9b..b18c008 100644
--- a/src/lib/elementary/efl_ui_internal_text_scroller.eo
+++ b/src/lib/elementary/efl_ui_internal_text_scroller.eo
@@ -38,8 +38,8 @@ class @beta Efl.Ui.Internal_Text_Scroller extends Efl.Ui.Scroller
38 This should be called upon constructing the object. 38 This should be called upon constructing the object.
39 ]] 39 ]]
40 params { 40 params {
41 text_obj: Efl.Canvas.Text @nullable; [[The text object to query]] 41 text_obj: Efl.Canvas.Text; [[The text object to query]]
42 text_table: Efl.Ui.Table @nullable; [[The table container of 42 text_table: Efl.Ui.Table; [[The table container of
43 the $text_obj]] 43 the $text_obj]]
44 } 44 }
45 } 45 }
diff --git a/src/lib/elementary/efl_ui_pager.eo b/src/lib/elementary/efl_ui_pager.eo
index 7879132..7389fd8 100644
--- a/src/lib/elementary/efl_ui_pager.eo
+++ b/src/lib/elementary/efl_ui_pager.eo
@@ -27,7 +27,7 @@ class @beta Efl.Ui.Pager extends Efl.Ui.Layout_Base implements Efl.Pack_Linear
27 [[Set a page transition effect]] 27 [[Set a page transition effect]]
28 } 28 }
29 values { 29 values {
30 transition: Efl.Page.Transition @nullable; [[transition effect]] 30 transition: Efl.Page.Transition; [[transition effect]]
31 } 31 }
32 } 32 }
33 @property indicator { 33 @property indicator {
@@ -40,7 +40,7 @@ class @beta Efl.Ui.Pager extends Efl.Ui.Layout_Base implements Efl.Pack_Linear
40 [[Set a page indicator]] 40 [[Set a page indicator]]
41 } 41 }
42 values { 42 values {
43 indicator: Efl.Page.Indicator @nullable; [[indicator class]] 43 indicator: Efl.Page.Indicator; [[indicator class]]
44 } 44 }
45 } 45 }
46 @property current_page { 46 @property current_page {
diff --git a/src/lib/elementary/efl_ui_radio.eo b/src/lib/elementary/efl_ui_radio.eo
index 5fd6136..8dabfc7 100644
--- a/src/lib/elementary/efl_ui_radio.eo
+++ b/src/lib/elementary/efl_ui_radio.eo
@@ -33,7 +33,7 @@ class @beta Efl.Ui.Radio extends Efl.Ui.Check implements Efl.Access.Widget.Actio
33 ]] 33 ]]
34 } 34 }
35 values { 35 values {
36 valuep: ptr(int) @nullable; [[Pointer to the integer to modify]] 36 valuep: ptr(int); [[Pointer to the integer to modify]]
37 } 37 }
38 } 38 }
39 @property selected_object { 39 @property selected_object {
diff --git a/src/lib/elementary/efl_ui_scroll_manager.eo b/src/lib/elementary/efl_ui_scroll_manager.eo
index e948fe6..3733e81 100644
--- a/src/lib/elementary/efl_ui_scroll_manager.eo
+++ b/src/lib/elementary/efl_ui_scroll_manager.eo
@@ -17,7 +17,7 @@ class @beta Efl.Ui.Scroll.Manager extends Efl.Object implements
17 set { 17 set {
18 } 18 }
19 values { 19 values {
20 pan: Efl.Ui.Pan @nullable; [[Pan object]] 20 pan: Efl.Ui.Pan; [[Pan object]]
21 } 21 }
22 } 22 }
23 } 23 }
diff --git a/src/lib/elementary/efl_ui_text.eo b/src/lib/elementary/efl_ui_text.eo
index 626280a..4ebb3fa 100644
--- a/src/lib/elementary/efl_ui_text.eo
+++ b/src/lib/elementary/efl_ui_text.eo
@@ -360,7 +360,7 @@ class @beta Efl.Ui.Text extends Efl.Ui.Layout_Base implements Efl.Ui.Clickable,
360 } 360 }
361 events { 361 events {
362 changed: void; [[Called when entry changes]] 362 changed: void; [[Called when entry changes]]
363 /* FIXME: Sometimes it can be NULL but @nullable does not work on events */ 363 /* can be NULL, tag nullable once Eolian supports it */
364 changed,user: Efl.Ui.Text_Change_Info; 364 changed,user: Efl.Ui.Text_Change_Info;
365 [[The text object has changed due to user interaction]] 365 [[The text object has changed due to user interaction]]
366 validate: Elm.Validate_Content; [[Called when validating]] 366 validate: Elm.Validate_Content; [[Called when validating]]
diff --git a/src/lib/elementary/efl_ui_widget.eo b/src/lib/elementary/efl_ui_widget.eo
index ece49ef..1c2f85a 100644
--- a/src/lib/elementary/efl_ui_widget.eo
+++ b/src/lib/elementary/efl_ui_widget.eo
@@ -53,8 +53,8 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
53 [[Returns the current cursor name.]] 53 [[Returns the current cursor name.]]
54 } 54 }
55 values { 55 values {
56 cursor: string @nullable; [[The cursor name, defined either 56 cursor: string; [[The cursor name, defined either
57 by the display system or the theme.]] 57 by the display system or the theme.]]
58 } 58 }
59 } 59 }
60 @property cursor_style @beta { 60 @property cursor_style @beta {
@@ -104,7 +104,7 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
104 [[Sets the new resize object for this widget.]] 104 [[Sets the new resize object for this widget.]]
105 } 105 }
106 values { 106 values {
107 sobj: Efl.Canvas.Object @nullable; 107 sobj: Efl.Canvas.Object;
108 [[A canvas object (often a @Efl.Canvas.Layout object).]] 108 [[A canvas object (often a @Efl.Canvas.Layout object).]]
109 } 109 }
110 } 110 }
@@ -216,7 +216,7 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
216 get { 216 get {
217 } 217 }
218 values { 218 values {
219 parent: Efl.Ui.Widget @nullable; [[Widget parent object]] 219 parent: Efl.Ui.Widget; [[Widget parent object]]
220 } 220 }
221 } 221 }
222 222
@@ -231,7 +231,7 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
231 out loud, instead $txt will be read out. 231 out loud, instead $txt will be read out.
232 ]] 232 ]]
233 values { 233 values {
234 txt: string @nullable; [[Accessibility text description.]] 234 txt: string; [[Accessibility text description.]]
235 } 235 }
236 } 236 }
237 on_access_activate @protected @beta { 237 on_access_activate @protected @beta {
diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo
index 33a4be6..1a3e3a4 100644
--- a/src/lib/elementary/efl_ui_win.eo
+++ b/src/lib/elementary/efl_ui_win.eo
@@ -303,7 +303,7 @@ class Efl.Ui.Win extends Efl.Ui.Widget implements Efl.Canvas.Scene, Efl.Access.W
303 type @Efl.Canvas.Image or @Efl.Ui.Image are allowed. 303 type @Efl.Canvas.Image or @Efl.Ui.Image are allowed.
304 ]] 304 ]]
305 values { 305 values {
306 icon: Efl.Canvas.Object @nullable; 306 icon: Efl.Canvas.Object;
307 [[The image object to use for an icon.]] 307 [[The image object to use for an icon.]]
308 } 308 }
309 } 309 }
@@ -314,7 +314,7 @@ class Efl.Ui.Win extends Efl.Ui.Widget implements Efl.Canvas.Scene, Efl.Access.W
314 the object to use for the window icon. 314 the object to use for the window icon.
315 ]] 315 ]]
316 values { 316 values {
317 icon: const(Efl.Canvas.Object) @nullable; 317 icon: const(Efl.Canvas.Object);
318 [[The Evas image object to use for an icon.]] 318 [[The Evas image object to use for an icon.]]
319 } 319 }
320 } 320 }
@@ -444,7 +444,7 @@ class Efl.Ui.Win extends Efl.Ui.Widget implements Efl.Canvas.Scene, Efl.Access.W
444 get { 444 get {
445 } 445 }
446 values { 446 values {
447 name: string @nullable; [[Window name]] 447 name: string; [[Window name]]
448 } 448 }
449 } 449 }
450 @property win_type @beta { 450 @property win_type @beta {
@@ -797,7 +797,7 @@ class Efl.Ui.Win extends Efl.Ui.Widget implements Efl.Canvas.Scene, Efl.Access.W
797 get { 797 get {
798 } 798 }
799 values { 799 values {
800 style: string @nullable; [[The name of the focus highlight style.]] 800 style: string; [[The name of the focus highlight style.]]
801 } 801 }
802 } 802 }
803 @property focus_highlight_animate { 803 @property focus_highlight_animate {
diff --git a/src/lib/elementary/elm_interface_scrollable.eo b/src/lib/elementary/elm_interface_scrollable.eo
index f8c2a2d..77f2422 100644
--- a/src/lib/elementary/elm_interface_scrollable.eo
+++ b/src/lib/elementary/elm_interface_scrollable.eo
@@ -287,7 +287,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
287 [[Set the callback to run when the content has been moved up.]] 287 [[Set the callback to run when the content has been moved up.]]
288 } 288 }
289 values { 289 values {
290 scroll_up_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 290 scroll_up_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
291 } 291 }
292 } 292 }
293 @property hbar_drag_cb { 293 @property hbar_drag_cb {
@@ -295,7 +295,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
295 [[Set the callback to run when the horizontal scrollbar is dragged.]] 295 [[Set the callback to run when the horizontal scrollbar is dragged.]]
296 } 296 }
297 values { 297 values {
298 hbar_drag_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 298 hbar_drag_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
299 } 299 }
300 } 300 }
301 @property drag_start_cb { 301 @property drag_start_cb {
@@ -303,7 +303,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
303 [[Set the callback to run when dragging of the contents has started.]] 303 [[Set the callback to run when dragging of the contents has started.]]
304 } 304 }
305 values { 305 values {
306 drag_start_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 306 drag_start_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
307 } 307 }
308 } 308 }
309 @property freeze { 309 @property freeze {
@@ -319,7 +319,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
319 [[When the viewport is resized, the callback is called.]] 319 [[When the viewport is resized, the callback is called.]]
320 } 320 }
321 values { 321 values {
322 viewport_resize_cb: Elm_Interface_Scrollable_Resize_Cb @nullable; [[The callback]] 322 viewport_resize_cb: Elm_Interface_Scrollable_Resize_Cb; [[The callback]]
323 } 323 }
324 } 324 }
325 @property scroll_left_cb { 325 @property scroll_left_cb {
@@ -327,7 +327,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
327 [[Set the callback to run when the content has been moved to the left]] 327 [[Set the callback to run when the content has been moved to the left]]
328 } 328 }
329 values { 329 values {
330 scroll_left_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 330 scroll_left_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
331 } 331 }
332 } 332 }
333 @property vbar_press_cb { 333 @property vbar_press_cb {
@@ -335,7 +335,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
335 [[Set the callback to run when the vertical scrollbar is pressed.]] 335 [[Set the callback to run when the vertical scrollbar is pressed.]]
336 } 336 }
337 values { 337 values {
338 vbar_press_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 338 vbar_press_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
339 } 339 }
340 } 340 }
341 @property hbar_press_cb { 341 @property hbar_press_cb {
@@ -343,7 +343,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
343 [[Set the callback to run when the horizontal scrollbar is pressed.]] 343 [[Set the callback to run when the horizontal scrollbar is pressed.]]
344 } 344 }
345 values { 345 values {
346 hbar_press_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 346 hbar_press_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
347 } 347 }
348 } 348 }
349 @property hbar_unpress_cb { 349 @property hbar_unpress_cb {
@@ -351,7 +351,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
351 [[Set the callback to run when the horizontal scrollbar is unpressed.]] 351 [[Set the callback to run when the horizontal scrollbar is unpressed.]]
352 } 352 }
353 values { 353 values {
354 hbar_unpress_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 354 hbar_unpress_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
355 } 355 }
356 } 356 }
357 @property drag_stop_cb { 357 @property drag_stop_cb {
@@ -359,7 +359,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
359 [[Set the callback to run when dragging of the contents has stopped.]] 359 [[Set the callback to run when dragging of the contents has stopped.]]
360 } 360 }
361 values { 361 values {
362 drag_stop_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 362 drag_stop_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
363 } 363 }
364 } 364 }
365 @property extern_pan { 365 @property extern_pan {
@@ -367,7 +367,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
367 set { 367 set {
368 } 368 }
369 values { 369 values {
370 pan: Efl.Canvas.Object @nullable; [[Pan object]] 370 pan: Efl.Canvas.Object; [[Pan object]]
371 } 371 }
372 } 372 }
373 @property page_change_cb { 373 @property page_change_cb {
@@ -375,7 +375,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
375 [[Set the callback to run when the visible page changes.]] 375 [[Set the callback to run when the visible page changes.]]
376 } 376 }
377 values { 377 values {
378 page_change_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 378 page_change_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
379 } 379 }
380 } 380 }
381 @property hold { 381 @property hold {
@@ -391,7 +391,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
391 [[Set the callback to run when the scrolling animation has started.]] 391 [[Set the callback to run when the scrolling animation has started.]]
392 } 392 }
393 values { 393 values {
394 animate_start_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 394 animate_start_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
395 } 395 }
396 } 396 }
397 @property scroll_down_cb { 397 @property scroll_down_cb {
@@ -399,7 +399,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
399 [[Set the callback to run when the content has been moved down.]] 399 [[Set the callback to run when the content has been moved down.]]
400 } 400 }
401 values { 401 values {
402 scroll_down_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 402 scroll_down_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
403 } 403 }
404 } 404 }
405 @property page_relative { 405 @property page_relative {
@@ -416,7 +416,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
416 [[Set the callback to run when the content has been moved.]] 416 [[Set the callback to run when the content has been moved.]]
417 } 417 }
418 values { 418 values {
419 scroll_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 419 scroll_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
420 } 420 }
421 } 421 }
422 @property animate_stop_cb { 422 @property animate_stop_cb {
@@ -424,7 +424,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
424 [[Set the callback to run when the scrolling animation has stopped.]] 424 [[Set the callback to run when the scrolling animation has stopped.]]
425 } 425 }
426 values { 426 values {
427 animate_stop_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 427 animate_stop_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
428 } 428 }
429 } 429 }
430 @property content_min_limit_cb { 430 @property content_min_limit_cb {
@@ -432,7 +432,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
432 set { 432 set {
433 } 433 }
434 values { 434 values {
435 min_limit_cb: Elm_Interface_Scrollable_Min_Limit_Cb @nullable; [[The callback]] 435 min_limit_cb: Elm_Interface_Scrollable_Min_Limit_Cb; [[The callback]]
436 } 436 }
437 } 437 }
438 @property scroll_right_cb { 438 @property scroll_right_cb {
@@ -440,7 +440,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
440 [[Set the callback to run when the content has been moved to the right.]] 440 [[Set the callback to run when the content has been moved to the right.]]
441 } 441 }
442 values { 442 values {
443 scroll_right_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 443 scroll_right_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
444 } 444 }
445 } 445 }
446 @property scrollable_content { 446 @property scrollable_content {
@@ -448,7 +448,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
448 set { 448 set {
449 } 449 }
450 values { 450 values {
451 content: Efl.Canvas.Object @nullable; [[Content object]] 451 content: Efl.Canvas.Object; [[Content object]]
452 } 452 }
453 } 453 }
454 @property edge_left_cb { 454 @property edge_left_cb {
@@ -456,7 +456,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
456 [[Set the callback to run when the left edge of the content has been reached.]] 456 [[Set the callback to run when the left edge of the content has been reached.]]
457 } 457 }
458 values { 458 values {
459 edge_left_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 459 edge_left_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
460 } 460 }
461 } 461 }
462 @property vbar_drag_cb { 462 @property vbar_drag_cb {
@@ -464,7 +464,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
464 [[Set the callback to run when the horizontal scrollbar is dragged.]] 464 [[Set the callback to run when the horizontal scrollbar is dragged.]]
465 } 465 }
466 values { 466 values {
467 vbar_drag_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 467 vbar_drag_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
468 } 468 }
469 } 469 }
470 @property vbar_unpress_cb { 470 @property vbar_unpress_cb {
@@ -472,7 +472,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
472 [[Set the callback to run when the horizontal scrollbar is unpressed.]] 472 [[Set the callback to run when the horizontal scrollbar is unpressed.]]
473 } 473 }
474 values { 474 values {
475 vbar_unpress_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 475 vbar_unpress_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
476 } 476 }
477 } 477 }
478 @property edge_bottom_cb { 478 @property edge_bottom_cb {
@@ -480,7 +480,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
480 [[Set the callback to run when the bottom edge of the content has been reached.]] 480 [[Set the callback to run when the bottom edge of the content has been reached.]]
481 } 481 }
482 values { 482 values {
483 edge_bottom_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 483 edge_bottom_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
484 } 484 }
485 } 485 }
486 @property edge_right_cb { 486 @property edge_right_cb {
@@ -488,7 +488,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
488 [[Set the callback to run when the right edge of the content has been reached.]] 488 [[Set the callback to run when the right edge of the content has been reached.]]
489 } 489 }
490 values { 490 values {
491 edge_right_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 491 edge_right_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
492 } 492 }
493 } 493 }
494 @property edge_top_cb { 494 @property edge_top_cb {
@@ -496,7 +496,7 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrol
496 [[Set the callback to run when the top edge of the content has been reached.]] 496 [[Set the callback to run when the top edge of the content has been reached.]]
497 } 497 }
498 values { 498 values {
499 edge_top_cb: Elm_Interface_Scrollable_Cb @nullable; [[The callback]] 499 edge_top_cb: Elm_Interface_Scrollable_Cb; [[The callback]]
500 } 500 }
501 } 501 }
502 @property objects { 502 @property objects {
diff --git a/src/lib/eo/efl_object.eo b/src/lib/eo/efl_object.eo
index a63343a..84a5558 100644
--- a/src/lib/eo/efl_object.eo
+++ b/src/lib/eo/efl_object.eo
@@ -91,7 +91,7 @@ abstract Efl.Object
91 get { 91 get {
92 } 92 }
93 values { 93 values {
94 parent: Efl.Object @nullable; [[The new parent.]] 94 parent: Efl.Object; [[The new parent.]]
95 } 95 }
96 } 96 }
97 @property name { 97 @property name {
@@ -108,7 +108,7 @@ abstract Efl.Object
108 get { 108 get {
109 } 109 }
110 values { 110 values {
111 name: string @nullable; [[The name.]] 111 name: string; [[The name.]]
112 } 112 }
113 } 113 }
114 @property comment { 114 @property comment {
@@ -123,7 +123,7 @@ abstract Efl.Object
123 get { 123 get {
124 } 124 }
125 values { 125 values {
126 comment: string @nullable; [[The comment.]] 126 comment: string; [[The comment.]]
127 } 127 }
128 } 128 }
129 debug_name_override { 129 debug_name_override {
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index 3715ed1..2f5346e 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -1792,16 +1792,6 @@ EAPI const Eolian_Documentation *eolian_parameter_documentation_get(const Eolian
1792EAPI Eina_Bool eolian_parameter_is_nonull(const Eolian_Function_Parameter *param_desc); 1792EAPI Eina_Bool eolian_parameter_is_nonull(const Eolian_Function_Parameter *param_desc);
1793 1793
1794/* 1794/*
1795 * @brief Indicates if a parameter is nullable.
1796 *
1797 * @param[in] param_desc parameter handle
1798 * @return EINA_TRUE if nullable, EINA_FALSE otherwise
1799 *
1800 * @ingroup Eolian
1801 */
1802EAPI Eina_Bool eolian_parameter_is_nullable(const Eolian_Function_Parameter *param_desc);
1803
1804/*
1805 * @brief Indicates if a parameter is optional. 1795 * @brief Indicates if a parameter is optional.
1806 * 1796 *
1807 * @param[in] param_desc parameter handle 1797 * @param[in] param_desc parameter handle
diff --git a/src/lib/eolian/database_function_parameter_api.c b/src/lib/eolian/database_function_parameter_api.c
index 87f1ed3..265c98e 100644
--- a/src/lib/eolian/database_function_parameter_api.c
+++ b/src/lib/eolian/database_function_parameter_api.c
@@ -41,13 +41,6 @@ eolian_parameter_is_nonull(const Eolian_Function_Parameter *param)
41} 41}
42 42
43EAPI Eina_Bool 43EAPI Eina_Bool
44eolian_parameter_is_nullable(const Eolian_Function_Parameter *param)
45{
46 EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE);
47 return param->nullable;
48}
49
50EAPI Eina_Bool
51eolian_parameter_is_optional(const Eolian_Function_Parameter *param) 44eolian_parameter_is_optional(const Eolian_Function_Parameter *param)
52{ 45{
53 EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE); 46 EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE);
diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index 4fec039..cc8fc9c 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -21,7 +21,10 @@ enum Tokens
21}; 21};
22 22
23/* all keywords in eolian, they can still be used as names (they're TOK_VALUE) 23/* all keywords in eolian, they can still be used as names (they're TOK_VALUE)
24 * they just fill in the "kw" field of the token */ 24 * they just fill in the "kw" field of the token
25 *
26 * reserved for the future: @nullable
27 */
25#define KEYWORDS KW(class), KW(const), KW(enum), KW(return), KW(struct), \ 28#define KEYWORDS KW(class), KW(const), KW(enum), KW(return), KW(struct), \
26 \ 29 \
27 KW(abstract), KW(c_prefix), KW(composite), KW(constructor), KW(constructors), \ 30 KW(abstract), KW(c_prefix), KW(composite), KW(constructor), KW(constructors), \
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 80d89e5..3a75555 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -907,7 +907,7 @@ parse_param(Eo_Lexer *ls, Eina_List **params, Eina_Bool allow_inout,
907 Eina_Bool is_vals) 907 Eina_Bool is_vals)
908{ 908{
909 Eina_Bool has_nonull = EINA_FALSE, has_optional = EINA_FALSE, 909 Eina_Bool has_nonull = EINA_FALSE, has_optional = EINA_FALSE,
910 has_nullable = EINA_FALSE, has_owned = EINA_FALSE; 910 has_owned = EINA_FALSE;
911 Eina_Bool cref = (ls->t.kw == KW_at_cref); 911 Eina_Bool cref = (ls->t.kw == KW_at_cref);
912 Eolian_Function_Parameter *par = calloc(1, sizeof(Eolian_Function_Parameter)); 912 Eolian_Function_Parameter *par = calloc(1, sizeof(Eolian_Function_Parameter));
913 par->param_dir = EOLIAN_IN_PARAM; 913 par->param_dir = EOLIAN_IN_PARAM;
@@ -956,8 +956,6 @@ parse_param(Eo_Lexer *ls, Eina_List **params, Eina_Bool allow_inout,
956 for (;;) switch (ls->t.kw) 956 for (;;) switch (ls->t.kw)
957 { 957 {
958 case KW_at_nonull: 958 case KW_at_nonull:
959 if (has_nullable)
960 eo_lexer_syntax_error(ls, "both nullable and nonull specified");
961 CASE_LOCK(ls, nonull, "nonull qualifier") 959 CASE_LOCK(ls, nonull, "nonull qualifier")
962 par->nonull = EINA_TRUE; 960 par->nonull = EINA_TRUE;
963 eo_lexer_get(ls); 961 eo_lexer_get(ls);
@@ -967,13 +965,6 @@ parse_param(Eo_Lexer *ls, Eina_List **params, Eina_Bool allow_inout,
967 par->optional = EINA_TRUE; 965 par->optional = EINA_TRUE;
968 eo_lexer_get(ls); 966 eo_lexer_get(ls);
969 break; 967 break;
970 case KW_at_nullable:
971 if (has_nonull)
972 eo_lexer_syntax_error(ls, "both nullable and nonull specified");
973 CASE_LOCK(ls, nullable, "nullable qualifier");
974 par->nullable = EINA_TRUE;
975 eo_lexer_get(ls);
976 break;
977 case KW_at_owned: 968 case KW_at_owned:
978 CASE_LOCK(ls, owned, "owned qualifier"); 969 CASE_LOCK(ls, owned, "owned qualifier");
979 par->type->owned = EINA_TRUE; 970 par->type->owned = EINA_TRUE;
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index f2dceba..f51f426 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -252,7 +252,6 @@ struct _Eolian_Function_Parameter
252 Eolian_Documentation *doc; 252 Eolian_Documentation *doc;
253 Eolian_Parameter_Dir param_dir; 253 Eolian_Parameter_Dir param_dir;
254 Eina_Bool nonull :1; /* True if this argument cannot be NULL - deprecated */ 254 Eina_Bool nonull :1; /* True if this argument cannot be NULL - deprecated */
255 Eina_Bool nullable :1; /* True if this argument is nullable */
256 Eina_Bool optional :1; /* True if this argument is optional */ 255 Eina_Bool optional :1; /* True if this argument is optional */
257}; 256};
258 257
diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py
index 4dce2e6..bd92075 100644
--- a/src/scripts/pyolian/eolian.py
+++ b/src/scripts/pyolian/eolian.py
@@ -963,7 +963,7 @@ class Function(Object):
963class Function_Parameter(Object): 963class Function_Parameter(Object):
964 def __repr__(self): 964 def __repr__(self):
965 return "<eolian.Function_Parameter '{0.name}', type={0.type}," \ 965 return "<eolian.Function_Parameter '{0.name}', type={0.type}," \
966 " optional={0.is_optional}, nullable={0.is_nullable}>".format(self) 966 " optional={0.is_optional}>".format(self)
967 967
968 @cached_property 968 @cached_property
969 def direction(self): 969 def direction(self):
@@ -979,10 +979,6 @@ class Function_Parameter(Object):
979 return bool(lib.eolian_parameter_is_nonull(self)) 979 return bool(lib.eolian_parameter_is_nonull(self))
980 980
981 @cached_property 981 @cached_property
982 def is_nullable(self):
983 return bool(lib.eolian_parameter_is_nullable(self))
984
985 @cached_property
986 def is_optional(self): 982 def is_optional(self):
987 return bool(lib.eolian_parameter_is_optional(self)) 983 return bool(lib.eolian_parameter_is_optional(self))
988 984
diff --git a/src/scripts/pyolian/eolian_lib.py b/src/scripts/pyolian/eolian_lib.py
index 622486e..4fe2dc5 100644
--- a/src/scripts/pyolian/eolian_lib.py
+++ b/src/scripts/pyolian/eolian_lib.py
@@ -403,10 +403,6 @@ lib.eolian_parameter_documentation_get.restype = c_void_p
403lib.eolian_parameter_is_nonull.argtypes = (c_void_p,) 403lib.eolian_parameter_is_nonull.argtypes = (c_void_p,)
404lib.eolian_parameter_is_nonull.restype = c_bool 404lib.eolian_parameter_is_nonull.restype = c_bool
405 405
406# EAPI Eina_Bool eolian_parameter_is_nullable(const Eolian_Function_Parameter *param_desc);
407lib.eolian_parameter_is_nullable.argtypes = (c_void_p,)
408lib.eolian_parameter_is_nullable.restype = c_bool
409
410# EAPI Eina_Bool eolian_parameter_is_optional(const Eolian_Function_Parameter *param_desc); 406# EAPI Eina_Bool eolian_parameter_is_optional(const Eolian_Function_Parameter *param_desc);
411lib.eolian_parameter_is_optional.argtypes = (c_void_p,) 407lib.eolian_parameter_is_optional.argtypes = (c_void_p,)
412lib.eolian_parameter_is_optional.restype = c_bool 408lib.eolian_parameter_is_optional.restype = c_bool
diff --git a/src/scripts/pyolian/test_eolian.py b/src/scripts/pyolian/test_eolian.py
index 3695330..2a59349 100755
--- a/src/scripts/pyolian/test_eolian.py
+++ b/src/scripts/pyolian/test_eolian.py
@@ -381,7 +381,6 @@ class TestEolianFunction(unittest.TestCase):
381 self.assertEqual(p.name, 'add') 381 self.assertEqual(p.name, 'add')
382 self.assertIsNone(p.default_value) 382 self.assertIsNone(p.default_value)
383 self.assertFalse(p.is_nonull) # TODO is correct ?? 'add' can be null? 383 self.assertFalse(p.is_nonull) # TODO is correct ?? 'add' can be null?
384 self.assertFalse(p.is_nullable)
385 self.assertFalse(p.is_optional) 384 self.assertFalse(p.is_optional)
386 self.assertEqual(p.type.name, 'double') 385 self.assertEqual(p.type.name, 'double')
387 self.assertIsInstance(p.documentation, eolian.Documentation) 386 self.assertIsInstance(p.documentation, eolian.Documentation)
diff --git a/src/tests/eolian/data/null.eo b/src/tests/eolian/data/null.eo
deleted file mode 100644
index ad872e0..0000000
--- a/src/tests/eolian/data/null.eo
+++ /dev/null
@@ -1,12 +0,0 @@
1class Null {
2 methods {
3 foo {
4 params {
5 x: ptr(char);
6 y: ptr(char) @nullable;
7 z: ptr(char) @optional;
8 w: ptr(char) @optional @nullable;
9 }
10 }
11 }
12}
diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c
index 8711fdf..2fbb1b5 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -1010,56 +1010,6 @@ EFL_START_TEST(eolian_free_func)
1010} 1010}
1011EFL_END_TEST 1011EFL_END_TEST
1012 1012
1013EFL_START_TEST(eolian_null)
1014{
1015 const Eolian_Class *class;
1016 const Eolian_Function *func;
1017 const Eolian_Function_Parameter *param;
1018 const Eolian_Unit *unit;
1019 Eina_Iterator *iter;
1020
1021 Eolian_State *eos = eolian_state_new();
1022
1023 /* Parsing */
1024 fail_if(!eolian_state_directory_add(eos, TESTS_SRC_DIR"/data"));
1025 fail_if(!(unit = eolian_state_file_parse(eos, "null.eo")));
1026
1027 fail_if(!(class = eolian_unit_class_by_name_get(unit, "Null")));
1028 fail_if(!(func = eolian_class_function_by_name_get(class, "foo", EOLIAN_METHOD)));
1029
1030 fail_if(!(iter = eolian_function_parameters_get(func)));
1031
1032 /* no qualifiers */
1033 fail_if(!(eina_iterator_next(iter, (void**)&param)));
1034 fail_if(strcmp(eolian_parameter_name_get(param), "x"));
1035 fail_if(eolian_parameter_is_nullable(param));
1036 fail_if(eolian_parameter_is_optional(param));
1037
1038 /* nullable */
1039 fail_if(!(eina_iterator_next(iter, (void**)&param)));
1040 fail_if(strcmp(eolian_parameter_name_get(param), "y"));
1041 fail_if(!eolian_parameter_is_nullable(param));
1042 fail_if(eolian_parameter_is_optional(param));
1043
1044 /* optional */
1045 fail_if(!(eina_iterator_next(iter, (void**)&param)));
1046 fail_if(strcmp(eolian_parameter_name_get(param), "z"));
1047 fail_if(eolian_parameter_is_nullable(param));
1048 fail_if(!eolian_parameter_is_optional(param));
1049
1050 /* both */
1051 fail_if(!(eina_iterator_next(iter, (void**)&param)));
1052 fail_if(strcmp(eolian_parameter_name_get(param), "w"));
1053 fail_if(!eolian_parameter_is_nullable(param));
1054 fail_if(!eolian_parameter_is_optional(param));
1055
1056 fail_if(eina_iterator_next(iter, (void**)&param));
1057 eina_iterator_free(iter);
1058
1059 eolian_state_free(eos);
1060}
1061EFL_END_TEST
1062
1063EFL_START_TEST(eolian_import) 1013EFL_START_TEST(eolian_import)
1064{ 1014{
1065 const Eolian_Class *class; 1015 const Eolian_Class *class;
@@ -1654,7 +1604,6 @@ void eolian_parsing_test(TCase *tc)
1654 tcase_add_test(tc, eolian_enum); 1604 tcase_add_test(tc, eolian_enum);
1655 tcase_add_test(tc, eolian_class_funcs); 1605 tcase_add_test(tc, eolian_class_funcs);
1656 tcase_add_test(tc, eolian_free_func); 1606 tcase_add_test(tc, eolian_free_func);
1657 tcase_add_test(tc, eolian_null);
1658 tcase_add_test(tc, eolian_import); 1607 tcase_add_test(tc, eolian_import);
1659 tcase_add_test(tc, eolian_docs); 1608 tcase_add_test(tc, eolian_docs);
1660 tcase_add_test(tc, eolian_function_types); 1609 tcase_add_test(tc, eolian_function_types);