Author: spouliot
Date: 2008-02-16 16:11:59 -0500 (Sat, 16 Feb 2008)
New Revision: 95928
Modified:
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/AvoidCodeDuplicatedInSameClassRule.cs
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/ChangeLog
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/Expression.cs
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/ExpressionFillerVisitor.cs
Log:
2008-02-16 Sebastien Pouliot <[EMAIL PROTECTED]>
* AvoidCodeDuplicatedInSameClassRule.cs: Ignore rule on generated
code (e.g. C# compiler generates some duplication for anonymous
methods).
* Expression.cs: Fix some parameters to match base class.
* ExpressionFillerVisitor.cs: Fix some parameters to match base class.
Modified:
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/AvoidCodeDuplicatedInSameClassRule.cs
===================================================================
---
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/AvoidCodeDuplicatedInSameClassRule.cs
2008-02-16 21:09:12 UTC (rev 95927)
+++
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/AvoidCodeDuplicatedInSameClassRule.cs
2008-02-16 21:11:59 UTC (rev 95928)
@@ -30,14 +30,20 @@
using Mono.Cecil;
using Gendarme.Framework;
+using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Smells {
[Problem ("There are same code structure in various methods in the same
class. Your code will be better if you can unify them.")]
[Solution ("You should apply the Extract Method refactoring and invoke
the method from the places.")]
public class AvoidCodeDuplicatedInSameClassRule : Rule, ITypeRule {
+
public RuleResult CheckType (TypeDefinition type)
{
+ // ignore code generated by compiler/tools, since they
can generate some amount of duplicated code
+ if (type.IsGeneratedCode ())
+ return RuleResult.DoesNotApply;
+
CodeDuplicatedLocator locator = new
CodeDuplicatedLocator ();
foreach (MethodDefinition current in type.Methods) {
locator.CompareMethodAgainstTypeMethods (this,
current, type);
Modified: trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/ChangeLog
===================================================================
--- trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/ChangeLog
2008-02-16 21:09:12 UTC (rev 95927)
+++ trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/ChangeLog
2008-02-16 21:11:59 UTC (rev 95928)
@@ -1,3 +1,11 @@
+2008-02-16 Sebastien Pouliot <[EMAIL PROTECTED]>
+
+ * AvoidCodeDuplicatedInSameClassRule.cs: Ignore rule on generated
+ code (e.g. C# compiler generates some duplication for anonymous
+ methods).
+ * Expression.cs: Fix some parameters to match base class.
+ * ExpressionFillerVisitor.cs: Fix some parameters to match base class.
+
2008-02-16 Sebastien Pouliot <[EMAIL PROTECTED]>
* AvoidLongMethodsRule.cs: Display actual and maximum IL instruction
Modified: trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/Expression.cs
===================================================================
--- trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/Expression.cs
2008-02-16 21:09:12 UTC (rev 95927)
+++ trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/Expression.cs
2008-02-16 21:11:59 UTC (rev 95928)
@@ -58,14 +58,14 @@
throw new ArgumentException ("You should use
this class with Mono.Cecil.Cil.Instruction", "value");
}
- public override bool Equals (object value)
+ public override bool Equals (object obj)
{
- if (!(value is Expression))
+ if (!(obj is Expression))
throw new ArgumentException ("The value
argument should be an Expression", "value");
- if (value == null)
+ if (obj == null)
return false;
- Expression targetExpression = (Expression) value;
+ Expression targetExpression = (Expression) obj;
if (HasSameSize (targetExpression))
return CompareInstructionsInOrder
(targetExpression);
Modified:
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/ExpressionFillerVisitor.cs
===================================================================
---
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/ExpressionFillerVisitor.cs
2008-02-16 21:09:12 UTC (rev 95927)
+++
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Smells/ExpressionFillerVisitor.cs
2008-02-16 21:11:59 UTC (rev 95928)
@@ -39,7 +39,7 @@
public ExpressionFillerVisitor () : base () {}
- public override void VisitMethodBody (MethodBody methodBody)
+ public override void VisitMethodBody (MethodBody body)
{
expressionContainer = new ArrayList ();
currentExpression = null;
@@ -81,9 +81,9 @@
currentExpression.Add (instruction);
}
- public override void VisitInstructionCollection
(InstructionCollection instructionCollection)
+ public override void VisitInstructionCollection
(InstructionCollection instructions)
{
- foreach (Instruction instruction in
instructionCollection) {
+ foreach (Instruction instruction in instructions) {
if (IsDelimiter (instruction))
CreateExpressionAndAddToExpressionContainer ();
if (IsAcceptable (instruction))
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches