Tools__ClassSorter.st
changeset 17602 36908309a12c
parent 9995 febbd7fc31a0
child 17643 15c9a7e95913
--- a/Tools__ClassSorter.st	Wed Jul 26 17:35:18 2017 +0200
+++ b/Tools__ClassSorter.st	Thu Jul 27 09:38:48 2017 +0200
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2006 by eXept Software AG
 	      All Rights Reserved
@@ -48,19 +50,20 @@
 !ClassSorter methodsFor:'filtering'!
 
 sort: classes
-        "Sort nodes according to their position in the class hierarchy"
+    "Sort nodes according to their position in the class hierarchy"
+
+    | supersChain |
 
-        | supersChain |
-        self initializeResults.
-        classes do: 
-                [:class | 
-                supersChain := class  withAllSuperclasses reversed.
-                supersChain removeAllSuchThat: [:cl | (classes includes: cl) not].
-                order add: supersChain "contents" -> class].
-        self buildIndentIndex.
-        ^self collectSortedClasses
+    self initializeResults.
+    classes do:[:eachClass | 
+        supersChain := eachClass withAllSuperclasses intersect:classes.
+        order add: supersChain reverse "contents" -> eachClass
+    ].
+    self buildIndentIndex.
+    ^ self collectSortedClasses
 
     "Modified: / 21-01-2008 / 19:43:24 / janfrog"
+    "Modified: / 27-07-2017 / 09:38:20 / stefan"
 ! !
 
 !ClassSorter methodsFor:'private'!
@@ -71,9 +74,10 @@
 !
 
 collectSortedClasses
-        ^order asArray collect: [:assoc | assoc value]
+    ^ order collect:[:assoc | assoc value] as:Array
 
     "Created: / 21-01-2008 / 19:41:54 / janfrog"
+    "Modified (format): / 25-07-2017 / 18:05:14 / stefan"
 !
 
 initializeResults
@@ -95,9 +99,10 @@
 !ClassSorter class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ClassSorter.st,v 1.1 2011-07-01 13:28:45 cg Exp $'
+    ^ '$Header$'
 !
 
 version_SVN
-    ^ '§Id: Tools__ClassSorter.st 7486 2009-10-26 22:06:24Z vranyj1 §'
+    ^ '$Id$'
 ! !
+