module default_constructor_runme;

import default_constructor.G;

void main() {
  // D2 does not support something akin to D1/Tango dispose() for deterministic
  // destruction yet.

  // enforceThrows((){ scope g = new G(); }, "Protected destructor exception should have been thrown");
}

private void enforceThrows(void delegate() dg, string errorMessage) {
  bool hasThrown;
  try {
    dg();
  } catch (Exception) {
    hasThrown = true;
  } finally {
    if (!hasThrown) {
      throw new Exception(errorMessage);
    }
  }
}
