dotnet/roslyn

Incorrect IDE0059 in a local function : Unnecessary assignment of a value

Open

#58,407 opened on Dec 18, 2021

View on GitHub
 (1 comment) (1 reaction) (0 assignees)C# (4,257 forks)batch import
Area-IDEBugFeature - IDE0059help wanted

Repository metrics

Stars
 (20,414 stars)
PR merge metrics
 (Avg merge 6d 17h) (256 merged PRs in 30d)

Description

Version Used: dotnet 6.0.100 can also repro on master 9f8250964a72d53efe2d04fc0b2b07a48f04a45c via SharpLab (main Roslyn branch)

Steps to Reproduce:

public class C {
    public int M() {
        int i = 0;
        int Recurse()
        {
            if(i > 10) return i;
            i += 1;
            var a = Recurse();
            i += 1;
            var b = Recurse();
            i += 1;  // <<<<<<<<<<< IDE0059 ON THIS LINE
            return a + b;
        }
        return Recurse();
    }
}

Expected Behavior: No IDE0059 Actual Behavior: IDE0059 suggesting the line should be removed. Calling the function before removing the line returns 253 Calling the function after removing the line returns 198

Contributor guide