On Mon, Dec 17, 2012 at 10:41 AM, Andrew P. Black <black@cs.pdx.edu> wrote:
Two things make a class abstract.

One is that it has methods that a subclass must override � that is captured by #hasAbstractMethods.

The other is that the class cannot be instantiated � normally because it has overridden new.
It can be the case that an abstract class defines only CONCRETE methods for its subclasses, but still is abstract. �So, it seems to me that #isAbstractClass is not subsumed by #hasAbstractMethods.

A trait "AbstactClassT" could define #new to be "self error: 'Class ' , self name , ' is abstract and cannot be instantiated'" and #isAbstractClass to be ^ true.

+3.

Andrew


On Sun, Dec 16, 2012 at 11:03 PM, St�phane Ducasse
<stephane.ducasse@inria.fr> wrote:
Good suggestion I will change it to hasAbstractMethods it looks much better.
Tx for the suggestion.

what about 'additionalAbstractMethods' that would return the list of
new abstract methods the class �defines.




--
best,
Eliot