dotnet/roslyn
View on GitHubIDE0059 incorrectly reported when a scoped variable is introduced.
Open
#41,905 opened on Feb 24, 2020
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: 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...