#REFACTORING by cg
class: Explainer class
added: #safeValueStringFor:
changed:
#explain:in:forClass:short: (send #safeValueStringFor: instead of #valueStringFor:)
#explainGlobalOrPoolVariable:inClass:short: (send #safeValueStringFor: instead of #valueStringFor:)
#valueStringFor:
--- a/Explainer.st Sat Jun 08 14:02:24 2019 +0200
+++ b/Explainer.st Sat Jun 08 14:04:14 2019 +0200
@@ -864,7 +864,7 @@
stringText := stringText, ': a class instance variable inherited from ' , clsName
].
val := aClassOrNil theNonMetaclass instVarNamed:string.
- valString := self valueStringFor:val.
+ valString := self safeValueStringFor:val.
^ stringText , ' (' , valString , ').'
].
^ self explainInstanceVariable:string inClass:c short:shortText.
@@ -877,7 +877,7 @@
c := explainer inWhichClassIsClassVar:string.
c notNil ifTrue:[
val := c theNonMetaclass classVarAt:string. "/ Smalltalk at:(clsName , ':' , string) asSymbol.
- valString := self valueStringFor:val.
+ valString := self safeValueStringFor:val.
val == true ifTrue:[
color := Color darkGreen.
@@ -939,7 +939,7 @@
poolName := self asClassLink:eachPoolName.
stringText := stringText , ': a pool variable in ',poolName.
val := sharedPool at:sharedPoolSym.
- valString := self valueStringFor:val.
+ valString := self safeValueStringFor:val.
^ stringText , ' (' , valString , ').'
].
].
@@ -1038,7 +1038,7 @@
"Created: / 03-12-1995 / 12:47:37 / cg"
"Modified: / 16-04-1997 / 12:46:11 / stefan"
"Modified: / 23-08-2017 / 12:44:12 / cg"
- "Modified: / 13-03-2019 / 21:17:09 / Claus Gittinger"
+ "Modified: / 08-06-2019 / 14:04:00 / Claus Gittinger"
!
explainGlobal:string inClass:aClassOrNil short:shortText
@@ -1150,7 +1150,7 @@
^ explanation.
].
- valText := self valueStringFor:val.
+ valText := self safeValueStringFor:val.
shortText ifTrue:[
^ (shortTemplate ? '%1: a global (%2)')
@@ -1165,8 +1165,7 @@
"Created: / 14-10-2010 / 11:33:04 / cg"
"Modified: / 16-11-2016 / 13:08:07 / cg"
- "Modified: / 22-02-2019 / 11:17:20 / Claus Gittinger"
- "Modified (format): / 04-03-2019 / 10:10:10 / Claus Gittinger"
+ "Modified: / 08-06-2019 / 14:03:42 / Claus Gittinger"
!
explainHereIn:aClassOrNil short:shortText
@@ -2027,6 +2026,16 @@
"Modified: / 13-03-2019 / 10:25:48 / Claus Gittinger"
!
+safeValueStringFor:aValue
+ Error handle:[:ex |
+ ^ 'Error in storeString: ',ex description
+ ] do:[
+ ^ self valueStringFor:aValue
+ ]
+
+ "Created: / 08-06-2019 / 14:03:38 / Claus Gittinger"
+!
+
typeDescriptionFor:setOfTypes andSelector:selectorOrNil
"up to 3 types are shown by name; more are simply counted"
@@ -2099,11 +2108,7 @@
or:[aValue isPoint
or:[aValue isCharacter
]]]]]) ifTrue:[
- Error handle:[:ex |
- ^ 'Error in storeString: ',ex description
- ] do:[
- ^ aValue storeString.
- ].
+ ^ aValue storeString.
].
(aValue isColor) ifTrue:[
@@ -2124,7 +2129,7 @@
^ valString
"Modified: / 14-10-2010 / 11:57:52 / cg"
- "Modified: / 08-06-2019 / 14:01:55 / Claus Gittinger"
+ "Modified: / 08-06-2019 / 14:02:57 / Claus Gittinger"
! !
!Explainer class methodsFor:'naive type inferer'!