[Issue 4720] New: contracts don't work on function definitions
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Aug 24 05:23:12 PDT 2010
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: nobody at puremagic.com
ReportedBy: mrmocool at gmx.de
--- Comment #0 from Trass3r <mrmocool at 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: -------
More information about the Digitalmars-d-bugs
mailing list