dotnet/roslyn

Analyzer Improvement for IDE0059

Open

#55,960 opened on Aug 27, 2021

 (2 comments) (0 reactions) (0 assignees)C# (4,257 forks)batch import
Area-IDEFeature - IDE0059help wanted

Repository metrics

Stars
 (20,414 stars)
PR merge metrics
 (Avg merge 6d 17h) (256 merged PRs in 30d)

Description

Brief description: The following two variable declarations are equivalent and only vary based on coding style:

a? ret;

if(Condition){
  ret = new a(){ ... };
} else {
  ret = new a(){ ... };
}

AND

var ret = default(a?);

if(Condition){
  ret = new a(){ ... };
} else {
  ret = new a(){ ... };
}

Today, IDE0059 triggers if a variable is initialized with any value and then later reassigned. I suggest updating IDE0059 to trigger only if a variable is initialized to a non-default value and then later reassigned.

Languages applicable: C# any maybe VB.

Code example that the analyzer SHOULD report: Needlessly initializing to a non-default value.

Code example that the analyzer not report: See above

Contributor guide