Shortcut evaluation for hierarchy of in contracts
Daniel Murphy
yebblies at nospamgmail.com
Fri Jul 1 07:55:27 PDT 2011
I don't disagree that tightening contracts for derived functions is a bad
idea.
I didn't mean the contract should fail, I meant that the program should fail
with an error that the contract is invalid.
"Timon Gehr" <timon.gehr at gmx.ch> wrote in message
news:iuklvm$pks$1 at digitalmars.com...
> Now, sure, if the parents contract is
>
> in{assert(a<=10);}
>
> and the child's contract is
>
> in{assert(a<=5);}
>
> then that is almost certainly an error because the child's contract fails
> to
> loosen any restrictions.
> But to catch this in the general case, the compiler would have to
> incorporate a
> theorem prover.
> (And validity of D code would start to depend on the quality of the
> theorem prover
> of the respective D compiler ;))
This can be caught at runtime without a theorem prover. (And I think it
should be)
More information about the Digitalmars-d
mailing list