Thanks, I'll do a pass and fix it
Cheers, Gwen On Mon, Oct 18, 2010 at 12:05 PM, Paolo Bonzini <[email protected]> wrote: > On 10/18/2010 11:42 AM, Gwenaël Casaccio wrote: >> >> Hi, >> >> I would like to announce gst-shape git://github.com/MrGwen/gst-shape.git >> a refactoring of the class shape, a small example of the power of this new >> refactoring: > > This is very nice, thanks. You can also use a branch of smalltalk.git > rather than a fully separate repository. This will make it easier for me to > pull. > > However, I wouldn't use class methods. I think it's bad design. It's better > to use a simpler hierarchy and put these on the instance side using instance > variables: > > Shape "class methods for mapping integers to ShapeSymbol instance" > VMShape > FixedShape "current NilShape" > IntegerShape "adds #byteSize, #byteSize:" > SignedIntegerShape > UnsignedIntegerShape > FloatingPointShape > CharacterShape > EncodedCharacterShape > UnicodeCharacterShape > ShapeAliasSymbol "abstract class maybe not necessary" > ShapeInherit > ShapeWord > > This is because you can use #nextBytes:signed: and #nextPutBytes:of: to > implement dumping. Those methods are private, but we can un-privatize them. > > "wrongClassIfFloatOrDoubleShape:" and "wrongClassIfCharacterOrUtf32Shape:" > can be unified to "checkArgumentClass:". > > The "subclassResponsibilityIfCharacterOrUtf32Shape" and > "subclassResponsibilityIfNotCharacterOrUtf32Shape" methods are also bad. > First of all, the former should not be used (it's always using #ifFalse: in > kernel/CharArray.st). Second, I'd anyway use a method #hasValueAtPrimitives > that returns true/false. > > Thanks, > _______________________________________________ help-smalltalk mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-smalltalk
