<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<meta content="text/html; charset=UTF-8">
<style type="text/css" style="">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<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"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><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</font>
<div> </div>
</div>
</div>
<font size="2"><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></font>
</body>
</html>