CSharpEssentials
CSharpEssentials copied to clipboard
Analysers should ignore code with [GeneratedCode] attribute
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);
}
Great suggestion!
I've submitted PR #31 to consider files containing comment headers with
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.