[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