protected Rule(AssemblyCache cache, IReportViolations reporter, string checkID) { DBC.Pre(cache != null, "cache is null"); DBC.Pre(reporter != null, "reporter is null"); DBC.Pre(!string.IsNullOrEmpty(checkID), "checkID is null or empty"); Cache = cache; Reporter = reporter; CheckID = checkID; Runtime = TargetRuntime.NET_1_0; }
public UseFlagsAttributeRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1019") { long mask = 1; for (int i = 0; i < 63; ++i) { m_powers.Add(mask); mask = mask << 1; } m_powers.Add(mask); }
public NonLocalizedGuiRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "G1002") { m_enabled = Settings.Get("*localized*", "true") == "true"; Log.TraceLine(this, "enabled: {0}", m_enabled); string custom = Settings.Get("localize", string.Empty); foreach (string name in custom.Split(';')) { Log.TraceLine(this, "using custom: {0}", name); m_custom.Add(" " + name + "("); // add some goo so we match only what we should } }
public OperatorAlternativeRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1033") { m_table.Add("op_Addition", "Add"); m_table.Add("op_Subtraction", "Subtract"); m_table.Add("op_Multiply", "Multiply"); m_table.Add("op_Division", "Divide"); m_table.Add("op_Modulus", "Mod"); m_table.Add("op_GreaterThan", "Compare"); m_table.Add("op_GreaterThanOrEqual", "Compare"); m_table.Add("op_LessThan", "Compare"); m_table.Add("op_LessThanOrEqual", "Compare"); m_table.Add("op_Inequality", "Equals"); m_table.Add("op_Equality", "Equals"); }
public SpecialFolderRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "PO1003") { string user = Environment.UserName; Array values = Enum.GetValues(typeof(Environment.SpecialFolder)); foreach (object o in values) { Environment.SpecialFolder name = (Environment.SpecialFolder) o; string path = Environment.GetFolderPath(name); if (path.Length > 0) { path = path.Replace(user, "*"); if (!m_globs.ContainsKey(name)) m_globs.Add(name, path.Split(Path.DirectorySeparatorChar)); } } }
public SpecialFolderRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "PO1003") { string user = Environment.UserName; Array values = Enum.GetValues(typeof(Environment.SpecialFolder)); foreach (object o in values) { Environment.SpecialFolder name = (Environment.SpecialFolder)o; string path = Environment.GetFolderPath(name); if (path.Length > 0) { path = path.Replace(user, "*"); if (!m_globs.ContainsKey(name)) { m_globs.Add(name, path.Split(Path.DirectorySeparatorChar)); } } } }
public NoStaticRemoveRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "C1026") { // Collections.Generic m_adders.Add ("System.Collections.Generic.Dictionary`", new List<string>{"Add", "set_Item"}); m_removers.Add("System.Collections.Generic.Dictionary`", new List<string>{"Clear", "Remove"}); m_adders.Add ("System.Collections.Generic.HashSet`", new List<string>{"Add", "UnionWith"}); m_removers.Add("System.Collections.Generic.HashSet`", new List<string>{"Clear", "ExceptWith", "IntersectWith", "Remove", "RemoveWhere", "SymmetricExceptWith"}); m_adders.Add ("System.Collections.Generic.List`", new List<string>{"Add", "AddRange", "Insert", "InsertRange"}); m_removers.Add("System.Collections.Generic.List`", new List<string>{"Clear", "Remove", "RemoveAll", "RemoveAt", "RemoveRange"}); m_adders.Add ("System.Collections.Generic.Queue`", new List<string>{"Enqueue"}); m_removers.Add("System.Collections.Generic.Queue`", new List<string>{"Clear", "Dequeue"}); m_adders.Add ("System.Collections.Generic.SortedDictionary`", new List<string>{"Add", "set_Item"}); m_removers.Add("System.Collections.Generic.SortedDictionary`", new List<string>{"Clear", "Remove"}); m_adders.Add ("System.Collections.Generic.Stack`", new List<string>{"Push"}); m_removers.Add("System.Collections.Generic.Stack`", new List<string>{"Clear", "Pop"}); // Collections m_adders.Add ("System.Collections.ArrayList", new List<string>{"Add", "AddRange", "Insert", "InsertRange"}); m_removers.Add("System.Collections.ArrayList", new List<string>{"Clear", "Remove", "RemoveAt", "RemoveRange"}); m_adders.Add ("System.Collections.Hashtable", new List<string>{"Add", "set_Item"}); m_removers.Add("System.Collections.Hashtable", new List<string>{"Clear", "Remove"}); m_adders.Add ("System.Collections.Queue", new List<string>{"Enqueue"}); m_removers.Add("System.Collections.Queue", new List<string>{"Clear", "Dequeue"}); m_adders.Add ("System.Collections.SortedList", new List<string>{"Add", "set_Item"}); m_removers.Add("System.Collections.SortedList", new List<string>{"Clear", "Remove", "RemoveAt"}); }
// The checkID must match the id in the xml. Note that multiple classes can // share the same checkID. public PrivateNeedsDoRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "CU1000 - example custom rules") { }
public NoStaticRemoveRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "C1026") { // Collections.Generic m_adders.Add("System.Collections.Generic.Dictionary`", new List <string> { "Add", "set_Item" }); m_removers.Add("System.Collections.Generic.Dictionary`", new List <string> { "Clear", "Remove" }); m_adders.Add("System.Collections.Generic.HashSet`", new List <string> { "Add", "UnionWith" }); m_removers.Add("System.Collections.Generic.HashSet`", new List <string> { "Clear", "ExceptWith", "IntersectWith", "Remove", "RemoveWhere", "SymmetricExceptWith" }); m_adders.Add("System.Collections.Generic.List`", new List <string> { "Add", "AddRange", "Insert", "InsertRange" }); m_removers.Add("System.Collections.Generic.List`", new List <string> { "Clear", "Remove", "RemoveAll", "RemoveAt", "RemoveRange" }); m_adders.Add("System.Collections.Generic.Queue`", new List <string> { "Enqueue" }); m_removers.Add("System.Collections.Generic.Queue`", new List <string> { "Clear", "Dequeue" }); m_adders.Add("System.Collections.Generic.SortedDictionary`", new List <string> { "Add", "set_Item" }); m_removers.Add("System.Collections.Generic.SortedDictionary`", new List <string> { "Clear", "Remove" }); m_adders.Add("System.Collections.Generic.Stack`", new List <string> { "Push" }); m_removers.Add("System.Collections.Generic.Stack`", new List <string> { "Clear", "Pop" }); // Collections m_adders.Add("System.Collections.ArrayList", new List <string> { "Add", "AddRange", "Insert", "InsertRange" }); m_removers.Add("System.Collections.ArrayList", new List <string> { "Clear", "Remove", "RemoveAt", "RemoveRange" }); m_adders.Add("System.Collections.Hashtable", new List <string> { "Add", "set_Item" }); m_removers.Add("System.Collections.Hashtable", new List <string> { "Clear", "Remove" }); m_adders.Add("System.Collections.Queue", new List <string> { "Enqueue" }); m_removers.Add("System.Collections.Queue", new List <string> { "Clear", "Dequeue" }); m_adders.Add("System.Collections.SortedList", new List <string> { "Add", "set_Item" }); m_removers.Add("System.Collections.SortedList", new List <string> { "Clear", "Remove", "RemoveAt" }); }
protected abstract Rule OnCreate(AssemblyCache cache, IReportViolations reporter);
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new CollectionToStringRule(cache, reporter)); }
public TemplateMethodRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1043") { }
public BadExitRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1039") { }
public UnusedMethodRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1032") { }
public FinalizeableRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1066") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new NativeMethodsRule(cache, reporter)); }
public NullFieldRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "C1017") { }
public CastOpAlternativeRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1034") { }
public StringSpellingRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "C1000") { }
public ThrowDerivedRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "MS1012") { }
public SynchronizedAttributeRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "MS1015") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new OperatorAlternativeRule(cache, reporter)); }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new EventHandlerRule(cache, reporter); }
public DestroyStackTraceRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "MS1003") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new ObjectDisposedExceptionRule(cache, reporter)); }
public BaseSerializable1Rule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "R1017") { }
// This is inspired by the Gendarme rule authored by Lukasz Knop // although the code is completely different. public CompareFloatsRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "R1009") { }
public PropertyReturnsCollectionRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "P1022") { }
public RandomUsedOnceRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "R1021") { }
[DisableRule("C1000", "StringSpelling")] // ignore the weird hungarian strings public HungarianRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "MS1030") { }
public PreferredTermRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "MS1027") { }
public DerivedDisposeableRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1064") { }
public InvalidEnumFlagsRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "C1034") { }
public DllImportExtensionRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "PO1002") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new BoolMarshalingRule(cache, reporter)); }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new PublicAbstractCtorRule(cache, reporter); }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new ThreadNameRule(cache, reporter)); }
public MalformedFormatStringRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "C1002") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new EqualsRequiresNullCheckRule(cache, reporter)); }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new NetNamingRule(cache, reporter); }
public TempDirRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "PO1004") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new PreferMonitor1Rule(cache, reporter); }
public AvoidIsAliveRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "R1026") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new BaseDisposeableRule(cache, reporter); }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new SealedInheritanceDemandRule(cache, reporter); }
public AssemblyAttributeSpellingRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "C1020") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new OptionalSerializationRule(cache, reporter); }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new ImplementGenericCollectionRule(cache, reporter)); }
public TooManyArgsRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "D1047") { }
public AvoidUnboxingRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "P1004") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new GodClassRule(cache, reporter, 5); }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return new IntegerOverflowRule(cache, reporter); }
public RecursiveLock2Rule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "R1038") { }
protected override Rule OnCreate(AssemblyCache cache, IReportViolations reporter) { return(new TypedEnumeratorRule(cache, reporter)); }
public StringCompareRule(AssemblyCache cache, IReportViolations reporter) : base(cache, reporter, "P1015") { }