]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
parser: Improve error message for invalid ArrayCreationExpression
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 19 Mar 2020 08:53:27 +0000 (09:53 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 24 Mar 2020 08:50:25 +0000 (09:50 +0100)
Fixes https://gitlab.gnome.org/GNOME/vala/issues/939

tests/Makefile.am
tests/parser/array-creation-invalid.test [new file with mode: 0644]
vala/valaparser.vala

index 5a6bbbb3f1172dcfa63ffac4b1dcf1bbdf3840fc..8e8b8d433c5d5bb301167d4396a4e44861b17b65 100644 (file)
@@ -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 (file)
index 0000000..22d439d
--- /dev/null
@@ -0,0 +1,5 @@
+Invalid Code
+
+void main () {
+       var foo = new int[];
+}
index d5c7143960b53f3acea63ce9b5249f8570b9751e..9a033ab05648392f26b609ffa021ff0c872ad3b4 100644 (file)
@@ -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;
        }