<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr"><br></div><div dir="ltr"><br><blockquote type="cite">On Feb 25, 2020, at 9:57 AM, Thiede, Christoph <Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">



<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>> <span>All of ifTrue: ifFalse: and ifNotNil: evaluate to false</span></p>
<p><span><br>
</span></p>
<p><span>You mean nil. Alright! :-)</span></p></div></div></blockquote><div dir="ltr"><div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr"><p><span style="font-size: 12pt;">oops :-(</span></p></div></div><blockquote type="cite"><div dir="ltr"><div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p><span><br>
</span></p>
<p><span>Best,</span></p>
<p><span>Christoph</span></p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda@gmail.com><br>
<b>Gesendet:</b> Dienstag, 25. Februar 2020 18:49:52<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Tools-ct.945.mcz</font>
<div> </div>
</div>
<div>
<div dir="ltr">Hi Christoph, Hi All,</div>
<div dir="ltr"><br>
<blockquote type="cite">On Feb 25, 2020, at 9:33 AM, Thiede, Christoph <Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:<br>
<br>
</blockquote>
</div>
<blockquote type="cite">
<div dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Is it nice to have an implicit ifNil: [nil] return value?</p>
</div>
</div>
</blockquote>
<div><br>
</div>
IMO *NO*!!
<div><br>
</div>
<div>All of ifTrue: ifFalse: and ifNotNil: evaluate to false if their receiver is that which doesn’t select the block.  Not knowing this is illiteracy.  The definitions are there to be read (and there’s only six of them ferchrissakes).  Please let’s not go
 the gcc way and through passive aggressive warnings force every thing to be parenthesized and to not use ifTrue: ifFalse: and ifNotNil:, and to have to say [nil] instead of [].  Conciseness is a value in itself and the basics of Smalltalk literacy are very
 little effort to attain.</div>
<div><br>
</div>
<div>I remember with some horror in 1995 finding lots of code in the VisualWorks vm that looked like</div>
<div><br>
</div>
<div>    if (EXPR == true) ...</div>
<div><br>
</div>
<div>Please, no.</div>
<div><br>
<blockquote type="cite">
<div dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div>
<div class="_rp_T4" id="Item.MessagePartBody">
<div class="_rp_U4 ms-font-weight-regular ms-font-color-neutralDark rpHighlightAllClass rpHighlightBodyClass" id="Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="divtagdefaultwrapper"><font face="Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="Signature">
<div style="margin:0px"><font style="font-family:Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont">
<div><font size="3" color="black"><span style="font-size:12pt"><a href="http://www.hpi.de/" target="_blank" rel="noopener noreferrer" id="LPNoLP"><font size="2"><span id="LPlnk909538"><font color="#757B80"></font></span></font></a></span></font></div>
</font></div>
</div>
</font></div>
</div>
</div>
</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Dienstag, 25. Februar 2020 15:13:42<br>
<b>An:</b> John Pfersich via Squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Tools-ct.945.mcz</font>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
> <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">I still feel like using #ifNil:, #ifNotNil: in a cascade is not right.</span>
<div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br>
</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Me too. It's hard to read.</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br>
</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">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;">
<p style="color: #AAAAAA; margin-top: 10px;">Am 25.02.2020 11:36:00 schrieb Levente Uzonyi <leves@caesar.elte.hu>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">Hi Christoph,<br>
<br>
I still feel like using #ifNil:, #ifNotNil: in a cascade is not right.<br>
In this case, having #yourself inside the #ifNotNil: block looks more <br>
natural to me:<br>
<br>
^(self browseVersionsOf: aCompiledMethod) ifNotNil: [:browser |<br>
browser<br>
selectMethod: aCompiledMethod;<br>
yourself ]<br>
<br>
<br>
Levente<br>
<br>
On Mon, 24 Feb 2020, commits@source.squeak.org wrote:<br>
<br>
> Christoph Thiede uploaded a new version of Tools to project The Inbox:<br>
> http://source.squeak.org/inbox/Tools-ct.945.mcz<br>
><br>
> ==================== Summary ====================<br>
><br>
> Name: Tools-ct.945<br>
> Author: ct<br>
> Time: 24 February 2020, 1:56:51.392323 pm<br>
> UUID: cc577466-ca48-484b-9454-11ae7ffde0b2<br>
> Ancestors: Tools-mt.940<br>
><br>
> Fixes a bug/unnecessary limitation in VersionsBrowser class >> #browseMethod: that raised an error when browsing a method that had been removed from the system.<br>
><br>
> You can also reproduce it via: thisContext method browse "on a fresh image".<br>
><br>
> This commit replaces Tools-ct.944, which has been refactored again to reuse the return carat according to Kent Beck ("Format conditionals so their value is used where it clearly expresses the intent of the method"). Thanks to Chris for the reminder!<br>
><br>
> =============== Diff against Tools-mt.940 ===============<br>
><br>
> Item was changed:<br>
> ----- Method: VersionsBrowser class>>browseMethod: (in category 'instance creation') -----<br>
> browseMethod: aCompiledMethod<br>
> <br>
> + ^ (self browseVersionsOf: aCompiledMethod)<br>
> + ifNotNil: [:browser |<br>
> + browser selectMethod: aCompiledMethod];<br>
> - ^ (self browseVersionsForClass: aCompiledMethod methodClass selector: aCompiledMethod selector)<br>
> - selectMethod: aCompiledMethod;<br>
> yourself!<br>
><br>
> Item was added:<br>
> + ----- Method: VersionsBrowser class>>browseVersionsOf: (in category 'instance creation') -----<br>
> + browseVersionsOf: aCompiledMethod<br>
> + <br>
> + | methodClass methodSelector |<br>
> + methodClass := aCompiledMethod methodClass.<br>
> + methodSelector := aCompiledMethod selector.<br>
> + ^ self<br>
> + browseVersionsOf: aCompiledMethod<br>
> + class: methodClass<br>
> + meta: methodClass isMeta<br>
> + category: (methodClass organization categoryOfElement: methodSelector)<br>
> + selector: methodSelector!<br>
<br>
</div>
</blockquote>
</div>
</div>
<span></span><br>
</div>
</blockquote>
</div>
</div>


<span></span><br></div></blockquote></body></html>