dotnet/roslyn
Auf GitHub ansehenIDE0059 is not raised inside a code block with using keyword.
Open
#74.219 geöffnet am 1. Juli 2024
Area-IDEBugFeature - IDE0059help wanted
Repository-Metriken
- Stars
- (20.414 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (256 gemergte PRs in 30 T)
Beschreibung
Version Used: SDK 8.0.302 (4.11.0-2.final
Steps to Reproduce:
Write the following code:
public class Sandbox
{
public void SimpleMethod()
{
using var _ = new MemoryStream();
var jsonContent = JsonSerializer.Deserialize<Json>((JsonDocument)null);
}
public class Json
{
}
}
The IDE0059 rule is not raised for the not used variable jsonContent.
But if we remove the using keyword:
public class Sandbox
{
public void SimpleMethod()
{
var _ = new MemoryStream();
var jsonContent = JsonSerializer.Deserialize<Json>((JsonDocument)null);
}
public class Json
{
}
}
The IDE0059 rule is raised to indicate that the jsonContent variable is not used.
We have the same issue if we use explicit code block for using keyword:
public class Sandbox
{
public void SimpleMethod()
{
using var _ = new MemoryStream();
{
var jsonContent = JsonSerializer.Deserialize<Json>((JsonDocument)null);
}
}
public class Json
{
}
}
Diagnostic Id: IDE0059: Remove unnecessary value assignment
Expected Behavior:
The IDE0059 rule should be raised when a local variable is not used, even if there is a non-related using code block.