-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Open
Description
When updated BenchmarkDotNet version to v0.15.8.
Following analyzer error is raised by analyzer.
BDN1100: Attribute [GenericTypeArguments] can only be applied to a non-abstract class
As far as I've confirmed.
GenericTypeArguments can be specified on abstract class and it works as expected.
So I though this analyzer rule seems causing false-positive errors.
TestCode
// Need to disable BDN1100 with `#pragma warning disable BDN1100`
[GenericTypeArguments(typeof(int))] // ValueType
[GenericTypeArguments(typeof(string))] // ReferenceType
public abstract class EnumerableBenchmarkBase<T>
{
protected readonly Consumer Consumer = new Consumer();
protected IEnumerable<T> EnumerableItems { get; init; }
protected T[] ArrayItems { get; init; }
protected EnumerableBenchmarkBase()
{
// TODO: Fill dummy data
}
}
public class Benchmarks<T> : EnumerableBenchmarkBase<T>
{
[Benchmark]
public void ConsumeEnumerableData()
{
foreach (var item in EnumerableItems)
{
Consumer.Consume(item);
}
}
[Benchmark]
public void ConsumeArrayData()
{
foreach (var item in ArrayItems)
{
Consumer.Consume(item);
}
}
}Reactions are currently unavailable