|
@@ -3177,7 +3177,7 @@ var self=this;
|
|
|
|
|
|
return $core.withContext(function($ctx1) {
|
|
|
|
|
|
-var $1,$2,$5,$4,$3,$6,$8,$7;
|
|
|
+var $1,$2,$5,$4,$6,$3,$7,$9,$8;
|
|
|
$1=$recv(aClass)._isMetaclass();
|
|
|
if($core.assert($1)){
|
|
|
$2=$recv($recv(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!");
|
|
@@ -3198,26 +3198,45 @@ $5=$recv(aClass)._name();
|
|
|
$ctx2.sendIdx["name"]=1;
|
|
|
|
|
|
$4=$recv($5).__comma(" has a subclass: ");
|
|
|
-$3=$recv($4).__comma($recv(subclass)._name());
|
|
|
+
|
|
|
+$ctx2.sendIdx[","]=3;
|
|
|
+
|
|
|
+$6=$recv(subclass)._name();
|
|
|
+
|
|
|
+$ctx2.sendIdx["name"]=2;
|
|
|
+
|
|
|
+$3=$recv($4).__comma($6);
|
|
|
|
|
|
$ctx2.sendIdx[","]=2;
|
|
|
|
|
|
return self._error_($3);
|
|
|
|
|
|
+$ctx2.sendIdx["error:"]=2;
|
|
|
+
|
|
|
+
|
|
|
}, function($ctx2) {$ctx2.fillBlock({subclass:subclass},$ctx1,2)});
|
|
|
|
|
|
}));
|
|
|
+$recv($recv(aClass)._traitUsers())._ifNotEmpty_((function(){
|
|
|
+
|
|
|
+return $core.withContext(function($ctx2) {
|
|
|
+
|
|
|
+return self._error_($recv($recv(aClass)._name()).__comma(" has trait users."));
|
|
|
+
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
|
|
|
+
|
|
|
+}));
|
|
|
self._deleteClass_(aClass);
|
|
|
$recv(aClass)._setTraitComposition_([]);
|
|
|
|
|
|
$ctx1.sendIdx["setTraitComposition:"]=1;
|
|
|
|
|
|
$recv($recv(aClass)._class())._setTraitComposition_([]);
|
|
|
-$6=$recv($globals.SystemAnnouncer)._current();
|
|
|
-$8=$recv($globals.ClassRemoved)._new();
|
|
|
-$recv($8)._theClass_(aClass);
|
|
|
-$7=$recv($8)._yourself();
|
|
|
-$recv($6)._announce_($7);
|
|
|
+$7=$recv($globals.SystemAnnouncer)._current();
|
|
|
+$9=$recv($globals.ClassRemoved)._new();
|
|
|
+$recv($9)._theClass_(aClass);
|
|
|
+$8=$recv($9)._yourself();
|
|
|
+$recv($7)._announce_($8);
|
|
|
return self;
|
|
|
|
|
|
}, function($ctx1) {$ctx1.fill(self,"removeClass:",{aClass:aClass},$globals.SmalltalkImage)});
|
|
@@ -3225,10 +3244,10 @@ return self;
|
|
|
},
|
|
|
|
|
|
args: ["aClass"],
|
|
|
-source: "removeClass: aClass\x0a\x09aClass isMetaclass ifTrue: [ self error: aClass asString, ' is a Metaclass and cannot be removed!' ].\x0a\x09aClass allSubclassesDo: [ :subclass | self error: aClass name, ' has a subclass: ', subclass name ].\x0a\x09\x0a\x09self deleteClass: aClass.\x0a\x09aClass setTraitComposition: #().\x0a\x09aClass class setTraitComposition: #().\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassRemoved new\x0a\x09\x09\x09theClass: aClass;\x0a\x09\x09\x09yourself)",
|
|
|
+source: "removeClass: aClass\x0a\x09aClass isMetaclass ifTrue: [ self error: aClass asString, ' is a Metaclass and cannot be removed!' ].\x0a\x09aClass allSubclassesDo: [ :subclass | self error: aClass name, ' has a subclass: ', subclass name ].\x0a\x09aClass traitUsers ifNotEmpty: [ self error: aClass name, ' has trait users.' ].\x0a\x09\x0a\x09self deleteClass: aClass.\x0a\x09aClass setTraitComposition: #().\x0a\x09aClass class setTraitComposition: #().\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassRemoved new\x0a\x09\x09\x09theClass: aClass;\x0a\x09\x09\x09yourself)",
|
|
|
referencedClasses: ["SystemAnnouncer", "ClassRemoved"],
|
|
|
|
|
|
-messageSends: ["ifTrue:", "isMetaclass", "error:", ",", "asString", "allSubclassesDo:", "name", "deleteClass:", "setTraitComposition:", "class", "announce:", "current", "theClass:", "new", "yourself"]
|
|
|
+messageSends: ["ifTrue:", "isMetaclass", "error:", ",", "asString", "allSubclassesDo:", "name", "ifNotEmpty:", "traitUsers", "deleteClass:", "setTraitComposition:", "class", "announce:", "current", "theClass:", "new", "yourself"]
|
|
|
}),
|
|
|
$globals.SmalltalkImage);
|
|
|
|