<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Christoph --<div><br></div><div>> <span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Am I missing anything else here?</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">You just found another place for this unnecessary ifNil-check. ;-) Instead, please try to figure out how it can happen that nil find its way into the package organizer.</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">-1 on </span><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Tools-ct.1145 (inbox)</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">> </span><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">To reproduce the bug, open a system browser, focus the system category list without selecting any item, and press Escape.</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">I cannot reproduce this bug. I suppose that my "PackageOrganizer default" does not have a strange nil package in it. ;-)</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Best,</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Marcel</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></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 26.03.2022 16:44:57 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">


<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif">
<p>Hi Marcel, hi Lauren,</p>
<p><br>
</p>
<p>I suggested an alternative fix to this problem in <span>Tools-ct.1145 (inbox). Am I missing anything else here?</span></p>
<p><span><br>
</span></p>
<p><span>To reproduce the bug, open a system browser, focus the system category list without selecting any item, and press Escape.</span></p>
<p><span><br>
</span></p>
<p><span>Best,</span></p>
<p><span>Christoph</span></p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Lauren Pullen <drurowin@gmail.com><br>
<b>Gesendet:</b> Montag, 14. März 2022 21:18:53<br>
<b>An:</b> squeak-dev@lists.squeakfoundation.org<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Tools-lrnp.1140.mcz</span>
<div> </div>
</div>
</div>
<span style="font-size: 10pt"><span style="font-size: 10pt">
<div class="PlainText">Hi Marcel,<br>
<br>
On 3/14/22 11:59, Marcel Taeumel wrote:<br>
> This will raise a debugger:<br>
>    PackageOrganizer default packageOfSystemCategory: nil<br>
> <br>
> <br>
> This will not raise a debugger:<br>
>    PackageOrganizer default packageOfSystemCategory: nil ifNone: nil<br>
... Very strange.  Both raise a debugger on MNU for me in<br>
mac-alpha6.0-21442-x64.<br>
<br>
I'll append my list at the end.  I'm curious what yours is, since you<br>
don't have the problem.<br>
<br>
>>  and noticed PackageInfo handles the nil system category as never yourself<br>
> <br>
> I don't understand what you mean here. :-/<br>
Sorry for the poor wording.<br>
<br>
PackageInfo>>category:matches: starts with a test for categoryName isNil<br>
and returns false in that case.<br>
>> That discovered, I still think putting a short circuit return in<br>
>> PackageOrganizer makes sense. If nil means 'not me', why spend time<br>
>> enumerating? <br>
> <br>
> Well, you suggest a typical "ifNil"-check. The contract in #packageOfSystemCategory:ifNone: is that only valid system categories are used as the "aSystemCategory" argument. Providing 'nil' is not a valid system category. Now, anything can happen. Usually,
 we rely on the fact that it is not possible to have package with a nil name.<br>
