<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>RE: [BUG]Collection>>removeAll:</TITLE>
</HEAD>
<BODY>
<P><FONT SIZE=2>Hello.</FONT>
</P>
<P><FONT SIZE=2>> MY expectation for</FONT>
<BR><FONT SIZE=2>> x removeAll: y</FONT>
<BR><FONT SIZE=2>>is "x has all the elements in y removed; y is unchanged UNLESS IT IS x". My expectations are not violated.</FONT>
</P>
<P><FONT SIZE=2>Quantify the usefulness of your expectations. Please provide real life examples where x removeAll: x is used as an intention revealing feature in a dialect-independent manner.</FONT></P>
<P><FONT SIZE=2>> In short, #removeAll: is being blamed for not agreeing with expectations that have never been justified elsewhere in Smalltalk. NOT a valid argument against conforming to the standard.</FONT></P>
<P><FONT SIZE=2>The main issue is that it is unclear and intention obscuring (plus what I said in my previous message).</FONT>
</P>
<P><FONT SIZE=2>The standard also says the argument is to be uncaptured, which is defined as meaning the receiver doesn't acquire direct or indirect references to it. I think the spirit of this was "leave the argument alone".</FONT></P>
<P><FONT SIZE=2>Saying "the result is undefined when argument==receiver" also coincides with the "leave the argument alone" attitude.</FONT>
</P>
<P><FONT SIZE=2>The ANSI standard isn't written in stone. I'd rather amend the standard than agreeing with it regardless of the cost.</FONT>
</P>
<P><FONT SIZE=2>Andres.</FONT>
</P>
</BODY>
</HTML>