Tools__ClassChecker.st
branchjv
changeset 12650 e0f607754b9a
parent 12431 9f0c59c742d5
child 13530 2269bce1636d
--- a/Tools__ClassChecker.st	Thu Apr 04 01:43:18 2013 +0100
+++ b/Tools__ClassChecker.st	Thu Apr 04 19:06:16 2013 +0100
@@ -185,36 +185,36 @@
     |cls notUsedHere notUsedAnyWhere anySubclass|
 
     cls := checkedClass theNonMetaclass.
-    notUsedHere := cls classVarNames asSet.
+    notUsedHere := cls classVarNames asNewSet.
     notUsedHere isEmpty ifTrue:[^ self].
 
     self removeUsedClassVariablesIn:cls from:notUsedHere.
     self removeUsedClassVariablesIn:cls class from:notUsedHere.
 
     notUsedHere notEmpty ifTrue:[
-	notUsedAnyWhere := notUsedHere copy.
-	anySubclass := false.
-	cls allSubclassesDo:[:eachSubclass |
-	    anySubclass := true.
-	    notUsedAnyWhere notEmpty ifTrue:[
-		self removeUsedClassVariablesIn:eachSubclass from:notUsedAnyWhere.
-		self removeUsedClassVariablesIn:eachSubclass class from:notUsedAnyWhere.
-	    ]
-	].
+        notUsedAnyWhere := notUsedHere copy.
+        anySubclass := false.
+        cls allSubclassesDo:[:eachSubclass |
+            anySubclass := true.
+            notUsedAnyWhere notEmpty ifTrue:[
+                self removeUsedClassVariablesIn:eachSubclass from:notUsedAnyWhere.
+                self removeUsedClassVariablesIn:eachSubclass class from:notUsedAnyWhere.
+            ]
+        ].
 
-	notUsedHere do:[:eachVariable |
-	    |className|
+        notUsedHere do:[:eachVariable |
+            |className|
 
-	    className := checkedClass name allBold.
-	    self 
-		rememberBadClass:cls
-		info:('classVar ' , eachVariable allBold , ' is unused in ' , className , ' (#classVariablesNeverUsed)').
-	    (notUsedAnyWhere includes:eachVariable) ifTrue:[
-		self 
-		    rememberBadClass:cls
-		    info:('classVar ' , eachVariable allBold , ' is not even used in subclasses of ' , className , ' (#classVariablesNeverUsed)')
-	    ]
-	].
+            className := checkedClass name allBold.
+            self 
+                rememberBadClass:cls
+                info:('classVar ' , eachVariable allBold , ' is unused in ' , className , ' (#classVariablesNeverUsed)').
+            (notUsedAnyWhere includes:eachVariable) ifTrue:[
+                self 
+                    rememberBadClass:cls
+                    info:('classVar ' , eachVariable allBold , ' is not even used in subclasses of ' , className , ' (#classVariablesNeverUsed)')
+            ]
+        ].
     ]
 !
 
@@ -222,36 +222,36 @@
     |cls notWrittenHere notWrittenAnyWhere anySubclass|
 
     cls := checkedClass theNonMetaclass.
