<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2014/1/11 Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 10 January 2014 20:41, Colin Putney &lt;<a href="mailto:colin@wiresong.com">colin@wiresong.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Jan 10, 2014 at 4:56 AM, Frank Shearar &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; This fails because the CompiledMethod from a removed class returns nil<br>
&gt;&gt; for its #methodClass.<br>
&gt;&gt;<br>
&gt;&gt; The test implies that an orphaned method will still know its removed<br>
&gt;&gt; class.<br>
&gt;&gt;<br>
&gt;&gt; However, Environment &gt;&gt; #forgetClass:logged: clearly nils out the<br>
&gt;&gt; binding of a removed class:<br>
&gt;&gt;<br>
&gt;&gt;     &quot;snip other stuff&quot;<br>
&gt;&gt;     undeclared declare: aClass name from: declarations.<br>
&gt;&gt;     declarations removeKey: aClass name ifAbsent: [].<br>
&gt;&gt;     [undeclared at: aClass name put: nil]<br>
&gt;&gt;         on: AttemptToWriteReadOnlyGlobal<br>
&gt;&gt;         do: [:n | n resume: true].<br>
&gt;&gt;     self binding: binding removedFrom: self]<br>
&gt;&gt;<br>
&gt;&gt; So is this just an API change? Should the test be updated, or is this a<br>
&gt;&gt; bug?<br>
&gt;<br>
&gt;<br>
&gt; It&#39;s not an API change, because SystemDictionary&gt;&gt;forgetClass:logged: does<br>
&gt; the same thing. But I don&#39;t know if the test is right.<br>
<br>
</div></div>In which case the test was passing by accident, until relatively<br>
recently: this used to pass, back in the day.<br>
<span class="HOEnZb"><font color="#888888"><br>
frank<br>
<br></font></span></blockquote><div>No<br>Colin changed the SystemDictionary implementation to align behavior with Environment, check the versions.<br></div><div>Then, I don&#39;t know what goal these tests serve...<br>Maybe if you have a block context hanging around created in a removed class?<br>
</div></div><br></div></div>