http://d.puremagic.com/issues/show_bug.cgi?id=4720
Summary: contracts don't work on function definitions Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: mrmoc...@gmx.de --- Comment #0 from Trass3r <mrmoc...@gmx.de> 2010-08-24 05:23:06 PDT --- The Matlab C headers provide some kind of hand-crafted contracts by defining extra functions with suffix "_d" that check all the arguments and then detouring the calls to the original functions via the preprocessor (#define foo foo_d) I tried to leverage D's built-in contract programming but it doesn't work: module externcontracts; import externcontracts2; void foo(int a) in {assert(a>=0);} module externcontracts2; void foo(int a){} yields: externcontracts.d(3): Error: function externcontracts.foo in and out contracts require function body resp. externcontracts.d(3): missing body { ... } after in or out if you put a ';' after the in{} block Note that this is exactly the same syntax as for interface contracts. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------