From cbc720e3e79c0842b534ebc4f0070eac875b7a8a Mon Sep 17 00:00:00 2001 From: Chris Chambers Date: Wed, 15 Feb 2012 11:01:24 +0800 Subject: Modify UseCorrectPrefixRule for to allow classes to begin with Is etc. This allows classes to begin with I rather than just I or I. This allows for classnames like InMemoryDoohicky --- gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs | 5 +++++ gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs b/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs index 7ac68802..70003407 100644 --- a/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs +++ b/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs @@ -54,6 +54,10 @@ namespace Test.Rules.Naming { public class ILRange { } + public class InMemoryDoohicky + { + } + public interface I { } @@ -102,6 +106,7 @@ namespace Test.Rules.Naming { AssertRuleFailure (1); AssertRuleFailure (1); AssertRuleSuccess (); + AssertRuleSuccess (); } [Test] diff --git a/gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs b/gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs index 83ce5ac4..03ff58cd 100644 --- a/gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs +++ b/gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs @@ -90,9 +90,9 @@ namespace Gendarme.Rules.Naming { return true; switch (name [0]) { - case 'C': // MFC like CMyClass - but works for CLSCompliant - case 'I': // interface-like - return Char.IsLower (name [1]) == Char.IsLower (name [2]); + case 'C': // MFC like CMyClass should fail - but works for CLSCompliant + case 'I': // interface-like - Classes beginning with In or Is etc should pass, e.g. InMemoryDoohicky + return Char.IsLower (name [1]) ? true : Char.IsUpper (name [2]); default: return true; } -- cgit v1.2.3