From 02c669f235c5baea24608166af91c1918f875e6c Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 6 Jun 2010 01:12:03 +0000 Subject: 2010-06-05 Sebastien Pouliot * FieldRock.cs: Check if a field's type is generated code (CSC does that) and report this correctly (fix some false positive on CSC compiled code, e.g. for WriteStaticFieldFromInstanceMethodRule) svn path=/trunk/mono-tools/; revision=158554 --- gendarme/framework/Gendarme.Framework.Rocks/ChangeLog | 6 ++++++ gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gendarme/framework/Gendarme.Framework.Rocks/ChangeLog b/gendarme/framework/Gendarme.Framework.Rocks/ChangeLog index 90f73f99..83398f83 100644 --- a/gendarme/framework/Gendarme.Framework.Rocks/ChangeLog +++ b/gendarme/framework/Gendarme.Framework.Rocks/ChangeLog @@ -1,3 +1,9 @@ +2010-06-05 Sebastien Pouliot + + * FieldRock.cs: Check if a field's type is generated code (CSC + does that) and report this correctly (fix some false positive + on CSC compiled code, e.g. for WriteStaticFieldFromInstanceMethodRule) + 2010-06-05 Sebastien Pouliot * CecilRock.cs: Add a faster path (without multiple casting) for diff --git a/gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs index e345d8ab..39641f50 100644 --- a/gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs +++ b/gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs @@ -46,10 +46,14 @@ namespace Gendarme.Framework.Rocks { return false; FieldDefinition field = self.Resolve (); - if ((field == null) || !field.HasCustomAttributes) + if (field == null) return false; - return field.CustomAttributes.ContainsAnyType (CustomAttributeRocks.GeneratedCodeAttributes); + if (field.HasCustomAttributes) { + if (field.CustomAttributes.ContainsAnyType (CustomAttributeRocks.GeneratedCodeAttributes)) + return true; + } + return field.DeclaringType.IsGeneratedCode (); } /// -- cgit v1.2.3