dotnet / roslynator

Roslynator is a set of code analysis tools for C#, powered by Roslyn.

Home Page:https://josefpihrt.github.io/docs/roslynator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

bug(RCS1246): does not fire when a List has been inherited

dylanvdmerwe opened this issue · comments

Product and Version Used:

  <ItemGroup>
    <PackageReference Include="roslynator.analyzers" Version="4.12.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="roslynator.formatting.analyzers" Version="4.12.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

Steps to Reproduce:
Correct when using a list directly.

            List<int> i = new();
            int x = i.First(); // RCS1246 recommends to use [0]

However create a class that inherits from List, and the optimizer does not fire.

TestCollection s  = ["one", "two", "three", "four", "five"];
var x = s.First(); // does not recommend to [0] here, but it should

    public class TestCollection : List<string>
    {

    }

Often clients in enterprise environments inherit from List, IList to create their own collections with helper methods in.