From 4368a4fa667148378dcdbd251a4ae4e00c9a8e5a Mon Sep 17 00:00:00 2001 From: Princeton Ferro Date: Thu, 9 Apr 2020 21:15:45 +0200 Subject: [PATCH] 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. --- vala/valaparser.vala | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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: -- 2.47.2