dotnet/roslyn

IDE0016 codefix can change behaviour

Open

#36,177 opened on 2019年6月5日

GitHub で見る
 (13 comments) (0 reactions) (0 assignees)C# (20,414 stars) (4,257 forks)batch import
Area-AnalyzersBugFeature - IDE0016help wanted

説明

Version Used: 16.1.1+28922.388

Steps to Reproduce:

object _o;
bool _b;
void M(object o)
{
    if (o == null)
        throw new ArgumentNullException(nameof(o));
    _b = true;
    _o = o;
}

IDE0016 fires and wants to change the code to:

object _o;
bool _b;
void M(object o)
{
    _b = true;
    _o = o ?? throw new ArgumentNullException(nameof(o));
}

Expected Behavior:

No change in behaviour.

Actual Behavior:

Potential change in behaviour due to throw being moved after side effecty code.

コントリビューターガイド