From bbfdb5c417fcb6fac28915a4923b78f7326c3b97 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Thu, 19 Mar 2020 09:53:27 +0100 Subject: [PATCH] parser: Improve error message for invalid ArrayCreationExpression Fixes https://gitlab.gnome.org/GNOME/vala/issues/939 --- tests/Makefile.am | 1 + tests/parser/array-creation-invalid.test | 5 +++++ vala/valaparser.vala | 3 +++ 3 files changed, 9 insertions(+) create mode 100644 tests/parser/array-creation-invalid.test diff --git a/tests/Makefile.am b/tests/Makefile.am index 5a6bbbb3f..8e8b8d433 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -592,6 +592,7 @@ TESTS = \ scanner/string-escape-u-digit-length.test \ scanner/string-escape-x-digit-length.test \ scanner/string-escape-x.vala \ + parser/array-creation-invalid.test \ parser/assignment.vala \ parser/attribute-duplicate.test \ parser/attribute-wrong-number.test \ diff --git a/tests/parser/array-creation-invalid.test b/tests/parser/array-creation-invalid.test new file mode 100644 index 000000000..22d439d3d --- /dev/null +++ b/tests/parser/array-creation-invalid.test @@ -0,0 +1,5 @@ +Invalid Code + +void main () { + var foo = new int[]; +} diff --git a/vala/valaparser.vala b/vala/valaparser.vala index d5c714396..9a033ab05 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -974,6 +974,9 @@ public class Vala.Parser : CodeVisitor { foreach (Expression size in size_specifier_list) { expr.append_size (size); } + } else if (initializer == null) { + Report.warning (src, "possibly missing array size"); + throw new ParseError.SYNTAX ("expected array initializer list"); } return expr; } -- 2.47.2