[Newbies] Re: [Squeak 0006937]: removeAll: aCollection doesn't do what we expect if aCollection==self

Klaus D. Witzel klaus.witzel at cobss.com
Tue Feb 19 21:16:54 UTC 2008


Hi nicolas,

in your "counter" example you have forgotten that this bug is about  
failure of removal, but your example does not fail, instead it removes all  
elements (in Squeak 3.9, where MappedCollection still exists).

Can you tell us why? And please only add code to bug reports which does  
what you claim; things which don't work can be discussed here :)

/Klaus

On Tue, 19 Feb 2008 21:28:25 +0100 a NOTE has been added to this issue:
> ======================================================================
> http://bugs.squeak.org/view.php?id=6937
> ======================================================================
> Reported By:                cdrick
> Assigned To:
> ======================================================================
> Project:                    Squeak
> Issue ID:                   6937
> Category:                   Collections
> Reproducibility:            always
> Severity:                   minor
> Priority:                   normal
> Status:                     new
> ======================================================================
> Date Submitted:             02-19-2008 18:12 UTC
> Last Modified:              02-19-2008 20:28 UTC
> ======================================================================
> Summary:                    removeAll: aCollection doesn't do what we  
> expect if
> aCollection==self
> Description:
> This known error has had a revival originating from a mail of Sophie in  
> the
> beginnner list... and I ended up opening a bug report...
>
> The problem is:
>
> col := #(1 2 3) asOrderedCollection.
> col  removeAll: col.
> ^col   returns an OrderedCollection(2) instead of an empty one as we  
> would
> expect...
> ======================================================================
>
> ----------------------------------------------------------------------
>  kwl - 02-19-08 18:51
> ----------------------------------------------------------------------
> OrderedCollection-removeAll-kwl-6937.st tested with the 441 cases in the
> CollectionTests category, all green.
>
> ----------------------------------------------------------------------
>  nicolas cellier - 02-19-08 20:28
> ----------------------------------------------------------------------
> "As posted in beginners list, self == aCollection does not handle case  
> when
> aCollection is just a wrapper on self...
> So the change won't removeAll problems...
> in a 3.9 image try this:"
>
> | collec1 collec2 |
> collec1 := OrderedCollection with: 'a' with: 'b' with: 'c'.
> collec2 := MappedCollection collection: collec1 map: (3 to: 1 by: -1).
> collec1 removeAll: collec2.
> collec1 inspect
>
> "Agree, yet, the problem lies in super...
> Note: MappedCollection was removed from 3.10, but in spirit there can be
> other wrapper collections (i used some myself)."
>
> Issue History
> Date Modified   Username       Field                    Change
> ======================================================================
> 02-19-08 18:12  cdrick         New Issue
> 02-19-08 18:51  kwl            File Added:
> OrderedCollection-removeAll-kwl-6937.st
> 02-19-08 18:51  kwl            Note Added: 0011843
> 02-19-08 20:28  nicolas cellierNote Added: 0011846
> ======================================================================
>



More information about the Beginners mailing list