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

`RCS1250` Applies collection-expression fixer when properties are set.

RenderMichael opened this issue · comments

Product and Version Used:

4.10.0

Steps to Reproduce:

internal sealed class EnumerableClass : IEnumerable<int>
{
    public string? Prop { get; set; }

    public IEnumerator<int> GetEnumerator() => throw new NotImplementedException();

    IEnumerator IEnumerable.GetEnumerator() => throw new NotImplementedException();
}

static EnumerableClass MakeClass()
{
    EnumerableClass x = new()
    {
        Prop = "abc", // RCS1250: Simplify object creation
    };

    return x;
}

Actual Behavior:
Apply fixer:

internal sealed class EnumerableClass : IEnumerable<int>
{
    public string? Prop { get; set; }

    public IEnumerator<int> GetEnumerator() => throw new NotImplementedException();

    IEnumerator IEnumerable.GetEnumerator() => throw new NotImplementedException();
}

static EnumerableClass MakeClass()
{
    EnumerableClass x = [
        Prop = "abc", // does not compile
    ];

    return x;
}

Expected Behavior:

Cannot simplify to a collection expression when a property is set.