[squeak-dev] Shadowing "reserved" variables

Chris Muller ma.chris.m at gmail.com
Fri Jul 19 08:01:07 UTC 2019


Could we possibly let standard Smalltalk-80 be the default choice, and
"crazy" be the optional choice that "experimenters" would explicitly invoke?

That way, we don't even need a Warning...



 - Chris




On Fri, Jul 19, 2019 at 12:40 AM Marcel Taeumel <marcel.taeumel at hpi.de> wrote:
>
> Shadowing those reserved variables seems to be a nice property that supports (crazy) language experiments. We shouldn't make use of it in Trunk, though.
>
> +1 for adding a preference to raise a Warning (or Error) if somebody tries that
> -1 for prohibiting that in Squeak's default parser all the time
>
> Best,
> Marcel
>
> Am 19.07.2019 04:15:28 schrieb Frank Shearar <frank.shearar at gmail.com>:
>
> The snippet from the standard says that it is illegal to use these identifiers as method arguments. The example uses block arguments.
>
> Now maybe a reasonable person would assume that argument names, regardless of whether method or block (especially if one views blocks as anonymous methods), come from the same set, and maybe it seems like a terrible idea to allow this kind of shadowing,  but I don't see the current behaviour as incompatible with the standard snippet.
>
> So sure, forbid such shadowing because it's terrible, but I don't see it being ILLEGAL.
>
> frank
>
> On Thu., Jul. 18, 2019, 18:26 JOHN SARKELA via Squeak-dev, <squeak-dev at lists.squeakfoundation.org> wrote:
>>
>> It is by definition erroneous. It is counter to the definition of the standard language. That is a problem that should be fixed.
>>
>> On Jul 18, 2019, at 7:53 PM, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
>>
>> Is it really a problem?
>> Did the system horribly break?
>> IMO this should just be not recommended.
>>
>> Le ven. 19 juil. 2019 à 00:39, Chris Muller <asqueaker at gmail.com> a écrit :
>>>
>>> Wow.  We should disallow that.  Those words are reserved.
>>>
>>> On Wed, Jul 17, 2019 at 5:52 AM Levente Uzonyi <leves at caesar.elte.hu> wrote:
>>>>
>>>> Hi All,
>>>>
>>>> You can currently evaluate the following:
>>>>
>>>> [ :self :thisContext |
>>>>         | nil super true false |
>>>>         nil := 1.
>>>>         super := 2.
>>>>         true := 3.
>>>>         false := 4.
>>>>         self + thisContext = (nil + super + true + false) ] value: 4 value: 6
>>>>
>>>> Is this the expected behavior or should we disallow such oddities?
>>>>
>>>> Levente
>>>>
>>>
>>
>>
>>


More information about the Squeak-dev mailing list