Author: marek
Date: 2008-01-22 03:44:22 -0500 (Tue, 22 Jan 2008)
New Revision: 93482

Modified:
   trunk/mcs/mcs/ChangeLog
   trunk/mcs/mcs/ecore.cs
   trunk/mcs/mcs/expression.cs
Log:
2008-01-22  Marek Safar  <[EMAIL PROTECTED]>

        A fix for bug #355148
        * ecore.cs, expression.cs: Correctly report misused ref and out 
modifiers.
        


Modified: trunk/mcs/mcs/ChangeLog
===================================================================
--- trunk/mcs/mcs/ChangeLog     2008-01-22 08:42:27 UTC (rev 93481)
+++ trunk/mcs/mcs/ChangeLog     2008-01-22 08:44:22 UTC (rev 93482)
@@ -1,3 +1,8 @@
+2008-01-22  Marek Safar  <[EMAIL PROTECTED]>
+
+       A fix for bug #355148
+       * ecore.cs, expression.cs: Correctly report misused ref and out 
modifiers.
+       
 2008-01-22  Miguel de Icaza  <[EMAIL PROTECTED]>
 
        * expression.cs (CreateExpressionTree): Add support for or and

Modified: trunk/mcs/mcs/ecore.cs
===================================================================
--- trunk/mcs/mcs/ecore.cs      2008-01-22 08:42:27 UTC (rev 93481)
+++ trunk/mcs/mcs/ecore.cs      2008-01-22 08:44:22 UTC (rev 93482)
@@ -3577,9 +3577,9 @@
                        Parameter.Modifier mod = expected_par.ParameterModifier 
(idx);
 
                        string index = (idx + 1).ToString ();
-                       if ((mod & Parameter.Modifier.ISBYREF) != (a.Modifier & 
Parameter.Modifier.ISBYREF) ||
-                               (mod & Parameter.Modifier.ISBYREF) != 0) {
-                               if ((mod & (Parameter.Modifier.REF | 
Parameter.Modifier.OUT)) == 0)
+                       if (((mod & (Parameter.Modifier.REF | 
Parameter.Modifier.OUT)) ^
+                               (a.Modifier & (Parameter.Modifier.REF | 
Parameter.Modifier.OUT))) != 0) {
+                               if ((mod & Parameter.Modifier.ISBYREF) == 0)
                                        Report.Error (1615, loc, "Argument 
`{0}' should not be passed with the `{1}' keyword",
                                                index, 
Parameter.GetModifierSignature (a.Modifier));
                                else

Modified: trunk/mcs/mcs/expression.cs
===================================================================
--- trunk/mcs/mcs/expression.cs 2008-01-22 08:42:27 UTC (rev 93481)
+++ trunk/mcs/mcs/expression.cs 2008-01-22 08:44:22 UTC (rev 93482)
@@ -4097,9 +4097,7 @@
                        if (Expr.eclass == ExprClass.MethodGroup)
                                return Expr.ExprClassName;
 
-                       return ArgType == AType.Ref ? "ref " :
-                               ArgType == AType.Out ? "out " : "" +
-                               Expr.GetSignatureForError ();
+                       return Expr.GetSignatureForError ();
                }               
 
                public bool ResolveMethodGroup (EmitContext ec)

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to