| /* |
| 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: |
| } |
| } |