In Eiffel, it is trivial to get a report for Subject Matter
Experts (SMEs) that will provide feedback that the DbC contracts
are what they agreed to.
It would be nice to have this in D.
Does D already have this, or should this be added to DIP Ideas
forum?
Imagine a sample contract for Vats (not Value Added Tax, but
liquid containers.
A vat can be open, closed, full, empty, etc.
A contract for fill() might be
```
in {
assert(!full, "vat cannot be full");
}
out {
assert(full' "vat is full");
}
```
It would be nice to extend the assert statement to add a
label such as:
```
in {
not_full: assert(!full, "vat cannot be full");
}
out {
full: assert(full, "vat is full");
}
```
It would be nice to generate a report for SMEs that would
look like:
fill method
require
not full: not full, "vat cannot be full"
ensure
full: full, "vat is full"
Note the conversion of C style operators to Eiffel wordy
operators.
The benefit is for Architects to be able to use D language for
architecture, similar to what is done in Eiffel.
Of course, this will need to do it without Eiffel Multiple
Inheritance, using D single inheritance and Interfaces. (I do
believe that D Interfaces support DbC).