dotnet/roslyn

Cascaded diagnostic when label not found.

Open

#5.243 aberto em 15 de set. de 2015

Ver no GitHub
 (0 comments) (1 reaction) (1 assignee)C# (4.257 forks)batch import
Area-CompilersBugConcept-Diagnostic ClarityLanguage-C#help wanted

Métricas do repositório

Stars
 (20.414 stars)
Métricas de merge de PR
 (Mesclagem média 6d 17h) (256 fundiu PRs em 30d)

Description

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"
    }
}

Guia do colaborador