The EyeCollectionInspector show the 'collection view' (what enumeration does), the EyeBasicInspector shows the actual instance variables as well as the variable part (and thus allows a look inside). That is why there are multiple views.
On 05 May 2014, at 23:50, Nicolai Hess <nicolaih...@web.de> wrote: > 2014-05-05 19:13 GMT+02:00 Ben Coman <b...@openinworld.com>: > > Thanks. That info made it much easier to try. Sorry I didn't end up with an > answer for you, but I confirm there is some issue here, or something new I > can learn when other chip in. > > Here is what I tried. > > * Installed XMLParser (monty.58) from Configuration Browser in Pharo 3. > > * Ran your code. Got the same error. > > * From the call stack I observed that > XMLOrderedCollection(SequenceableCollection)>>copyReplaceFrom:to:with: > has the line "newSequenceableCollection := self species new: newSize." such > that it seems your error might be reduced to the question of why the > following two snippets fail: > d := OrderedCollection new: 1. > d at: 1 put: 1. > > e := OrderedCollection new: 3. > e at: 2 put: 1. > > However I'm sorry that is beyond my knowledge, and I'm hoping someone else > can chip in so I can learn something. > > Pushing on, I noticed that XMLOrderedList has an instance variable > /collection/ which holds the OrderedCollection. > > Now I wonder (without great experience and hoping to learn something) if it > smells funny that XMLOrderedList inherits all of SequencableCollection > methods that can not operate on /collection/. > > I noticed that XMLOrderedList was using an inherited > SequenceableCollection>>copyReplaceFrom:to:with > while OrderedCollection overrode that method with its own. So taking > inspiration XMLOrderedList>>copyFrom:to: to override > SequencableCollection>>copyReplaceFrom:to:with: to work with /collection/ > seems to solve your problem: > XMLOrderedList>>copyReplaceFrom: start to: stop with: > replacementCollection > ^ self newWithCollection: > (collection copyReplaceFrom: start to: stop with: > replacementCollection ) > > > Along the way I noticed a few (possible) bugs that seems not related to your > problem: > > * When stepping through XMLOrderedList>>setCollection: > there is a red-box-of-death for the instance variables, which can be solved > by defining the following. > XMLOrderedList>>size > ^ collection ifNil: [ 0 ] ifNotNil: [ collection size] > > * In the debugger the /collection/ instance variable is not shown! (e.g. line > XMLOrderedList>>at:put:). > Can someone confirm this should show? > > > I think this is the default Collection inspector (EyeCollectionInspector). > Debugging > a OrderedCollection behaves the same, the debugger does not show the array > and index > instvars. > > nicolai > > > > HTH > cheers -ben > > Thushar G R wrote: >> XMLOrderedList belongs to package XML-Parser-Nodes. >> >> a := XMLOrderedList new. >> a add:'1'. >> a , XMLOrderedList new. >> >> Here select all and Do it. On line 3 (a , XMLOrderedList new.) i am >> expected to get a copy of 'a' , but instead it throws an error >> SubscriptOutOfBounds. >> >> >> >> >> OrderedCollection(Object)>>errorSubscriptBounds: >> OrderedCollection>>ensureBoundsFrom:to: >> OrderedCollection>>at:put: >> OrderedCollection(SequenceableCollection)>>replaceFrom:to:with:startingAt: >> XMLOrderedList>>replaceFrom:to:with:startingAt: >> XMLOrderedList(SequenceableCollection)>>copyReplaceFrom:to:with: >> XMLOrderedList(SequenceableCollection)>>, >> UndefinedObject>>DoIt >> OpalCompiler>>evaluate >> SmalltalkEditor>>evaluateSelectionAndDo: >> PluggableTextMorph>>inspectIt in Block: [ textMorph editor >> evaluateSelectionAndDo: [ :resu...etc... >> PluggableTextMorph>>handleEdit: in Block: [ result := editBlock value ] >> TextMorphForEditView(TextMorph)>>handleEdit: >> PluggableTextMorph>>handleEdit: >> PluggableTextMorph>>inspectIt >> SmalltalkEditor class>>buildSmalltalkEditorKeymappingsOn: in Block: [ :morph >> | morph inspectIt ] >> BlockClosure>>cull: >> BlockClosure>>cull:cull: >> BlockClosure>>cull:cull:cull: >> KMCategoryBinding>>completeMatch:buffer: >> KMKeymap>>notifyCompleteMatchTo:buffer: in Block: [ :l | l completeMatch: >> self buffer: aBuffer ] >> Array(SequenceableCollection)>>do: >> KMKeymap>>notifyCompleteMatchTo:buffer: >> KMKeymap>>onMatchWith:notify:andDo: >> KMCategory>>onMatchWith:notify:andDo: in Block: [ :entry | entry >> onMatchWith: anEventBuffer notify...etc... >> Set>>do: >> KMCategory>>onMatchWith:notify:andDo: >> KMCategoryBinding>>verifyMatchWith:notifying:thenDoing: >> KMDispatcher>>dispatch: in Block: [ :aTarget | ... >> OrderedCollection>>do: >> >> >> Plese refer to the above stack. >> >> Thanks in advance. >> >> thushar >> >> >> On Mon, May 5, 2014 at 6:28 PM, Ben Coman <b...@openinworld.com> wrote: >> Thushar G R wrote: >> Hi, >> >> I am getting an error while doing this. >> >> a := XMLOrderedList new. >> a add:'1'. >> a , XMLOrderedList new. >> >> Thanks, >> >> Thushar >> I could give you "an answer" ;) - but it would be what you wanted. It would >> help if you told what the error was, where it occurs (which of the three >> lines), and what you expect each line is doing (especially the third line). >> >> Also I don't see XMLOrderedList in the default Pharo image, so it would help >> if you describe where you got that from and how you installed it. >> >> cheers -ben