diff options
author | Sebastien Pouliot <sebastien@ximian.com> | 2010-06-06 05:12:03 +0400 |
---|---|---|
committer | Sebastien Pouliot <sebastien@ximian.com> | 2010-06-06 05:12:03 +0400 |
commit | 02c669f235c5baea24608166af91c1918f875e6c (patch) | |
tree | dd879e6f40b17a32dc4f59ab7220ff8ecd0579ba | |
parent | ea343244516d856ff4cf69f24ff8b05b316e28d0 (diff) |
2010-06-05 Sebastien Pouliot <sebastien@ximian.com> jb/cl
* 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
-rw-r--r-- | gendarme/framework/Gendarme.Framework.Rocks/ChangeLog | 6 | ||||
-rw-r--r-- | 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 <sebastien@ximian.com> + + * 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 <sebastien@ximian.com> * 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 (); } /// <summary> |