Author: marek
Date: 2008-02-13 10:46:10 -0500 (Wed, 13 Feb 2008)
New Revision: 95585

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

        * generic.cs (ConstraintChecker): Use cached member lookup when looking 
for
        the parameterless constructor.
        


Modified: trunk/mcs/mcs/ChangeLog
===================================================================
--- trunk/mcs/mcs/ChangeLog     2008-02-13 15:38:19 UTC (rev 95584)
+++ trunk/mcs/mcs/ChangeLog     2008-02-13 15:46:10 UTC (rev 95585)
@@ -1,5 +1,10 @@
 2008-02-13  Marek Safar  <[EMAIL PROTECTED]>
 
+       * generic.cs (ConstraintChecker): Use cached member lookup when looking 
for
+       the parameterless constructor.
+
+2008-02-13  Marek Safar  <[EMAIL PROTECTED]>
+
        * generic.cs, typemanager.cs, iterators.cs, codegen.cs: Refactored core
        lookup methods to use standard member cache when doing member lookup.
 

Modified: trunk/mcs/mcs/generic.cs
===================================================================
--- trunk/mcs/mcs/generic.cs    2008-02-13 15:38:19 UTC (rev 95584)
+++ trunk/mcs/mcs/generic.cs    2008-02-13 15:46:10 UTC (rev 95585)
@@ -1756,17 +1756,16 @@
                                        
tparam.GenericConstraints.HasValueTypeConstraint;
                        }
 
-                       MemberList list = TypeManager.FindMembers (
-                               atype, MemberTypes.Constructor,
-                               BindingFlags.Public | BindingFlags.Instance |
-                               BindingFlags.DeclaredOnly, null, null);
+                       MemberInfo [] list = TypeManager.MemberLookup (null, 
null, atype, MemberTypes.Constructor,
+                               BindingFlags.Public | BindingFlags.Instance | 
BindingFlags.DeclaredOnly,
+                               ConstructorInfo.ConstructorName, null);
 
-                       if (atype.IsAbstract || (list == null))
+                       if (list == null)
                                return false;
 
                        foreach (MethodBase mb in list) {
                                ParameterData pd = TypeManager.GetParameterData 
(mb);
-                               if ((pd.Count == 0) && mb.IsPublic && 
!mb.IsStatic)
+                               if (pd.Count == 0)
                                        return true;
                        }
 

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

Reply via email to