Add more incomplete statements to AST. Fixes #4361.
[mono.git] / mcs / mcs / method.cs
index 291ab2fca13f30b78258752a9d27fed5f7199ea5..b00f3f0bc070abffdff2e929894e7c3ac819c229 100644 (file)
@@ -637,7 +637,7 @@ namespace Mono.CSharp {
                        if ((ModFlags & Modifiers.PARTIAL) != 0) {
                                for (int i = 0; i < parameters.Count; ++i) {
                                        IParameterData p = parameters.FixedParameters [i];
-                                       if (p.ModFlags == Parameter.Modifier.OUT) {
+                                       if ((p.ModFlags & Parameter.Modifier.OUT) != 0) {
                                                Report.Error (752, Location, "`{0}': A partial method parameters cannot use `out' modifier",
                                                        GetSignatureForError ());
                                        }
@@ -940,7 +940,7 @@ namespace Mono.CSharp {
                                }
 
                                for (int i = 0; i < parameters.Count; ++i) {
-                                       if (parameters.FixedParameters [i].ModFlags == Parameter.Modifier.OUT) {
+                                       if ((parameters.FixedParameters [i].ModFlags & Parameter.Modifier.OUT) != 0) {
                                                Report.Error (685, Location, "Conditional method `{0}' cannot have an out parameter", GetSignatureForError ());
                                                return;
                                        }
@@ -1196,7 +1196,7 @@ namespace Mono.CSharp {
                                                Report.Error (1983, Location, "The return type of an async method must be void, Task, or Task<T>");
                                        }
 
-                                       AsyncInitializer.Create (this, block, parameters, Parent.PartialContainer, ReturnType, Location);
+                                       block = (ToplevelBlock) block.ConvertToAsyncTask (this, Parent.PartialContainer, parameters, ReturnType, Location);
                                        ModFlags |= Modifiers.DEBUGGER_HIDDEN;
                                }
                        }