statement is not reachable

Qian Xu quian.xu at
Thu Mar 5 00:17:08 PST 2009

Hi All,

I have got a warning by compiling ("gdc file -Wall") the following code
module unreachable;
class Foo {
  this(int i) {}
  this(char[] s) {}
  this(char[] s, int flag) {
    if (flag == 1)
    else if (flag == 2)
    throw new Exception("unhandled case");
    this(0); // fake
void main()
  Foo foo = new Foo("world", 1);
  assert(false, "END");

The warning is: "statement is not reachable"

If I use switch-case-statment, I can see even an error message:
"constructor calls not allowed in loops or after labels"

So, is my design incorrect, or is the compiler too strict?

--Qian Xu

More information about the Digitalmars-d-learn mailing list