#BUGFIX by exept
authorClaus Gittinger <cg@exept.de>
Wed, 31 Jul 2019 19:12:33 +0200
changeset 18966 0832d82d84f3
parent 18965 c0855727ab6a
child 18967 945b21ace3f5
#BUGFIX by exept class: Tools::NewSystemBrowser changed: #smalllintRunRule:onEnvironment:
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Wed Jul 31 17:49:25 2019 +0200
+++ b/Tools__NewSystemBrowser.st	Wed Jul 31 19:12:33 2019 +0200
@@ -30314,7 +30314,7 @@
      This is called from a background worker - see smallLintRun:onEnvironment:
     "
 
-    | rules checker numClassesOverAll numRules
+    | rules checker numClasses numClassesOverAllForProgress numRules
       count lastPercentage timeOfLastFeedback anyWarning anyError anyInfo|
 
     "/ make sure that smallLint is loaded
@@ -30329,85 +30329,88 @@
     rules := anRBLintRule flattened.
     aBrowserEnvironment cacheClasses.
     numRules := rules size.
-    numClassesOverAll := aBrowserEnvironment numberClasses * 2 "tests class AND metaclass" * numRules.
+    numClasses := aBrowserEnvironment numberClasses.
+    numClassesOverAllForProgress := numClasses * 2 "tests class AND metaclass" * numRules.
     count := 0.
     lastPercentage := nil.
     timeOfLastFeedback := Timestamp now.
     anyWarning := anyError := anyInfo := false.
-    
-    rules withIndexDo:[:rule :index|
-        |t ruleName ruleClassName|
-
-        ruleName := rule name.
-        ruleClassName := rule class name.
-
-"/        ProgressNotification new
-"/            messageText: ('Checking: %1 (%2)' bindWith:ruleName with:ruleClassName);
-"/            parameter: (index-1) / rules size * 100;
-"/            raiseRequest.
-
-        [
-            checker 
-                runRule: rule 
-                onEnvironment: aBrowserEnvironment 
-                progressFeedBackInto:[:classBeingChecked |
-                    |msg percentage percentageRounded now numFound|
-                    
-                    count := count + 1.
-                    percentage := ((count-1) / numClassesOverAll * 100).
-                    percentageRounded := percentage rounded.
-                    (lastPercentage isNil
-                        or:[
-                            (lastPercentage ~= percentageRounded)               
-                             and:[ 
-                                now := Timestamp now.
-                                (now - timeOfLastFeedback > 100 milliseconds) 
-                             ]
-                        ]
-                    ) ifTrue:[
-                        lastPercentage := percentageRounded.
-
-                        msg := ('Checking: ' withColor:Color grey)
-                               , ruleName 
-                               , ((' (',ruleClassName,')') withColor:Color grey).
-                               
-                        "/ ((numClassesOverAll < 10) or:[numRules == 1]) ifTrue:[
-                        "/     msg := msg , ' in ',classBeingChecked name.
-                        "/ ]. 
-                        numFound := rule problemCount.
-                        numFound ~~ 0 ifTrue:[
-                            msg := msg , ' (', numFound printString,' found in ',count printString,' classes)'.
-                        ].
-
-                        anyError ifFalse:[
-                            rule isEmpty ifFalse:[
-                                anyError := (rule severity == RBLintRule severityWarning). 
-                                anyError ifFalse:[
-                                    anyWarning ifFalse:[
-                                        anyWarning := (rule severity == RBLintRule severityWarning).
+
+    numClasses > 0 ifTrue:[
+        rules withIndexDo:[:rule :index|
+            |t ruleName ruleClassName|
+
+            ruleName := rule name.
+            ruleClassName := rule class name.
+
+    "/        ProgressNotification new
+    "/            messageText: ('Checking: %1 (%2)' bindWith:ruleName with:ruleClassName);
+    "/            parameter: (index-1) / rules size * 100;
+    "/            raiseRequest.
+
+            [
+                checker 
+                    runRule: rule 
+                    onEnvironment: aBrowserEnvironment 
+                    progressFeedBackInto:[:classBeingChecked |
+                        |msg percentage percentageRounded now numFound|
+
+                        count := count + 1.
+                        percentage := ((count-1) / numClassesOverAllForProgress * 100).
+                        percentageRounded := percentage rounded.
+                        (lastPercentage isNil
+                            or:[
+                                (lastPercentage ~= percentageRounded)               
+                                 and:[ 
+                                    now := Timestamp now.
+                                    (now - timeOfLastFeedback > 100 milliseconds) 
+                                 ]
+                            ]
+                        ) ifTrue:[
+                            lastPercentage := percentageRounded.
+
+                            msg := ('Checking: ' withColor:Color grey)
+                                   , ruleName 
+                                   , ((' (',ruleClassName,')') withColor:Color grey).
+
+                            "/ ((numClassesOverAllForProgress < 10) or:[numRules == 1]) ifTrue:[
+                            "/     msg := msg , ' in ',classBeingChecked name.
+                            "/ ]. 
+                            numFound := rule problemCount.
+                            numFound ~~ 0 ifTrue:[
+                                msg := msg , ' (', numFound printString,' found in ',count printString,' classes)'.
+                            ].
+
+                            anyError ifFalse:[
+                                rule isEmpty ifFalse:[
+                                    anyError := (rule severity == RBLintRule severityWarning). 
+                                    anyError ifFalse:[
                                         anyWarning ifFalse:[
-                                            anyInfo := true
-                                        ].    
+                                            anyWarning := (rule severity == RBLintRule severityWarning).
+                                            anyWarning ifFalse:[
+                                                anyInfo := true
+                                            ].    
+                                        ].
                                     ].
                                 ].
-                            ].
-                        ].    
-                        ProgressNotification new
-                            statusInfo:(anyError 
-                                            ifTrue:[#error] 
-                                            ifFalse:[ 
-                                                anyWarning 
-                                                    ifTrue:[#warning] 
-                                                    ifFalse:[ anyInfo ifTrue:[#info] ifFalse:[nil]]]);
-                            messageText: msg;
-                            parameter: percentage;
-                            raiseRequest.
-                        timeOfLastFeedback := now ifNil:[Timestamp now].
-                    ].
-                ].
-        ] 
-            "/ value  
-            benchmark:(rule name,': ')
+                            ].    
+                            ProgressNotification new
+                                statusInfo:(anyError 
+                                                ifTrue:[#error] 
+                                                ifFalse:[ 
+                                                    anyWarning 
+                                                        ifTrue:[#warning] 
+                                                        ifFalse:[ anyInfo ifTrue:[#info] ifFalse:[nil]]]);
+                                messageText: msg;
+                                parameter: percentage;
+                                raiseRequest.
+                            timeOfLastFeedback := now ifNil:[Timestamp now].
+                        ].
+                    ].
+            ] 
+                "/ value  
+                benchmark:(rule name,': ')
+        ].
     ].
     ProgressNotification 
         raiseRequestWith:100