-    notWrittenHere := cls classVarNames asSet.
+    notWrittenHere := cls classVarNames asNewSet.
     notWrittenHere isEmpty ifTrue:[^ self].
 
     self removeWrittenClassVariablesIn:cls from:notWrittenHere.
     self removeWrittenClassVariablesIn:cls class from:notWrittenHere.
 
     notWrittenHere notEmpty ifTrue:[
-	notWrittenAnyWhere := notWrittenHere copy.
-	anySubclass := false.
-	cls allSubclassesDo:[:eachSubclass |
-	    anySubclass := true.
-	    notWrittenAnyWhere notEmpty ifTrue:[
-		self removeWrittenClassVariablesIn:eachSubclass from:notWrittenAnyWhere.
-		self removeWrittenClassVariablesIn:eachSubclass class from:notWrittenAnyWhere.
-	    ]
-	].
+        notWrittenAnyWhere := notWrittenHere copy.
+        anySubclass := false.
+        cls allSubclassesDo:[:eachSubclass |
+            anySubclass := true.
+            notWrittenAnyWhere notEmpty ifTrue:[
+                self removeWrittenClassVariablesIn:eachSubclass from:notWrittenAnyWhere.
+                self removeWrittenClassVariablesIn:eachSubclass class from:notWrittenAnyWhere.
+            ]
+        ].
 
-	notWrittenHere do:[:eachVariable |
-	    |className|
+        notWrittenHere do:[:eachVariable |
+            |className|
 
-	    className := cls name allBold.
-	    self 
-		rememberBadClass:cls
-		info:('classVar ' , eachVariable allBold , ' is not set in ' , className , ' (#classVariablesNeverWritten)').
-	    (notWrittenAnyWhere includes:eachVariable) ifTrue:[
-		self 
-		    rememberBadClass:cls
-		    info:('classVar ' , eachVariable allBold , ' is not even set in subclasses of ' , className , ' (#classVariablesNeverWritten)')
-	    ]
-	].
+            className := cls name allBold.
+            self 
+                rememberBadClass:cls
+                info:('classVar ' , eachVariable allBold , ' is not set in ' , className , ' (#classVariablesNeverWritten)').
+            (notWrittenAnyWhere includes:eachVariable) ifTrue:[
+                self 
+                    rememberBadClass:cls
+                    info:('classVar ' , eachVariable allBold , ' is not even set in subclasses of ' , className , ' (#classVariablesNeverWritten)')
+            ]
+        ].
     ]
 !
 
@@ -545,7 +545,7 @@
 unusedClassVariables
     |remainingVars|
 
