On 24 Nov 2013, at 21:31, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
well well well
Code that is not used breaks. I do not know how to change that. I really do not.
messageList "Answer an Array of the message selectors of the currently selected message category, provided that the messageCategoryListIndex is in proper range. Otherwise, answer an empty Array If messageCategoryListIndex is found to be larger than the number of categories (it happens!), it is reset to zero." | sel | (sel := self messageCategoryListSelection) ifNil: [ ^ self classOrMetaClassOrganizer ifNil: [Array new] ifNotNil: [self classOrMetaClassOrganizer allMethodSelectors] ].
^ (self classOrMetaClassOrganizer listAtCategoryNumber: messageCategoryListIndex) ifNil: [messageCategoryListIndex := 0. Array new]
it looks like messageList or allMethodSelectors got changed and do not return anymore an indexable collection. So I will fix that too.
Stef
On Nov 24, 2013, at 9:24 PM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
Smalltalk tools register: Browser as: #browser Smalltalk tools openClassBrowser
PluggableListMorph was not robust enough Apparently when getListSelector returns a set (like messageList now in 3.0 then getList breaks
getList "Answer the list to be displayed. Caches the returned list in the 'list' ivar" getListSelector == nil ifTrue: [^ #()]. list := model perform: getListSelector. list == nil ifTrue: [^ #()]. list := list collectWithIndex: [ :item :index | self wrapItem: item index: index ]. ^ list
=> fix the problem. I will produce a slice. And I think that the messageList returning a set is a mistake too.
getList "Answer the list to be displayed. Caches the returned list in the 'list' ivar" getListSelector == nil ifTrue: [^ #()]. list := (model perform: getListSelector) asArray. list == nil ifTrue: [^ #()]. list := list collectWithIndex: [ :item :index | self wrapItem: item index: index ]. ^ list
Stf