[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Curl, multiple inheritance, and interfaces (was Re: cheerful static typing)

>   I agree in principle.  In practice, though, this kind of 
>   thing seems to get complicated quickly - Eiffel might be
>   an example.  My purely subjective take is that there seems
>   to be a point beyond which diminishing returns ... 
> What's worse, Eiffel's system of checking contracts is pretty 
> much flawed.  It fails to take into account the hierarchy. What's
> worse is that the people who built Java tools for specifying
> contracts and monitoring them copied Eiffel's approach and have
> the same flaws. 

I thought that Eiffel used the same covariant rule for enforcing
contracts as your paper identified as the correct mode of operation.
The various Java implementations you cite *don't* enforce this
behavior, which is where the problem lies.

Or are you saying that there is still another level of hierarchy
analysis that must be taken into account to properly interpret
contracts in a class hierarchy?