On Wednesday 08 December 2010 00:22:23 %u wrote:
> At the moment most of my public member functions are littered with these
> kind of in-out clauses.
> 
> in{
>   assert(wellformed, toString);
> }
> out{
>   assert(wellformed, toString);
> }
> 
> They just beg for invariants, I though..
> But invariants don't report the location of failure of contract, only the
> location of failure within the invariant.
> This seems kind of limiting. Am I missing something here?

If an invariant fails, it throws an AssertError which will give you stack 
trace. 
That stack trace should include which function called the invariant. So, it 
_does_ tell you which function resulted in the invariant failing.

- Jonathan M Davis

Reply via email to