We had a discussion about this on this mailing list some time ago. The  
conclusion, as far as I remember, was that yes, ideally it should  
detect that the method exists in a superclass and hence should not add  
the atEnd method to the subclass in your example. This is not that  
easy to implement, though (if you think through the different cases of  
structural changes that would need to be captured to correctly update  
classes using traits). The simplest solution is to not implement atEnd  
in the trait. Anyway, the information that this method is a  
requirement should be automatically provided by a tool rather than  
being hardcoded by the developer.

Cheers,
Adrian

On Jul 8, 2009, at 11:08 , Cyrille Delaunay wrote:

> Hi,
> Here's my problem :
> - I have the class NSCollectionStream which define ( for example )   
> #atEnd
> - I have the class NSSubclassOfCollectionStream ( which is a suclass  
> of
> NSCollectionStream).
>
> When I use a trait in NSSubclassOfCollectionStream that required the  
> method
> #atEnd, the defintion in NSCollectionStream is not used and the method
> #atEnd is overridden with :
>       atEnd
>           self explicitRequirement.
>
> I think we should take care about definitions in superclass, no?
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to