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


Reply via email to