<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        Hi Christoph,<div><br></div><div>you are proposing an interface to avoid having to deal with Exception >> #pass and #resume:. I like #on:when:do:, maybe renamed to: #on:satisfying:do:. I do not like your & syntax because it would mix Exception, ExceptionSet, and BlockClosure -- which may be hard to understand and debug.</div><div><br></div><div>Bset,</div><div>Marcel</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;'>
                        <p style='color: #AAAAAA; margin-top: 10px;'>Am 09.10.2020 03:15:43 schrieb Chris Muller <asqueaker@gmail.com>:</p><div style='font-family:Arial,Helvetica,sans-serif'>
<div dir="ltr"><div dir="ltr"></div><div class="gmail_quote"><div class="gmail_attr">Hi Christoph,</div><div class="gmail_attr"><br></div><div class="gmail_attr">Are these equivalent --<br></div><div class="gmail_attr"><br></div><div class="gmail_attr">On Thu, Jan 2, 2020 at 7:58 PM Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de" target="_blank">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Outlook jumbled my message completely. Here the examples again:<br>
<br>
[self model merge]<br>
        on: MCMergeResolutionRequest<br>
                & [:request | request merger conflicts notEmpty]<br>
        do: [:request | request resume: true].<br></blockquote><div><br></div><div>equal to:</div><div><br></div><div>  [self model merge]</div><div>        on: MCMergeResolutionRequest</div><div>        do: </div><div>           [:request | request merger conflicts notEmpty</div><div>                ifTrue: [request resume: true]</div><div>                ifFalse: [request pass] ]</div><div><br></div><div>?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
[client unusedBytecode]<br>
        on: MessageNotUnderstood<br>
                & [:ex | ex receiver == client]<br>
                & [:ex | ex message selector == #unusedBytecode]<br>
        do: [self error: 'unusedBytecode'].<br></blockquote><div><br></div><div>equal to</div><div><br></div><div>   [client unusedBytecode]</div><div>         on: MessageNotUnderstood</div><div>         do:</div><div>               [:ex | (ex receiver == client and: [ ex message selector == #unusedBytecode ])</div><div>                      ifTrue: [ self error: 'unusedBytecode' ]</div><div>                      ifFalse: [ ex pass ] ]</div><div><br></div><div>?</div><div><br></div><div>Not sure if I fully understood it, but is it just a reformat of the syntax?  Or something more empowering?</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
references := [self resolvePackageSpecReferences: packageSpec gofer: gofer]<br>
        on: [self class retryPackageResolution] & (Error , GoferRepositoryError)<br>
        do: [:ex | retryCount >= 2 ifFalse: [<br>
                ex return: #() ]<br>
        on: [self class retryPackageResolution] & GoferRepositoryError.<br>
                Transcript showln: 'gofer repository error: '; show: ex description printString; show: '...ignoring'.<br>
                (repositoryError := ex) resume: #()]. </blockquote><div><br></div><div>(wait, is that, #on:do:on: ?  I'm confused on this one...)</div><div><br></div><div>  - Chris</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
sz := 1024*1024*1024*1024.<br>
self<br>
        should: [Array new: sz]<br>
        raise: OutOfMemory, (Error & [:ex | ex messageText includesSubstring: 'basicNew: with invalid argument']).<br></blockquote><div><br></div></div></div>
</div></blockquote>
                                        </div></body>