[squeak-dev] StandardToolSet class>>inspectorClassOf:
Eliot Miranda
eliot.miranda at gmail.com
Mon Feb 5 23:13:45 UTC 2018
> On Feb 5, 2018, at 12:26 PM, Marcel Taeumel <marcel.taeumel at hpi.de> wrote:
>
> Hi Eliot,
>
> well, this seems wrong. :) We have Object >> #inspectorClass but it is only used in Inspector >> #inspect:. We should change StandardToolSet >> #inspect: etc. to make use of #inspectorClass. Then, we should just delete #inspectorClassOf:.
+1
>
> Best,
> Marcel
>> Am 05.02.2018 19:43:36 schrieb Eliot Miranda <eliot.miranda at gmail.com>:
>>
>> Hi All,
>>
>> I find this method broken and sad:
>>
>> inspectorClassOf: anObject
>> "Answer the inspector class for the given object. The tool set must know which inspector type to use for which object - the object cannot possibly know what kind of inspectors the toolset provides."
>> | map |
>> map := Dictionary new.
>> #(
>> (CompiledMethod CompiledMethodInspector)
>> (CompositeEvent OrderedCollectionInspector)
>> (Dictionary DictionaryInspector)
>> (ExternalStructure ExternalStructureInspector)
>> (FloatArray OrderedCollectionInspector)
>> (OrderedCollection OrderedCollectionInspector)
>> (Set SetInspector)
>> (WeakSet WeakSetInspector)
>> ) do:[:spec|
>> map at: spec first put: spec last.
>> ].
>> anObject class withAllSuperclassesDo:[:cls|
>> map at: cls name ifPresent:[:inspectorName| ^Smalltalk classNamed: inspectorName].
>> ].
>> ^Inspector
>>
>> Is this really to be preferred over sending inspectorClass to the object? This method is bad because it is a point of collision for anyone who wants to add a custom inspector. Hence it creates unnecessary conflicts between packages, whereas implementing inspectorClass allows one to keep things separated.
>>
>> The late binding/defaulting the use of the class name and classNamed: provides here could be achieved by implementing Object>>inspectorClassName just as easily as this hard-wired table.
>>
>> _,,,^..^,,,_
>> best, Eliot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180205/d18f2f43/attachment.html>
More information about the Squeak-dev
mailing list
|