On 15/04/2019 09:41, Sven Barth via fpc-pascal wrote:
Am 14.04.2019 um 23:48 schrieb Martin Frb:
As for "documentation". I disagree with the way it is done in oxygen.
But I am not sure I have any good alternative.
For me a class contract (require/ensure) is part of the interface.
Putting them in the implementation as oxygen does may also cause a
technical issue.
As pointed out, for a class the contract also affects inherited methods.
Unit A
interface
TFoo= class
procedure DoFoo(a:TSome); virtual;
end;
implementation
uses B;
procedure DoFoo(a:TSome);
requires
whatever
Unit B;
interface
uses A; // AFAIK can only read the interface, the implementation has a
circular "uses B"
TFooSpecial= class(TFoo)
procedure DoFoo(a:TSome); override; // needs to know implementation
details from unit A
end;
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal