dotnet/roslyn

Cascaded diagnostic when label not found.

開放

#5,243 建立於 2015年9月15日

 (0 則留言) (1 個反應) (1 位負責人)C# (4,257 個分叉)batch import
Area-CompilersBugConcept-Diagnostic ClarityLanguage-C#help wanted

倉庫指標

星標
 (20,414 顆星)
PR 合併指標
 (平均合併 6天 17小時) (30 天內合併 256 個 PR)

描述

Here are some examples demonstrating that flow analysis reports redundant errors when labels are not found. In each case the compiler reports that a label was not found, but then also reports a reachability error that would not be an error if a label had been found. The later error should be suppressed.

class Program
{
    static void Main(string[] args)
    {
        int s = 23;
        switch (s)
        {
            case 21:
                goto case 1;
                // redundant error "Control cannot fall through from one case label ('case 21:') to another
            case 23:
                goto default;
                // redundant error "Control cannot fall out of switch from final case label ('case 23:')"
        }
    }

    static int M()
    {
        goto foo;
        // redundant error "not all code paths return a value"
    }
}

貢獻者指南