Author: spouliot
Date: 2008-01-19 12:26:28 -0500 (Sat, 19 Jan 2008)
New Revision: 93319
Modified:
trunk/cecil/gendarme/framework/Gendarme.Framework.Rocks/ChangeLog
trunk/cecil/gendarme/framework/Gendarme.Framework.Rocks/TypeRocks.cs
Log:
2008-01-19 Sebastien Pouliot <[EMAIL PROTECTED]>
* TypeRocks.cs: Handle nested types in IsGeneratedCode for all
framework versions.
Modified: trunk/cecil/gendarme/framework/Gendarme.Framework.Rocks/ChangeLog
===================================================================
--- trunk/cecil/gendarme/framework/Gendarme.Framework.Rocks/ChangeLog
2008-01-19 16:18:15 UTC (rev 93318)
+++ trunk/cecil/gendarme/framework/Gendarme.Framework.Rocks/ChangeLog
2008-01-19 17:26:28 UTC (rev 93319)
@@ -1,3 +1,8 @@
+2008-01-19 Sebastien Pouliot <[EMAIL PROTECTED]>
+
+ * TypeRocks.cs: Handle nested types in IsGeneratedCode for all
+ framework versions.
+
2008-01-18 Sebastien Pouliot <[EMAIL PROTECTED]>
* TypeRocks.cs: Add [Get|Has]Method rocks from Andreas Noever. Mark
Modified: trunk/cecil/gendarme/framework/Gendarme.Framework.Rocks/TypeRocks.cs
===================================================================
--- trunk/cecil/gendarme/framework/Gendarme.Framework.Rocks/TypeRocks.cs
2008-01-19 16:18:15 UTC (rev 93318)
+++ trunk/cecil/gendarme/framework/Gendarme.Framework.Rocks/TypeRocks.cs
2008-01-19 17:26:28 UTC (rev 93319)
@@ -318,26 +318,22 @@
/// False otherwise (e.g. compiler or tool generated)</returns>
public static bool IsGeneratedCode (this TypeReference self)
{
+ // both helpful attributes only exists in 2.0 and more
recent frameworks
if (self.Module.Assembly.Runtime >=
TargetRuntime.NET_2_0) {
if (self.CustomAttributes.ContainsAnyType
(CustomAttributeRocks.GeneratedCodeAttributes))
return true;
-
- TypeReference type = self;
- while (type.IsNested) {
- if
(type.CustomAttributes.ContainsAnyType
(CustomAttributeRocks.GeneratedCodeAttributes))
- return true;
- type = type.DeclaringType;
- }
- return false;
} else {
switch (self.Name [0]) {
case '<': // e.g. <PrivateImplementationDetails>
case '$': // e.g. $ArrayType$1 nested inside
<PrivateImplementationDetails>
return true;
- default:
- return false;
}
}
+
+ // the type could be nested (inside a generated one)
and not marked itself
+ if (self.IsNested)
+ return self.DeclaringType.IsGeneratedCode ();
+ return false;
}
/// <summary>
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches