Skip to content

Analysers should ignore code with [GeneratedCode] attribute #26

Open

Description

@afscrome

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);
        }

Activity

  1. DustinCampbell commented on Aug 25, 2015

    @DustinCampbell
    Owner

    Great suggestion!

  2. DustinCampbell commented on Aug 25, 2015

    @DustinCampbell
    Owner

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

  3. afscrome commented on Aug 25, 2015

    @afscrome
    Author

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions