Author: marek
Date: 2008-02-18 09:34:57 -0500 (Mon, 18 Feb 2008)
New Revision: 96051

Modified:
   trunk/mcs/mcs/ChangeLog
   trunk/mcs/mcs/ecore.cs
   trunk/mcs/mcs/support.cs
Log:
2008-02-18  Marek Safar  <[EMAIL PROTECTED]>

        A fix for bug #361457
        * ecore.cs (IsApplicable): Params methods have lower priority.
        
        * support.cs: Return correct parameter modifier for params types.
        


Modified: trunk/mcs/mcs/ChangeLog
===================================================================
--- trunk/mcs/mcs/ChangeLog     2008-02-18 14:17:16 UTC (rev 96050)
+++ trunk/mcs/mcs/ChangeLog     2008-02-18 14:34:57 UTC (rev 96051)
@@ -1,5 +1,12 @@
 2008-02-18  Marek Safar  <[EMAIL PROTECTED]>
 
+       A fix for bug #361457
+       * ecore.cs (IsApplicable): Params methods have lower priority.
+       
+       * support.cs: Return correct parameter modifier for params types.
+
+2008-02-18  Marek Safar  <[EMAIL PROTECTED]>
+
        * generic.cs (TypeParameter): Cache attribute target name.
        
        * support.cs: Removed unused variable.

Modified: trunk/mcs/mcs/ecore.cs
===================================================================
--- trunk/mcs/mcs/ecore.cs      2008-02-18 14:17:16 UTC (rev 96050)
+++ trunk/mcs/mcs/ecore.cs      2008-02-18 14:34:57 UTC (rev 96051)
@@ -3696,8 +3696,11 @@
                                                params_expanded_form = true;
                                }
 
-                               if (score != 0)
+                               if (score != 0) {
+                                       if (params_expanded_form)
+                                               ++score;
                                        return (arg_count - i) * 2 + score;
+                               }                               
                        }
                        
                        if (arg_count != param_count)

Modified: trunk/mcs/mcs/support.cs
===================================================================
--- trunk/mcs/mcs/support.cs    2008-02-18 14:17:16 UTC (rev 96050)
+++ trunk/mcs/mcs/support.cs    2008-02-18 14:34:57 UTC (rev 96051)
@@ -38,7 +38,7 @@
        public class ReflectionParameters : ParameterData {
                ParameterInfo [] pi;
                Type [] types;
-               int params_idx = -1;
+               int params_idx = int.MaxValue;
                bool is_varargs;
                bool is_extension;
                ParameterData gpd;
@@ -229,9 +229,9 @@
 
                public Parameter.Modifier ParameterModifier (int pos)
                {
-                       if (pos == params_idx)
+                       if (pos >= params_idx)
                                return Parameter.Modifier.PARAMS;
-                       else if (is_varargs && pos >= pi.Length)
+                       if (is_varargs && pos >= pi.Length)
                                return Parameter.Modifier.ARGLIST;
 
                        if (gpd != null)
@@ -262,7 +262,7 @@
                }
 
                public bool HasParams {
-                       get { return params_idx != -1; }
+                       get { return params_idx != int.MaxValue; }
                }
 
                public Type[] Types {

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

Reply via email to