X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fgmcs%2Fflowanalysis.cs;h=fac60a500f305dc6a386406e02ebcbf30dfa7229;hb=bd316288ae3fa0cb6f03b367716d04d5244c5d04;hp=bc7f898d76a7ca61dd3529478be69450a2d5a421;hpb=74c2e813151ef52866b58da63aeeed698b5e67dd;p=mono.git diff --git a/mcs/gmcs/flowanalysis.cs b/mcs/gmcs/flowanalysis.cs index bc7f898d76a..fac60a500f3 100644 --- a/mcs/gmcs/flowanalysis.cs +++ b/mcs/gmcs/flowanalysis.cs @@ -1026,9 +1026,8 @@ namespace Mono.CSharp if (var.IsAssigned (parameters)) continue; - Report.Error (177, loc, "The out parameter `" + - var.Name + "' must be " + - "assigned before control leaves the current method."); + Report.Error (177, loc, "The out parameter `{0}' must be assigned to before control leaves the current method", + var.Name); } } @@ -1476,9 +1475,8 @@ namespace Mono.CSharp return s; if (finally_vector != null) { - Report.Error ( - 157, loc, "Control can not leave the body " + - "of the finally block"); + Report.Error (157, loc, + "Control cannot leave the body of a finally clause"); return null; } @@ -1645,9 +1643,8 @@ namespace Mono.CSharp if (!branching.IsFieldAssigned (vi, field.Name)) { Report.Error (171, loc, - "Field `" + TypeManager.CSharpName (Type) + - "." + field.Name + "' must be fully initialized " + - "before control leaves the constructor"); + "Field `{0}' must be fully assigned before control leaves the constructor", + TypeManager.GetFullNameSignature (field)); ok = false; } } @@ -1750,7 +1747,7 @@ namespace Mono.CSharp field_hash.Add (field.Name, ++Length); else if (sinfo [i].InTransit) { Report.Error (523, String.Format ( - "Struct member '{0}.{1}' of type '{2}' causes " + + "Struct member `{0}.{1}' of type `{2}' causes " + "a cycle in the structure layout", type, field.Name, sinfo [i].Type)); sinfo [i] = null; @@ -1902,7 +1899,9 @@ namespace Mono.CSharp public bool IsAssigned (EmitContext ec) { - return !ec.DoFlowAnalysis || ec.CurrentBranching.IsAssigned (this); + return !ec.DoFlowAnalysis || + ec.OmitStructFlowAnalysis && TypeInfo.IsStruct || + ec.CurrentBranching.IsAssigned (this); } public bool IsAssigned (EmitContext ec, Location loc) @@ -1962,7 +1961,9 @@ namespace Mono.CSharp public bool IsFieldAssigned (EmitContext ec, string name, Location loc) { - if (!ec.DoFlowAnalysis || ec.CurrentBranching.IsFieldAssigned (this, name)) + if (!ec.DoFlowAnalysis || + ec.OmitStructFlowAnalysis && TypeInfo.IsStruct || + ec.CurrentBranching.IsFieldAssigned (this, name)) return true; Report.Error (170, loc,