diff options
author | Sebastien Pouliot <sebastien@ximian.com> | 2010-06-05 06:20:53 +0400 |
---|---|---|
committer | Sebastien Pouliot <sebastien@ximian.com> | 2010-06-05 06:20:53 +0400 |
commit | 83391b97cf1aa88de4377c1822f0e503f3f77fc3 (patch) | |
tree | 41df0731f324084ba8cdb83701e983a33cc8e4ea /gendarme/rules/Gendarme.Rules.Smells | |
parent | 5ffd375c93731e32155e8b0c17aa5f37905c5a07 (diff) |
2010-06-04 Sebastien Pouliot <sebastien@ximian.com>
* AvoidCodeDuplicatedInSiblingClassesRule.cs:
* AvoidLargeClassesRule.cs:
* AvoidLongParameterListsRule.cs:
* CodeDuplicatedLocator.cs:
Apply AvoidUnnecessarySpecializationRule
* Pattern.cs:
Apply ConsiderConvertingMethodToPropertyRule
svn path=/trunk/mono-tools/; revision=158515
Diffstat (limited to 'gendarme/rules/Gendarme.Rules.Smells')
6 files changed, 33 insertions, 24 deletions
diff --git a/gendarme/rules/Gendarme.Rules.Smells/AvoidCodeDuplicatedInSiblingClassesRule.cs b/gendarme/rules/Gendarme.Rules.Smells/AvoidCodeDuplicatedInSiblingClassesRule.cs index 1bb8991d..21ce5cbc 100644 --- a/gendarme/rules/Gendarme.Rules.Smells/AvoidCodeDuplicatedInSiblingClassesRule.cs +++ b/gendarme/rules/Gendarme.Rules.Smells/AvoidCodeDuplicatedInSiblingClassesRule.cs @@ -109,7 +109,7 @@ namespace Gendarme.Rules.Smells { codeDuplicatedLocator = new CodeDuplicatedLocator (this); } - private void FindCodeDuplicated (TypeDefinition type, ICollection<TypeDefinition> siblingClasses) + private void FindCodeDuplicated (TypeReference type, ICollection<TypeDefinition> siblingClasses) { foreach (MethodDefinition method in type.AllMethods ()) foreach (TypeDefinition sibling in siblingClasses) diff --git a/gendarme/rules/Gendarme.Rules.Smells/AvoidLargeClassesRule.cs b/gendarme/rules/Gendarme.Rules.Smells/AvoidLargeClassesRule.cs index dd7cb8fd..3f6fd6f2 100644 --- a/gendarme/rules/Gendarme.Rules.Smells/AvoidLargeClassesRule.cs +++ b/gendarme/rules/Gendarme.Rules.Smells/AvoidLargeClassesRule.cs @@ -151,7 +151,7 @@ namespace Gendarme.Rules.Smells { return -1; } - private static string GetFieldPrefix (FieldDefinition field) + private static string GetFieldPrefix (IMemberReference field) { string name = field.Name; int index = GetIndexOfFirst (name, delegate (char character) {return Char.IsNumber (character);}); diff --git a/gendarme/rules/Gendarme.Rules.Smells/AvoidLongParameterListsRule.cs b/gendarme/rules/Gendarme.Rules.Smells/AvoidLongParameterListsRule.cs index 4ac6df1e..593efa9b 100644 --- a/gendarme/rules/Gendarme.Rules.Smells/AvoidLongParameterListsRule.cs +++ b/gendarme/rules/Gendarme.Rules.Smells/AvoidLongParameterListsRule.cs @@ -122,7 +122,7 @@ namespace Gendarme.Rules.Smells { return smallest; } - private bool HasMoreParametersThanAllowed (MethodDefinition method) + private bool HasMoreParametersThanAllowed (IMethodSignature method) { return (method.HasParameters ? method.Parameters.Count : 0) >= MaxParameters; } diff --git a/gendarme/rules/Gendarme.Rules.Smells/ChangeLog b/gendarme/rules/Gendarme.Rules.Smells/ChangeLog index fbaf6f1c..f022cd5f 100644 --- a/gendarme/rules/Gendarme.Rules.Smells/ChangeLog +++ b/gendarme/rules/Gendarme.Rules.Smells/ChangeLog @@ -1,3 +1,13 @@ +2010-06-04 Sebastien Pouliot <sebastien@ximian.com> + + * AvoidCodeDuplicatedInSiblingClassesRule.cs: + * AvoidLargeClassesRule.cs: + * AvoidLongParameterListsRule.cs: + * CodeDuplicatedLocator.cs: + Apply AvoidUnnecessarySpecializationRule + * Pattern.cs: + Apply ConsiderConvertingMethodToPropertyRule + 2010-05-08 Sebastien Pouliot <sebastien@ximian.com> * AvoidLongParameterListsRule.cs: Apply AvoidRepetitiveCallsTo diff --git a/gendarme/rules/Gendarme.Rules.Smells/CodeDuplicatedLocator.cs b/gendarme/rules/Gendarme.Rules.Smells/CodeDuplicatedLocator.cs index 0085166a..112f5727 100644 --- a/gendarme/rules/Gendarme.Rules.Smells/CodeDuplicatedLocator.cs +++ b/gendarme/rules/Gendarme.Rules.Smells/CodeDuplicatedLocator.cs @@ -67,7 +67,7 @@ namespace Gendarme.Rules.Smells { types.Clear (); } - internal void CompareMethodAgainstTypeMethods (MethodDefinition current, TypeDefinition targetType) + internal void CompareMethodAgainstTypeMethods (MethodDefinition current, TypeReference targetType) { if (CheckedTypes.Contains (targetType.Name)) return; diff --git a/gendarme/rules/Gendarme.Rules.Smells/Pattern.cs b/gendarme/rules/Gendarme.Rules.Smells/Pattern.cs index f7915e6e..af7634b3 100644 --- a/gendarme/rules/Gendarme.Rules.Smells/Pattern.cs +++ b/gendarme/rules/Gendarme.Rules.Smells/Pattern.cs @@ -74,12 +74,11 @@ namespace Gendarme.Rules.Smells { } // IIRC older xMCS generated that quite often - bool IsDoubleReturn () - { - return Count > 1 && - instructions[Count - 1].OpCode.Code == Code.Ret && - instructions[Count - 2].OpCode.Code == Code.Ret - ; + bool IsDoubleReturn { + get { + return ((Count > 1) && (instructions[Count - 1].OpCode.Code == Code.Ret) && + (instructions[Count - 2].OpCode.Code == Code.Ret)); + } } // small patterns that highly suggest they were compiler generated @@ -103,29 +102,29 @@ namespace Gendarme.Rules.Smells { internal bool IsCompilerGeneratedBlock { get { if (compilerGeneratedBlock == null) - compilerGeneratedBlock = ComputeUnlikelyUserPatterns () || IsDoubleReturn (); + compilerGeneratedBlock = ComputeUnlikelyUserPatterns () || IsDoubleReturn; return (bool) compilerGeneratedBlock; } } - bool IsReturningCode () - { - return ((Count == 4 && - instructions[0].OpCode.StackBehaviourPush == StackBehaviour.Push1 && - instructions[1].OpCode.Code == Code.Brtrue && - instructions[2].OpCode.StackBehaviourPush == StackBehaviour.Pushi && - instructions[3].OpCode.Code == Code.Ret) - || - (Count > 1 && - instructions[Count - 1].OpCode.Code == Code.Ret && - instructions[Count - 2].OpCode.FlowControl == FlowControl.Cond_Branch)) - ; + bool IsReturningCode { + get { + return ((Count == 4 && + instructions[0].OpCode.StackBehaviourPush == StackBehaviour.Push1 && + instructions[1].OpCode.Code == Code.Brtrue && + instructions[2].OpCode.StackBehaviourPush == StackBehaviour.Pushi && + instructions[3].OpCode.Code == Code.Ret) + || + (Count > 1 && + instructions[Count - 1].OpCode.Code == Code.Ret && + instructions[Count - 2].OpCode.FlowControl == FlowControl.Cond_Branch)); + } } internal bool IsExtractableToMethodBlock { get { if (extractableToMethodBlock == null) - extractableToMethodBlock = !IsReturningCode (); + extractableToMethodBlock = !IsReturningCode; return (bool) extractableToMethodBlock; } } |