dotnet/roslyn
"Redundant assignment" analysis does not consider recursive code path
开放
#47,655 创建于 2020年9月12日
Area-IDEBughelp wanted
仓库指标
- 星标
- (20,414 个星标)
- PR 合并指标
- (平均合并 6天 17小时) (30 天内合并 256 个 PR)
描述
Version Used: VS 2019 16.7.3
Steps to Reproduce:
- Create new .NET Core console app.
- Paste the following code.
static void Foo(Exception ex)
{
var indentLevel = 0;
void Bar(Exception e)
{
indentLevel++;
if (indentLevel < 5)
Bar(e);
indentLevel--;
}
Bar(ex);
}
Expected Behavior: No analysis complaints
Actual Behavior:
VS claims that indentLevel-- is a redundant assignment.
This is true for the top level call to Bar but not true for the recursive calls that reference the same indentLevel variable.