q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=90f604327586eb8fb3f0c9e7b83816573bea820d
commit 90f604327586eb8fb3f0c9e7b83816573bea820d Author: Daniel Kolesa <d.kol...@samsung.com> Date: Wed Jan 16 20:37:08 2019 +0100 eolian: disallow @pure_virtual keyword in interfaces This is implicit, so it's pointless to allow specifying it. --- src/lib/efl/interfaces/efl_observer.eo | 2 +- src/lib/eolian/eo_parser.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/efl/interfaces/efl_observer.eo b/src/lib/efl/interfaces/efl_observer.eo index c76503fac2..38764f843d 100644 --- a/src/lib/efl/interfaces/efl_observer.eo +++ b/src/lib/efl/interfaces/efl_observer.eo @@ -1,7 +1,7 @@ interface Efl.Observer { [[Efl observer interface]] methods { - update @pure_virtual { + update { [[Update observer according to the changes of observable object. @since 1.19]] diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index a06b69b6fb..172df12bd9 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1047,6 +1047,8 @@ parse_accessor(Eo_Lexer *ls, Eolian_Function *prop) for (;;) switch (ls->t.kw) { case KW_at_pure_virtual: + if (ls->klass->type == EOLIAN_CLASS_INTERFACE) + eo_lexer_syntax_error(ls, "@pure_virtual is implicit in interfaces"); CASE_LOCK(ls, virtp, "pure_virtual qualifier"); if (is_get) prop->impl->get_pure_virtual = EINA_TRUE; else prop->impl->set_pure_virtual = EINA_TRUE; @@ -1220,6 +1222,8 @@ parse_property(Eo_Lexer *ls) eo_lexer_get(ls); break; case KW_at_pure_virtual: + if (ls->klass->type == EOLIAN_CLASS_INTERFACE) + eo_lexer_syntax_error(ls, "@pure_virtual is implicit in interfaces"); CASE_LOCK(ls, virtp, "pure_virtual qualifier"); eo_lexer_get(ls); break; @@ -1389,6 +1393,8 @@ parse_method(Eo_Lexer *ls) eo_lexer_get(ls); break; case KW_at_pure_virtual: + if (ls->klass->type == EOLIAN_CLASS_INTERFACE) + eo_lexer_syntax_error(ls, "@pure_virtual is implicit in interfaces"); CASE_LOCK(ls, virtp, "pure_virtual qualifier"); eo_lexer_get(ls); break; --