What do we call the supertype of Class and Trait?

Daniel Vainsencher daniel.vainsencher at gmail.com
Tue Oct 4 02:42:32 UTC 2005


Hi everyone.

In many places in Squeak, we do things to classes. In many of those, we 
actually want to be doing those things also to Traits, or any other 
code-containing abstraction, probably. For example, we want to to be 
able to browse it, file it in/out and such.

So what do we call this concept?

Just to make the discussion more concrete, I'll give some specific cases:
-SysNav>>allClasses should probably only return real classes, but it is 
used in various places in which all Traits should be returned as well, 
for example Compiler recompileAll should recompile Traits, since 
otherwise some obsoletely compiled methods would remain even in classes 
: ones that are composed with Traits.
-In the tools, in many places we do something like
"self selectedClass ifNil:[^self]. <otherwise>"
In some of those places, we actually want to exclude Traits, and there 
I've been using #isBehavior: instead of #ifNil:, however Adrian and I 
are both somewhat inclined to think of Traits as being Behaviors, sort 
of. But clearly, we want some name that includes both, and some name 
that includes classes (and other Behavior subclasses?) but that excludes 
traits.

So I'm asking for more opinions.

Daniel



More information about the Squeak-dev mailing list