[squeak-dev] Shadowing "reserved" variables

Marcel Taeumel marcel.taeumel at hpi.de
Fri Jul 19 08:45:55 UTC 2019


Sure, there is always the option to provide a custom parser. I was just thinking about how just overriding "self" is simpler than figuring out how to provide a custom parser for such things.

So, even with a Warning, the default should be to throw that Warning. I am just not in favor of hard-coding that rule into Parser. :-)


Best,
Marcel
Am 19.07.2019 10:01:45 schrieb Chris Muller <ma.chris.m at gmail.com>:
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 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 :
>
> 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, 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 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 a écrit :
>>>
>>> Wow. We should disallow that. Those words are reserved.
>>>
>>> On Wed, Jul 17, 2019 at 5:52 AM Levente Uzonyi 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
>>>>
>>>
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190719/c10c7eb8/attachment.html>


More information about the Squeak-dev mailing list