dotnet/roslyn

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

Aperta

#58.407 aperta il 18 dic 2021

 (1 commento) (1 reazione) (0 assegnatari)C# (4257 fork)batch import
Area-IDEBugFeature - IDE0059help wanted

Metriche repository

Star
 (20.414 stelle)
Metriche merge PR
 (Merge medio 6g 17h) (256 PR mergiate in 30 g)

Descrizione

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

Guida contributor