Daniel F Moisset wrote:
> So, my question is:
> * Is this a language gotcha?
It's just a common-or-garden catcall, isn't it? Within the 'symmetric'
postcondition (during evaluation of the precursor call), the call to
"other.is_equal(Current)" is passing a PARENT as 'Current', whereas
'other' is a CHILD and is wanting to be passed another CHILD.
This never has worked, it never will work, it never can work. It was
discussed by NICE during the mid 90's; we never could convince Bertrand
Meyer, who always seems to believe that some kind of covariant "magic
bullet" is just around the next corner.
If you look at Bertrand's ETL3 drafts, you'll see that 'is_equal' is now
in some places declared with signature "is_equal(other: ?like Current)".
That might make it typesafe but it won't make it work for Daniel's
example.
Regards,
Roger


|