On 02/25/2013 08:36 PM, H. S. Teoh wrote:
Why does D require that in-contracts on a class method must have a method body? Based on my understanding of TDPL, in-contracts are supposed to be inherited by derived classes, aren't they? Currently I can't seem to convince DMD to accept an in-contract on an abstract base class method:abstract class Base { abstract int method(int j) in { assert(j < 10); }; // <-- compile error } What's the rationale for this? Doesn't it defeat the purpose of DbC (I want the abstract base class to "set the rules" as to what are acceptable parameters to methods)? ...
http://d.puremagic.com/issues/show_bug.cgi?id=6549 Even more annoying is the following issue: http://d.puremagic.com/issues/show_bug.cgi?id=6856