-    remainingVars := checkedClass theNonMetaclass classVarNames asSet.
+    remainingVars := checkedClass theNonMetaclass classVarNames asNewSet.
 
     checkedClass theNonMetaclass withAllSubclassesDo:[:eachClassToCheck |
         eachClassToCheck instAndClassMethodsDo:[:method |
@@ -568,7 +568,7 @@
 unusedInstanceVariables
     |remainingVars|
 
-    remainingVars := checkedClass theNonMetaclass instVarNames asSet.
+    remainingVars := checkedClass theNonMetaclass instVarNames asNewSet.
 
     checkedClass theNonMetaclass withAllSubclassesDo:[:eachClassToCheck |
         eachClassToCheck methodDictionary keysAndValuesDo:[:mSelector :method |
@@ -665,94 +665,94 @@
 instanceVariablesNeverUsedIn:aClass
     |notUsedHere notUsedAnyWhere anySubclass|
 
-    notUsedHere := aClass instVarNames asSet.
+    notUsedHere := aClass instVarNames asNewSet.
     notUsedHere isEmpty ifTrue:[^ self].
 
     self removeUsedInstanceVariablesIn:aClass from:notUsedHere.
 
     notUsedHere notEmpty ifTrue:[
-	notUsedAnyWhere := notUsedHere copy.
-	anySubclass := false.
-	aClass allSubclassesDo:[:eachSubclass |
-	    anySubclass := true.
-	    notUsedAnyWhere notEmpty ifTrue:[
-		self removeUsedInstanceVariablesIn:eachSubclass from:notUsedAnyWhere.
-	    ]
-	].
+        notUsedAnyWhere := notUsedHere copy.
+        anySubclass := false.
+        aClass allSubclassesDo:[:eachSubclass |
+            anySubclass := true.
+            notUsedAnyWhere notEmpty ifTrue:[
+                self removeUsedInstanceVariablesIn:eachSubclass from:notUsedAnyWhere.
+            ]
+        ].
 
-	notUsedHere do:[:eachVariable |
-	    |className|
+        notUsedHere do:[:eachVariable |
+            |className|
 
-	    className := aClass name allBold.
-	    self 
-		rememberBadClass:aClass 
-		info:('instVar ' , eachVariable allBold , ' is unused in ' , className , ' (#instanceVariablesNeverUsed)').
+            className := aClass name allBold.
+            self 
+                rememberBadClass:aClass 
+                info:('instVar ' , eachVariable allBold , ' is unused in ' , className , ' (#instanceVariablesNeverUsed)').
 
-	    anySubclass ifTrue:[
-		(notUsedAnyWhere includes:eachVariable) ifTrue:[
-		    self 
-			rememberBadClass:aClass 
-			info:('instVar ' , eachVariable allBold , ' is not even used in subclasses of ' , className , ' (#instanceVariablesNeverUsed)')
-		]
-	    ]
-	].
+            anySubclass ifTrue:[
+                (notUsedAnyWhere includes:eachVariable) ifTrue:[
+                    self 
+                        rememberBadClass:aClass 
+                        info:('instVar ' , eachVariable allBold , ' is not even used in subclasses of ' , className , ' (#instanceVariablesNeverUsed)')
+                ]
+            ]
+        ].
     ]
 !
 
 instanceVariablesNeverWrittenIn:aClass
     |notWrittenHere notWrittenAnyWhere anySubclass|
 
-    notWrittenHere := aClass instVarNames asSet.
+    notWrittenHere := aClass instVarNames asNewSet.
     notWrittenHere isEmpty ifTrue:[^ self].
 
     self removeWrittenInstanceVariablesIn:aClass from:notWrittenHere.
 
     notWrittenHere notEmpty ifTrue:[
-	notWrittenAnyWhere := notWrittenHere copy.
-	anySubclass := false.
-	aClass allSubclassesDo:[:eachSubclass |
-	    anySubclass := true.
-	    notWrittenAnyWhere notEmpty ifTrue:[
-		self removeWrittenInstanceVariablesIn:eachSubclass from:notWrittenAnyWhere.
-	    ]
-	].
+        notWrittenAnyWhere := notWrittenHere copy.
+        anySubclass := false.
+        aClass allSubclassesDo:[:eachSubclass |
+            anySubclass := true.
+            notWrittenAnyWhere notEmpty ifTrue:[
+                self removeWrittenInstanceVariablesIn:eachSubclass from:notWrittenAnyWhere.
+            ]
+        ].
 
-	notWrittenHere do:[:eachVariable |
-	    |className|
+        notWrittenHere do:[:eachVariable |
+            |className|
 
-	    className := aClass name allBold.
-	    self 
-		rememberBadClass:aClass
-		info:('instVar ' , eachVariable allBold , ' is nowhere set in ' , className , ' (#instanceVariablesNeverWritten)').
-	    anySubclass ifTrue:[
-		(notWrittenAnyWhere includes:eachVariable) ifTrue:[
-		    self 
-			rememberBadClass:aClass
-			info:('instVar ' , eachVariable allBold , ' is not even set in subclasses of ' , className , ' (#instanceVariablesNeverWritten)')
-		]
-	    ]
-	].
+            className := aClass name allBold.
+            self 
+                rememberBadClass:aClass
+                info:('instVar ' , eachVariable allBold , ' is nowhere set in ' , className , ' (#instanceVariablesNeverWritten)').
+            anySubclass ifTrue:[
+                (notWrittenAnyWhere includes:eachVariable) ifTrue:[
+                    self 
+                        rememberBadClass:aClass
+                        info:('instVar ' , eachVariable allBold , ' is not even set in subclasses of ' , className , ' (#instanceVariablesNeverWritten)')
+                ]
+            ]
+        ].
     ]
 !
 
 messagesNeverSentAndNotUsedAsSymbolIn:selectorsOfInterest
     |remaining toRemove checkBlock|
 
-    remaining := selectorsOfInterest copy asIdentitySet.
+    remaining := selectorsOfInterest asNewIdentitySet.
     toRemove := IdentitySet new.
 
     checkBlock := [:eachClass |
-	eachClass instAndClassSelectorsAndMethodsDo:[:mSel :mthd | |lits|
-	    lits := mthd literals.
-	    lits notNil ifTrue:[
-		lits traverse:[:eachLiteral |
-		    eachLiteral isSymbol ifTrue:[        
-			remaining remove:eachLiteral ifAbsent:nil.
-		    ]
-		].
-		remaining isEmpty ifTrue:[^ remaining].
-	    ]
-	].
+        eachClass instAndClassSelectorsAndMethodsDo:[:mSel :mthd | |lits|
+            lits := mthd literals.
+            lits notNil ifTrue:[
+                lits traverse:[:eachLiteral |
+                    eachLiteral isSymbol ifTrue:[        
+                        remaining remove:eachLiteral ifAbsent:nil.
+                    ]
+                ].
+                remaining isEmpty ifTrue:[^ remaining].
+            ]
+        ].
     ].
 
     "/ start searching in the checkedClass - chances are high, we find some here