+2008-05-23 Jürg Billeter <j@bitron.ch>
+
+ * vala/valasemanticanalyzer.vala:
+
+ Allow invocation of void methods as initializer and iterator in
+ for statements, patch by Jared Moore, fixes bug 514801
+
+ * tests/Makefile.am:
+ * tests/statements-iteration.exp:
+ * tests/statements-iteration.vala:
+
+ Test void methods in for statements
+
2008-05-22 Jürg Billeter <j@bitron.ch>
* vapi/Makefile.am:
expressions-assignments.vala \
expressions-lambda.vala \
statements-selection.vala \
+ statements-iteration.vala \
statements-jump.vala \
namespaces.vala \
classes.vala \
expressions-assignments.exp \
expressions-lambda.exp \
statements-selection.exp \
+ statements-iteration.exp \
statements-jump.exp \
namespaces.exp \
classes.exp \
--- /dev/null
+void void_method () {
+}
+
+// http://bugzilla.gnome.org/show_bug.cgi?id=514801
+void test_for_void_methods () {
+ for (void_method (); ; void_method ()) {
+ break;
+ }
+}
+
+void main () {
+ test_for_void_methods ();
+}
+
if (ret_type is VoidType) {
// void return type
- if (!(expr.parent_node is ExpressionStatement)) {
+ if (!(expr.parent_node is ExpressionStatement)
+ && !(expr.parent_node is ForStatement)) {
+ // A void method invocation can be in the initializer or
+ // iterator of a for statement
expr.error = true;
Report.error (expr.source_reference, "invocation of void method not allowed as expression");
return;