diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-12-13 12:38:01 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-12-13 12:38:01 +0100 |
commit | f5934184d050d1a19f394fdab6f2ee66ff30965f (patch) | |
tree | 794a54527132c75c62672e0f363cd5b03a6b2bbe /vala/valaparser.vala | |
parent | c507539ebc3060a5c08de628bf748cfbccc1749c (diff) | |
download | vala-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.vala | 6 |
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) { |