Skip to content

Gendarme.Rules.Gendarme.MissingEngineDependencyRule(git)

Sebastien Pouliot edited this page Mar 2, 2011 · 1 revision

MissingEngineDependencyRule

Assembly: Gendarme.Rules.Gendarme
Version: git

Description

Rules should not use engines' features without subscribing to them using EngineDependency attribute because it will not work unless another rule has subscribed to the same engine.

Examples

Bad example:

class BadRule : Rule, IMethodRule {
    public RuleResult CheckMethod (MethodDefinition method)
    {
        if (!OpCodeBitmask.Calls.Intersect (OpCodeEngine.GetBitmask (method)))
        return RuleResult.DoesNotApply;
        // rule code
    }
}

Good example:

[EngineDependency (typeof (OpCodeEngine))]
class BadRule : Rule, IMethodRule {
    public RuleResult CheckMethod (MethodDefinition method)
    {
        if (!OpCodeBitmask.Calls.Intersect (OpCodeEngine.GetBitmask (method)))
        return RuleResult.DoesNotApply;
        // rule code
    }
}

Source code

You can browse the latest source code of this rule on github.com

Clone this wiki locally