> If there is no technical difficulties, I would like to have it.

Okay then, I'll rethink ...

Cheers
Joe

On Wed, Feb 11, 2015 at 7:12 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote:

> Hi Dmitry and Joe,
>
> On Wed, Feb 11, 2015 at 4:02 PM, Dmitry Stogov <dmi...@zend.com> wrote:
>
>> I think we can't support contracts on interfaces and abstract methods.
>> How D works?
>
>
> D supports contract in structure and interface. Structure is more like
> classes in D, though.
>
> interface I
> {
>     int foo(int i)
>     in { assert(i > 7); }
>     out (result) { assert(result & 1); }
>
>     void bar();
> }
>
> http://dlang.org/interface.html
>
>
> Eiffel support contracts for interfaces.
>
>   class interface DICTIONARY [ELEMENT] feature
>
>    put (x: ELEMENT; key: STRING) is
>             -- Insert x so that it will be retrievable
>                            -- through key.
>                   require
>                           count <= capacity
>                           not key.empty
>                    ensure
>                           has (x)
>                           item (key) = x
>                           count = old count + 1
>
>                 ... Interface specifications of other features ...
>
>   invariant
>
> 0 <= count
> count <= capacity
>
>   end -- class interface DICTIONARY
>
>
> https://archive.eiffel.com/doc/manuals/technology/contract/
>
> If there is no technical difficulties, I would like to have it.
>
> Regards,
>
> --
> Yasuo Ohgaki
> yohg...@ohgaki.net
>

Reply via email to