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