(new topic because old is mired in a long and clumsy source code)
============ import std.stdio; static ubyte func( ulong value ) out( arr ) { writeln( "out contract, value=", value ); } body { writeln( "body, value=", value ); ubyte res; value >>= 7; return res; } void main() { func( 2 ); } ============ $ ./bug body, value=2 out contract, value=0 Why argument "value" in contract isn't equal 2 ?