[vala] Do not warn about non-default parameters for coroutines.



commit dd24a1bfe1a78bf1a37d35f5d8dd6480fd4a8941
Author: Luca Bruno <lucabru src gnome org>
Date:   Mon Aug 26 22:36:00 2013 +0200

    Do not warn about non-default parameters for coroutines.
    
    Reopens bug 644241.

 vala/valamethod.vala |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 deletions(-)
---
diff --git a/vala/valamethod.vala b/vala/valamethod.vala
index d1129d8..663ae6f 100644
--- a/vala/valamethod.vala
+++ b/vala/valamethod.vala
@@ -654,17 +654,20 @@ public class Vala.Method : Subroutine {
                        Report.error (parameters[0].source_reference, "Named parameter required before 
`...'");
                }
 
-               var optional_param = false;
-               foreach (Parameter param in parameters) {
-                       param.check (context);
-                       if (coroutine && param.direction == ParameterDirection.REF) {
-                               error = true;
-                               Report.error (param.source_reference, "Reference parameters are not supported 
for async methods");
-                       }
-                       if (optional_param && param.initializer == null && !param.ellipsis) {
-                               Report.warning (param.source_reference, "parameter without default follows 
parameter with default");
-                       } else if (param.initializer != null) {
-                               optional_param = true;
+               if (!coroutine) {
+                       // TODO: begin and end parameters must be checked separately for coroutines
+                       var optional_param = false;
+                       foreach (Parameter param in parameters) {
+                               param.check (context);
+                               if (coroutine && param.direction == ParameterDirection.REF) {
+                                       error = true;
+                                       Report.error (param.source_reference, "Reference parameters are not 
supported for async methods");
+                               }
+                               if (optional_param && param.initializer == null && !param.ellipsis) {
+                                       Report.warning (param.source_reference, "parameter without default 
follows parameter with default");
+                               } else if (param.initializer != null) {
+                                       optional_param = true;
+                               }
                        }
                }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]