Author: spouliot
Date: 2008-02-15 15:47:35 -0500 (Fri, 15 Feb 2008)
New Revision: 95829

Modified:
   trunk/mono-tools/gendarme/framework/Gendarme.Framework/AssemblyResolver.cs
   trunk/mono-tools/gendarme/framework/Gendarme.Framework/ChangeLog
   trunk/mono-tools/gendarme/framework/Gendarme.Framework/Runner.cs
Log:
2008-02-15  Sebastien Pouliot  <[EMAIL PROTECTED]>

        * AssemblyResolver.cs: Handle GenericParameter.
        * Runner.cs: Handle the case where Mono.Cecil.Mdb.dll is not
        available.



Modified: 
trunk/mono-tools/gendarme/framework/Gendarme.Framework/AssemblyResolver.cs
===================================================================
--- trunk/mono-tools/gendarme/framework/Gendarme.Framework/AssemblyResolver.cs  
2008-02-15 20:45:56 UTC (rev 95828)
+++ trunk/mono-tools/gendarme/framework/Gendarme.Framework/AssemblyResolver.cs  
2008-02-15 20:47:35 UTC (rev 95829)
@@ -31,6 +31,9 @@
 
 using Mono.Cecil;
 
+// spouliot
+using Gendarme.Framework.Rocks;
+
 //spouliot: namespace Mono.Linker {
 namespace Gendarme.Framework {
 
@@ -63,8 +66,10 @@
                {
                        type = type.GetOriginalType ();
 
-                       if (type is TypeDefinition)
-                               return (TypeDefinition) type;
+                       // spouliot
+                       TypeDefinition result = (type as TypeDefinition);
+                       if (result != null)
+                               return result;
 
                        AssemblyNameReference reference = type.Scope as 
AssemblyNameReference;
                        if (reference != null) {
@@ -76,6 +81,12 @@
                        if (module != null)
                                return module.Types [type.FullName];
 
+                       // spouliot
+                       GenericParameter generic = (type as GenericParameter);
+                       if (generic != null) {
+                               return (generic.Owner as TypeReference).Resolve 
();
+                       }
+                       // spouliot
                        throw new NotImplementedException ();
                }
 
@@ -166,13 +177,12 @@
                                b = ((TypeSpecification) b).ElementType;
                        }
 
-                       if (a is GenericParameter || b is GenericParameter) {
+                       GenericParameter pa = (a as GenericParameter);
+                       GenericParameter pb = (b as GenericParameter);
+                       if ((pa != null) || (pb != null)) {
                                if (a.GetType () != b.GetType ())
                                        return false;
 
-                               GenericParameter pa = (GenericParameter) a;
-                               GenericParameter pb = (GenericParameter) b;
-
                                return pa.Position == pb.Position;
                        }
 

Modified: trunk/mono-tools/gendarme/framework/Gendarme.Framework/ChangeLog
===================================================================
--- trunk/mono-tools/gendarme/framework/Gendarme.Framework/ChangeLog    
2008-02-15 20:45:56 UTC (rev 95828)
+++ trunk/mono-tools/gendarme/framework/Gendarme.Framework/ChangeLog    
2008-02-15 20:47:35 UTC (rev 95829)
@@ -1,3 +1,9 @@
+2008-02-15  Sebastien Pouliot  <[EMAIL PROTECTED]>
+
+       * AssemblyResolver.cs: Handle GenericParameter.
+       * Runner.cs: Handle the case where Mono.Cecil.Mdb.dll is not
+       available.
+
 2008-02-15  Sebastien Pouliot  <[EMAIL PROTECTED]> 
 
        * Runner.cs: Expose CurrentRule and CurrentTarget

Modified: trunk/mono-tools/gendarme/framework/Gendarme.Framework/Runner.cs
===================================================================
--- trunk/mono-tools/gendarme/framework/Gendarme.Framework/Runner.cs    
2008-02-15 20:45:56 UTC (rev 95828)
+++ trunk/mono-tools/gendarme/framework/Gendarme.Framework/Runner.cs    
2008-02-15 20:47:35 UTC (rev 95829)
@@ -97,6 +97,9 @@
                                try {
                                        assembly.MainModule.LoadSymbols ();
                                }
+                               catch (TypeLoadException) {
+                                       // this happens if a Mono.Cecil.Mdb.dll 
is not found
+                               }
                                catch (COMException) {
                                        // this happens if a PDB is missing
                                }

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

Reply via email to