dotnet/roslyn
IDE0059 incorrectly reported when a scoped variable is introduced.
Ouverte
#41 905 ouverte le 24 févr. 2020
Area-IDEBugFeature - IDE0059help wanted
Métriques du dépôt
- Stars
- (20 414 étoiles)
- Métriques de merge PR
- (Merge moyen 6j 17h) (256 PRs mergées en 30 j)
Description
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...