www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 19131] New: Contracts should work function prototypes

https://issues.dlang.org/show_bug.cgi?id=19131

          Issue ID: 19131
           Summary: Contracts should work function prototypes
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: puremagic zoadian.de

Contracts should work on function prototypes.

Consider a C function like this one from liquid-dsp

/* Create object using Kaiser-Bessel windowed sinc method               */  \
/*  _n      : filter length, _n > 0                                     */  \
/*  _fc     : filter normalized cut-off frequency, 0 < _fc < 0.5        */  \
/*  _As     : filter stop-band attenuation [dB], _As > 0                */  \
/*  _mu     : fractional sample offset, -0.5 < _mu < 0.5                */  \
void _create_kaiser(unsigned int _n,                          \
                                  float        _fc,                         \
                                  float        _As,                         \
                                  float        _mu);                        \

it would be great if we could add contracts directly to our D decleration:

_create_kaiser(uint n, float fc, float As, float mu) in(n > 0) in(0 < fc && fc
< 0.5) in(As > 0) in(-0.5 < mu && mu < 0.5);

--
Aug 01 2018