dotnet/roslyn
Auf GitHub ansehenIDE0200 (remove unnecessary lambda expression) can change semantics when capturing writable members
Open
#73.259 geöffnet am 29. Apr. 2024
Area-IDEBugFeature - IDE0200help wanted
Repository-Metriken
- Stars
- (20.414 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (256 gemergte PRs in 30 T)
Beschreibung
Version Used:
Steps to Reproduce:
public class Test {
private List<int> _list = [1];
public bool N() {
var func = M();
_list = [2];
return func(2);
}
private Func<int, bool> M() {
return x => _list.Contains(x); // IDE0200
}
}
Diagnostic Id:
IDE0200
Expected Behavior: The code fix should not be offered. It changes the semantics.
Actual Behavior:
After applying the code fix, N returns false instead of true
I saw that this was fixed when capturing locals in #69101