<div dir="ltr"><div>Hi Marcel,</div><div>beware, there are specialSelectors and inlined selectors too (do: ifTrue: etc...), so it might happen that low level literals enumeration does not fit higher level...<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 24 juin 2019 à 10:48, Marcel Taeumel <<a href="mailto:marcel.taeumel@hpi.de">marcel.taeumel@hpi.de</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id="gmail-m_8493271781242486928__MailbirdStyleContent" style="font-size:10pt;font-family:Arial;color:rgb(0,0,0)">
                                        
                                        
                                            
                                        
                                        
                                        Hi, there.<div><br></div><div>Please find attached a new version of this refactoring.</div><div><br></div><div>I discovered more recent code for scanning literals (that seems to be at the <b>bytecode</b> level, not <b>object</b> level):</div><div><br></div><div>BytecodeEncoder class >> #scanBlockOrNilForLiteral:</div><div><span style="font-size:13.3333px">EncoderForSistaV1 class >> #scanBlockOrNilForLiteral:</span></div><div><span style="font-size:13.3333px">EncoderForV3 class >> #scanBlockOrNilForLiteral:</span></div><div><span style="font-size:13.3333px"><br></span></div><div><span style="font-size:13.3333px">However, I could not see a way to <b>enumerate</b> literals this way. Did I miss something? Makes me wonder about the entire use of CompiledCode >> #literalsDo:. We could replace #hasLiteral: with an implementation similar to Behavior >> #whichSelectorsreferTo:thorough: using #scanBlockOrNilForLiteral:.</span></div><div><br></div><div><img src="cid:16b88b1abb4cb971f161" width="auto"></div><div><br></div><div><span style="font-size:13.3333px;line-height:20px">Thoughts? Eliot? :-) How is the conceptional relationship between "has literal" and "literals do"?</span></div><div><span style="font-size:13.3333px;line-height:20px"><br></span></div><div><span style="font-size:13.3333px;line-height:20px">Best,</span></div><div><span style="font-size:13.3333px;line-height:20px">Marcel</span></div><div class="gmail-m_8493271781242486928mb_sig"></div>
                                        
                                        <blockquote class="gmail-m_8493271781242486928history_container" type="cite" style="border-left-style:solid;border-width:1px;margin-top:20px;margin-left:0px;padding-left:10px;min-width:500px">
                        <p style="color:rgb(170,170,170);margin-top:10px">Am 28.05.2019 14:49:59 schrieb Marcel Taeumel <<a href="mailto:marcel.taeumel@hpi.de" target="_blank">marcel.taeumel@hpi.de</a>>:</p><div style="font-family:Arial,Helvetica,sans-serif"><div id="gmail-m_8493271781242486928__MailbirdStyleContent" style="font-size:10pt;font-family:Arial;color:rgb(0,0,0)">Hi, there.<div class="gmail-m_8493271781242486928mb_sig"></div><div><br></div><div>Please find attached a change set that (tries to) clean up everything related to enumerating or testing literals in CompiledCode, CompiledMethod, and CompiledBlock.</div><div><br></div><div>I have three important questions:</div><div><br></div><div>- The purpose of #hasLiteralThorough is not needed anymore because we enumerate and test always in a "thorough" way?</div><div><span style="font-size:10pt;line-height:1.5">- Are the enumeration boundaries in CompiledCode, CompiledMethod, CompiledBlock in #literalsDo: correct?</span></div><div><span style="font-size:10pt;line-height:1.5">- What is a literal as expected in #hasLiteral: etc. to answer true? Just symbols or also bindings (symbol-to-class) and classes themselves?</span></div><div><span style="font-size:10pt;line-height:1.5"><br></span></div><div><span style="font-size:10pt;line-height:1.5">Try exploring this result: "(Morph >> #fullDrawOn:) literals" or similar.</span></div><div><br></div><div><img width="auto"></div><div><br></div><div>Best,</div><div>Marcel</div></div></div></blockquote></div><br>
</blockquote></div>