I agree with most parts and this pretty much fits my unhappy experience of trying to use D assert/contract system. However I don't feel like contracts and plain assertions should throw different kinds of exceptions - it allows to distinguish some cases but does not solve the problem in general. And those are essentially the same tools so having same exception types make sense.

Different compilation versions sound more suitable but that creates usual distribution problems with exponential version explosion.

Reply via email to