<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        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:4ce9ca11-c668-4cd1-a0e4-c638b7daa655" width="auto"></img></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="mb_sig"></div>
                                        
                                        <blockquote class="history_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: #AAAAAA; margin-top: 10px;">Am 28.05.2019 14:49:59 schrieb Marcel Taeumel <marcel.taeumel@hpi.de>:</p><div style="font-family:Arial,Helvetica,sans-serif"><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">Hi, there.<div class="mb_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 src="cid:f71772ca-abc9-4421-a42a-8331da578c50" width="auto"></img></div><div><br></div><div>Best,</div><div>Marcel</div></div></div></blockquote></div>