Nicolas Cellier uploaded a new version of Monticello to project The Trunk: http://source.squeak.org/trunk/Monticello-nice.533.mcz
==================== Summary ====================
Name: Monticello-nice.533 Author: nice Time: 24 February 2013, 11:19:26.177 pm UUID: 082a31a2-8e19-4d30-9661-6fa84dfc436e Ancestors: Monticello-fbs.532
Correct this bug: it was impossible to remove an instance variable from Compiler/Parser and probably a few other classes, because Compiler was invoked during its own modification. The fix will work as long as those class won't be Trait's composed...
=============== Diff against Monticello-fbs.532 ===============
Item was changed: ----- Method: MCClassDefinition>>createClass (in category 'installing') ----- createClass | superClass class composition | superClass := superclassName == #nil ifFalse: [Smalltalk at: superclassName]. [class := (ClassBuilder new) name: name inEnvironment: superClass environment subclassOf: superClass type: type instanceVariableNames: self instanceVariablesString classVariableNames: self classVariablesString poolDictionaries: self sharedPoolsString category: category. ] on: Warning, DuplicateVariableError do:[:ex| ex resume].
"The following is written to support traits unloading" + composition := self traitComposition ifNil: [Array new] ifNotNil: [:traitComposition | Compiler evaluate: traitComposition]. - composition := Compiler evaluate: (self traitComposition ifNil:['{}']). (composition isCollection and:[composition isEmpty and:[class traitComposition isEmpty]]) ifFalse:[ class setTraitComposition: composition asTraitComposition. ].
+ composition := self classTraitComposition ifNil: [Array new] ifNotNil: [:traitComposition | Compiler evaluate: traitComposition]. - composition := Compiler evaluate: (self classTraitComposition ifNil:['{}']). (composition isCollection and:[composition isEmpty and:[class class traitComposition isEmpty]]) ifFalse:[ class class setTraitComposition: composition asTraitComposition. ].
^class!
packages@lists.squeakfoundation.org