summaryrefslogtreecommitdiff
path: root/vala/valaparser.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-12-13 12:38:01 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2021-12-13 12:38:01 +0100
commitf5934184d050d1a19f394fdab6f2ee66ff30965f (patch)
tree794a54527132c75c62672e0f363cd5b03a6b2bbe /vala/valaparser.vala
parentc507539ebc3060a5c08de628bf748cfbccc1749c (diff)
downloadvala-f5934184d050d1a19f394fdab6f2ee66ff30965f.tar.gz
vala: Report statement parsing error if it is not meant to be an expression
Fixes https://gitlab.gnome.org/GNOME/vala/issues/1261
Diffstat (limited to 'vala/valaparser.vala')
-rw-r--r--vala/valaparser.vala6
1 files changed, 5 insertions, 1 deletions
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index 76c2bc92e..d61a581e0 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -1686,8 +1686,12 @@ public class Vala.Parser : CodeVisitor {
} catch (ParseError e) {
var e_begin = get_location ();
string token = ((EnumClass) typeof (TokenType).class_ref ()).get_value (type).value_nick;
+ rollback (begin);
+ if (!is_expression ()) {
+ rollback (e_begin);
+ throw e;
+ }
try {
- rollback (begin);
stmt = parse_expression_statement ();
Report.warning (get_src (begin), "`%s' is a syntax keyword, replace with `@%s'", token, token);
} catch (ParseError e2) {