From: Luca Bruno Date: Mon, 26 Aug 2013 20:36:00 +0000 (+0200) Subject: Do not warn about non-default parameters for coroutines. X-Git-Tag: 0.21.2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd24a1bfe1a78bf1a37d35f5d8dd6480fd4a8941;p=thirdparty%2Fvala.git Do not warn about non-default parameters for coroutines. Reopens bug 644241. --- diff --git a/vala/valamethod.vala b/vala/valamethod.vala index d1129d84f..663ae6fdf 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; + } } }