CSharpEssentials icon indicating copy to clipboard operation
CSharpEssentials copied to clipboard

Analysers should ignore code with [GeneratedCode] attribute

Open afscrome opened this issue 9 years ago • 3 comments

The diagnostics should ignore any code in classes/methods decorated with System.CodeDom.Compiler.GeneratedCodeAttribute.

The following two tests demonstrate this issue. I had a look through the code to see if I can fix it, found the Extensions.IsGeneratedcode method, but got stuck past that as I'm not sure how to determine if the node being analysed is in the context of a GeneratedCode attribute.

        [Test]
        public void VerifyNotAvailableInClassWithGeneratedCodeAttribute()
        {
            const string code = @"
using System;
[System.CodeDom.Compiler.GeneratedCode()]
class C
{
    void M(int x)
    {
        throw new ArgumentNullException(""x"");
    }
}";

            NoDiagnostic(code, DiagnosticIds.UseNameOf);
        }

        [Test]
        public void VerifyNotAvailableInMethodWithGeneratedCodeAttribute()
        {
            const string code = @"
using System;
class C
{
    [System.CodeDom.Compiler.GeneratedCode()]
    void M(int x)
    {
        throw new ArgumentNullException(""x"");
    }
}";

            NoDiagnostic(code, DiagnosticIds.UseNameOf);
        }

afscrome avatar Aug 10 '15 11:08 afscrome

Great suggestion!

DustinCampbell avatar Aug 25 '15 19:08 DustinCampbell

I've submitted PR #31 to consider files containing comment headers with as generated code. Would this address your particular scenario?

DustinCampbell avatar Aug 25 '15 21:08 DustinCampbell

That would address my scenario. I have however been looking at this myself and came up with a way of using the attribute itself which I've submitted in PR #33.

afscrome avatar Aug 25 '15 22:08 afscrome