dotnet/roslyn
View on GitHubCode fix for IDE0059 "Remove unnecessary assignment" removes empty lines or reorders code
Open
#45,421 opened on Jun 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.6.2
Steps to Reproduce:
public class Test
{
public long M(bool flag)
{
long a = 0; // IDE0059
long b = 0; // IDE0059
long c = 0; // IDE0059
if (flag)
{
a = 1;
b = 1;
c = 1;
}
else
{
a = 2;
b = 2;
c = 2;
}
return a + b + c;
}
}
- Run "Remove unnecessary assignment" for
c - Run "Remove unnecessary assignment" for
b
Expected Behavior:
In both steps, the = 0 characters should be removed
long a = 0; // IDE0059
- long b = 0; // IDE0059
- long c = 0; // IDE0059
+ long b; // IDE0059
+ long c; // IDE0059
if (flag)
Actual Behavior:
After running "Remove unnecessary assignment" for c, the empty line below the declaration and the comment is also removed:
long a = 0; // IDE0059
long b = 0; // IDE0059
- long c = 0; // IDE0059
-
+ long c;
if (flag)
After then running "Remove unnecessary assignment" for b , the b and c declarations are reordered and the comment is removed:
long a = 0; // IDE0059
- long b = 0; // IDE0059
- long c = 0; // IDE0059
-
+ long c;
+ long b;
if (flag)