/*
TEST_OUTPUT:
---
fail_compilation/diag9358.d(13): Error: `x` must be of integral or string type, it is a `double`
fail_compilation/diag9358.d(15): Error: `case` expression must be a compile-time `string` or an integral constant, not `1.1`
fail_compilation/diag9358.d(16): Error: `case` expression must be a compile-time `string` or an integral constant, not `2.1`
fail_compilation/diag9358.d(26): Error: `case` expression must be a compile-time `string` or an integral constant, not `z`
---
*/
void main()
{
    double x;
    switch (x)
    {
        case 1.1: break;
        case 2.1: break;
        default:
    }
}
void f(immutable string y)
{
    auto z = y[0..2];
    switch (y)
    {
        case z: break;
        default:
    }
}