I still do not understand. I would imagine something like:

foo
        <precondition: #invariant>
        <postcondition: #invariant>
        self bar


But, all in all, what are we using pragmas here? 
I can always do: 
        self assert: [ … ] description: … 

Maybe we should specific a method called contractInvariant that is always 
executed before and after. Using Reflectivity.

Alexandre


> On Feb 26, 2016, at 11:50 AM, Alain Rastoul <[email protected]> wrote:
> 
> On 26/02/2016 11:26, Alexandre Bergel wrote:
>> Hi Alain,
>> 
>> Having contract is a valuable effort!
>> 
>>> On Feb 26, 2016, at 11:12 AM, Alain Rastoul <[email protected]> wrote:
>>> 
>>> <contract: #ensured appliedTo: #( #add: )>
>> 
>> What does that mean?
>> <contract: #ensured appliedTo: #( #add: )>
>> 
>> Alexandre
>> 
> Hi Alexandre,
> 
> a method with a pragma
> <contract: #ensured appliedTo: #( #add: ) >
> means it is a check that must be ensured by  (enforced by) the method to 
> which it applies (here add:).
> The add: method of the object *must* verify this check, when the check is 
> executed, it must return true.
> 
> May be the terms I've choosed are confusing at first, but it was voluntary, 
> preCondition, postCondition are too much program execution oriented IMHO, not 
> enough assertive .
> 
> btw it is easy to change:
> one could say here:
> <contract: postcondition on: #( #add: )>
> 
> may be better ?
> 
> or may be better to support both ... :)
> 
> 
> Alain
> 
> 

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply via email to