dotnet/roslyn
IDE0059 incorrectly reported when a scoped variable is introduced.
Aperta
#41.905 aperta il 24 feb 2020
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: 16.4.5
The following program triggers the bug. The code attempt += 1; is reported as unneeded which is incorrect.
using System;
class X
{
public X() { }
public X( int value ) => Value = value;
public int Value { get; set; }
}
class Program
{
static object Execute( X x ) => throw new NotImplementedException();
static object Run()
{
var attempt = 1;
while ( true )
{
try
{
var result = Execute( new X
{
Value = 1
} );
return result;
}
catch when ( attempt <= 5 ) { }
attempt += 1;
}
}
}
A few minor changes to the program eliminate the issue:
- Do not use property initializers for
new X()-Execute( new X( 1 ) ) - Do not introduce the local
resultand instead justreturn Execute...