BUG Convert to Linq-expression does incorrect transform
Initial code:
var count=0;
for(var i=0; i<5; i++) {
foreach(var q in new[] { "aaa", "bbb", "ccc", "ddd" }) {
count+=(i.ToString() + q).Length;
}
}
Console.WriteLine("count is "+count);
Click anywhere inside the "foreach" word.
When the lightbulb popup appears, select "Convert to Linq-expression"
Result code:
var count=0;
for(var i=0; i<5; i++) {
count=new[] {"aaa", "bbb", "ccc", "ddd"}.Sum(q => (i.ToString()+q).Length);
}
Console.WriteLine("count is "+count);
The new code replaces the value of count in each for-loop iteration rather than accumulating across iterations.
I've confirmed the bug in Resharper 5.0.1659.36 on Visual Studio 10.0.30319.1.
Thanks
Please sign in to leave a comment.
Hello Naju,
Thank you very much for reporting! This bug will be fixed in the upcoming
ReSharper 6.0. You can already get the nightly builds at http://confluence.jetbrains.net/display/ReSharper/ReSharper6.0Nightly+Builds.
Andrey Serebryansky
Senior Support Engineer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"