On 08/02/2014 01:46 AM, H. S. Teoh via Digitalmars-d wrote:
OTOH, perhaps one way to work around this, is to have a function with an
in-contract compile into a preamble and a body:

        int func(int x)
        in { assert(x > 5); }
        body {
                return computeResult(x);
        }

would compile to the equivalent of:

        int __func_incontract(int x) {
                assert(x > 5);
                goto __func_body;       // fall through to __func_body
        }
        int __func_body(int x) {
                return computeResult(x);
        }

In non-release mode, calls to func would get translated into calls to
__func_incontract,

What if a library function was compiled in release mode?

Reply via email to