From: Princeton Ferro Date: Thu, 9 Apr 2020 19:15:45 +0000 (+0200) Subject: parser: Handle incomplete expression statements X-Git-Tag: 0.49.1~182 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fkeep-around%2F4368a4fa667148378dcdbd251a4ae4e00c9a8e5a;p=thirdparty%2Fvala.git parser: Handle incomplete expression statements Incomplete expression statements are parsed as expression statements now, rather than local variable declarations. This primarily affects incomplete member access expressions at the end of blocks. --- diff --git a/vala/valaparser.vala b/vala/valaparser.vala index 48818a293..e61372975 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -1665,7 +1665,19 @@ public class Vala.Parser : CodeVisitor { var begin = get_location (); // decide between declaration and expression statement - skip_type (); + try { + skip_type (); + } catch (ParseError e) { + prev (); + var token = current (); + next (); + if (token == TokenType.DOT || token == TokenType.DOUBLE_COLON) { + rollback (begin); + return true; + } else { + throw e; + } + } switch (current ()) { // invocation expression case TokenType.OPEN_PARENS: