diff options
author | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2016-05-23 15:58:11 -0300 |
---|---|---|
committer | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2016-05-23 15:58:11 -0300 |
commit | b613d6f1d98a511daf6524778ccadf8fadf75e3d (patch) | |
tree | 020b0bb152d776be40b1398083e86ad9dedbee49 | |
parent | e3c8b280c639058c54f5576f189d0dc288105fc7 (diff) | |
download | efl-b613d6f1d98a511daf6524778ccadf8fadf75e3d.tar.gz |
eolian: Allow promises to have a second type
Promises can have a second type, which is the progress type
-rw-r--r-- | src/lib/eolian/eo_parser.c | 6 | ||||
-rw-r--r-- | src/tests/eolian/eolian_generated_promise.c | 5 | ||||
-rw-r--r-- | src/tests/eolian/generated_promise.eo | 5 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 10368bcba6..6e3d895e26 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -799,6 +799,12 @@ parse_type_void(Eo_Lexer *ls) parse_type(ls)); pop_type(ls); } + else if(tpid == KW_promise && test_next(ls, ',')) + { + def->subtypes = eina_list_append(def->subtypes, + parse_type(ls)); + pop_type(ls); + } check_match(ls, '>', '<', bline, bcol); } } diff --git a/src/tests/eolian/eolian_generated_promise.c b/src/tests/eolian/eolian_generated_promise.c index 2d0e6f659e..44326006c6 100644 --- a/src/tests/eolian/eolian_generated_promise.c +++ b/src/tests/eolian/eolian_generated_promise.c @@ -11,6 +11,11 @@ struct Generated_Promise_Data {}; typedef struct Generated_Promise_Data Generated_Promise_Data; +static void _generated_promise_method_progress_type(Eo *obj EINA_UNUSED, Generated_Promise_Data *pd EINA_UNUSED, + Eina_Promise_Owner *promise1 EINA_UNUSED) +{ +} + static Eina_Promise * _generated_promise_prop1_get(Eo *obj EINA_UNUSED, Generated_Promise_Data *pd EINA_UNUSED) { return NULL; diff --git a/src/tests/eolian/generated_promise.eo b/src/tests/eolian/generated_promise.eo index c096a309da..5363da023c 100644 --- a/src/tests/eolian/generated_promise.eo +++ b/src/tests/eolian/generated_promise.eo @@ -6,6 +6,11 @@ class Generated_Promise (Eo.Base) @inout promise1: promise<int>; } } + method_progress_type { + params { + @inout promise1: promise<int, double>; + } + } method_multiple_args_1 { params { @inout promise1: promise<int>; |