> <br>
> If we would not rely on this contract, we would start to sprinkle "ifNil" checks all over the place. That's not a good style. It produces code that is difficult to maintain because nil has no specific domain.<br>
Understood.<br>
<br>
I had presumed #category:matches: and #packageOfSystemCategory:ifNone:<br>
had the same contract for systemCategory, so matched<br>
#packageOfSystemCategory:ifNone: to also allow nil.<br>
<br>
<br>
Listing of 'PackageOrganizer default packages':::<br>
<br>
<br>
a PackageInfo(ConfigurationOfGofer)<br>
a PackageInfo(SMBase)<br>
a PackageInfo(Help-Squeak-Project)<br>
a PackageInfo(Metacello-Base)<br>
a PackageInfo(ST80Tests)<br>
a PackageInfo(Monticello)<br>
a PackageInfo(FFI-Libraries)<br>
a PackageInfo(Files)<br>
a PackageInfo(SUnit)<br>
a PackageInfo(ToolBuilder-SUnit)<br>
a PackageInfo(Metacello-Help)<br>
a PackageInfo(ToolBuilder-Tests)<br>
a PackageInfo(FFI-CallbacksTests)<br>
a PackageInfo(Protocols)<br>
a PackageInfo(Sound)<br>
a PackageInfo(EToys)<br>
a PackageInfo(PreferenceBrowser)<br>
a PackageInfo(TrueType)<br>
a MCMockPackageInfo(MonticelloMocks)<br>
a PackageInfo(Tests)<br>
a PackageInfo(Graphics)<br>
a PackageInfo(MorphicTests)<br>
a PackageInfo(ConfigurationOfMetacello)<br>
a PackageInfo(ToolBuilder-Morphic)<br>
a PackageInfo(MonticelloForTraits)<br>
a PackageInfo(SqueakSSL-SMTP)<br>
a PackageInfo(System)<br>
a PackageInfo(Metacello-Bitbucket)<br>
a PackageInfo(MultilingualTests)<br>
a PackageInfo(ST80)<br>
a PackageInfo(XML-Explorer)<br>
a PackageInfo(Kernel)<br>
a PackageInfo(Chronology-Core)<br>
a PackageInfo(MonticelloFileTree-Core)<br>
a PackageInfo(MonticelloFileTree-FileDirectory-Utilities)<br>
a PackageInfo(VersionNumber)<br>
a PackageInfo(KernelTests)<br>
a PackageInfo(FFI-PoolsTests)<br>
a PackageInfo(Help-Squeak-SWiki)<br>
a PackageInfo(Balloon)<br>
a PackageInfo(Collections)<br>
a PackageInfo(VersionNumberTests)<br>
a PackageInfo(SMLoader)<br>
a PackageInfo(STON-Text support)<br>
a PackageInfo(Network)<br>
a PackageInfo(XML-Parser)<br>
a PackageInfo(SqueakSSL-Core)<br>
a PackageInfo(Metacello-GitBasedRepository)<br>
a PackageInfo(SystemChangeNotification-Tests)<br>
a PackageInfo(FFI-Callbacks)<br>
a PackageInfo(MonticelloConfigurations)<br>
a PackageInfo(CollectionsTests)<br>
a PackageInfo(Compression)<br>
a PackageInfo(Metacello-FileTree)<br>
a PackageInfo(MorphicExtrasTests)<br>
a PackageInfo(FFI-Kernel)<br>
a PackageInfo(ToolBuilder-MVC)<br>
a PackageInfo(GetText)<br>
a PackageInfo(WebClient-Core)<br>
a PackageInfo(Compiler)<br>
a PackageInfo(Autogenerated )<br>
a PackageInfo(Installer-Core)<br>
a PackageInfo(Squeak-Version)<br>
a PackageInfo(Regex-Core)<br>
a PackageInfo(Help-Squeak-TerseGuide)<br>
a PackageInfo(BaselineOfSton)<br>
a PackageInfo(Traits)<br>
a PackageInfo(TraitsTests)<br>
a PackageInfo(Gofer-Core)<br>
a PackageInfo(NetworkTests)<br>
a PackageInfo(Chronology-Tests)<br>
a PackageInfo(PackageInfo-Base)<br>
a PackageInfo(Multilingual)<br>
a PackageInfo(60Deprecated)<br>
a PackageInfo(WebClient-Help)<br>
a PackageInfo(Regex-Tests-Core)<br>
a PackageInfo(WebClient-HTTP)<br>
a PackageInfo(FFI-Tools)<br>
a PackageInfo(GraphicsTests)<br>
a PackageInfo(WebClient-Tests)<br>
a PackageInfo(ShoutCore)<br>
a PackageInfo(SqueakSSL-Tests)<br>
a PackageInfo(Services-Base)<br>
a PackageInfo(Metacello-Cypress)<br>
a PackageInfo(Help-Squeak-CorePackages)<br>
a PackageInfo(BaselineOfMetacello)<br>
a PackageInfo(MorphicExtras)<br>
a PackageInfo(Environments)<br>
a PackageInfo(OSProcess)<br>
a PackageInfo(BaselineOfFileTree)<br>
a PackageInfo(Metacello-Platform)<br>
a PackageInfo(ConfigurationOfHelpSystem)<br>
a PackageInfo(SUnitGUI)<br>
a PackageInfo(ReleaseBuilder)<br>
a PackageInfo(FFI-Tests)<br>
a PackageInfo(FFI-Pools)<br>
a PackageInfo(ShoutTests)<br>
a PackageInfo(SystemReporter)<br>
a PackageInfo(UpdateStream)<br>
a PackageInfo(Metacello-MC)<br>
a PackageInfo(ConfigurationOfFFI)<br>
a PackageInfo(Metacello-GitHub)<br>
a PackageInfo(ST80Tools)<br>
a PackageInfo(ToolsTests)<br>
a PackageInfo(HelpSystem-Tests)<br>
a PackageInfo(STON-Core)<br>
a PackageInfo(HelpSystem-Core)<br>
a PackageInfo(CommandLine)<br>
a PackageInfo(Tools)<br>
a PackageInfo(SUnitTools)<br>
a PackageInfo(Nebraska)<br>
a PackageInfo(ConfigurationOfFileTree)<br>
a PackageInfo(BalloonTests)<br>
a PackageInfo(CommandShell)<br>
a PackageInfo(STON-Tests)<br>
a PackageInfo(ToolBuilder-Kernel)<br>
a PackageInfo(Morphic)<br>
a PackageInfo(Metacello-ToolBox)<br>
a PackageInfo(Metacello-Core)<br>
<br>
</div>
</span></span>
</div></blockquote></div>