May 15, 2013 abstract class member functions can not have contracts | ||||
---|---|---|---|---|
| ||||
Interface member functions can have in/out contracts but why abstract class member functions can not? abstract class Base { @property int field(); void foo() in { assert(field > 0); } // Error: function main.Base.foo in and out contracts require function body // An empty body definition fixes this error. } interface IBase { @property int field(); void foo() in { assert(field > 0); } // OK } |
May 15, 2013 Re: abstract class member functions can not have contracts | ||||
---|---|---|---|---|
| ||||
Posted in reply to ref2401 | On 05/15/2013 04:16 PM, ref2401 wrote: > Interface member functions can have in/out contracts but why abstract > class member functions can not? > > abstract class Base > { > @property int field(); > > void foo() in { assert(field > 0); } > // Error: function main.Base.foo in and out contracts require function body > // An empty body definition fixes this error. > > } > > interface IBase > { > @property int field(); > > void foo() in { assert(field > 0); } // OK > } No reason. http://d.puremagic.com/issues/show_bug.cgi?id=6549 |
Copyright © 1999-2021 by the D Language Foundation