dotnet/roslyn
Code fix for IDE0059 "Remove unnecessary assignment" removes empty lines or reorders code
Aperta
#45.421 aperta il 24 giu 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.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)