http://d.puremagic.com/issues/show_bug.cgi?id=6226

           Summary: Switch with impossible cases
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: diagnostic
          Severity: enhancement
          Priority: P2
         Component: DMD
        AssignedTo: nob...@puremagic.com
        ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2011-06-29 17:05:15 PDT ---
In the following code the cases 400 and 200 can't happen, because they are
ouside the values range of char and byte. I suggest to raise a warning in such
cases (this compiles with no errors on DMD 2.053):


void main() {
    char c;
    switch (c) {
        case 'a': break;
        case 400: break;
        default:
    }
    byte x;
    switch (x) {
        case 10: break;
        case 200: break;
        default:
    }
}


See here for real world bug cases:
http://www.viva64.com/en/d/0142/


This too generates no errors, but I think this is less often a bug:

void main() {
    char c;
    if (c == 400) {}
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to