[Issue 5714] case ranges in final switches

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jul 2 16:00:23 UTC 2024


https://issues.dlang.org/show_bug.cgi?id=5714

Bolpat <qs.il.paperinik at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |qs.il.paperinik at gmail.com

--- Comment #5 from Bolpat <qs.il.paperinik at gmail.com> ---
The limitation of the number of `case` labels is entirely orthogonal to
allowing case ranges for `final switch`, as the ranges are just syntactic sugar
for writing them out.

This errors:
---
void main()
{
    ubyte u;
    final switch (u)
    {
        case   0: .. case 100: break;
        case 101: .. case 255: break;
    }
}
---

This is fine:
---
void main() {
    ubyte u;
    Lswitch: final switch (u)
    {
        static foreach (i; 0 .. 100 + 1)
        {
            case i: break Lswitch;
        }
        static foreach (i; 101 .. 255 + 1)
        {
            case i: break Lswitch;
        }
    }
}
---

The error makes no sense. It might have made sense in 2011, but in 2024, it
just requires some boilerplate to work.

--


More information about the Digitalmars-d-bugs mailing list