<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">The ANSI Standard in section 3.4.2 Method Definition, states the following:<div class=""><br class=""></div><div class="">"<span style="font-size: 10pt; font-family: ArialMT;" class="">It is erroneous if the same identifier is used for more than one <method argument> in an individual
<method definition>. It is erroneous if any of the reserved identifiers ('nil', 'true', 'false', 'self', and
'super') is used as a <method argument>. It is erroneous if the same identifier is used as a
<method argument> of a <method definition> and also appears in the method's <temporary
variable list>. An identifier that is used as a <method argument> is called a </span><span style="font-size: 10pt; font-family: Arial; font-style: italic;" class="">method argument
name</span><span style="font-size: 10pt; font-family: ArialMT;" class="">." </span><div><br class=""></div><div>The sections which define the scopes for instances, classes, and pools also prohibit the used of the five reserved words.</div><div><br class=""></div><div>By extension, we may infer that shadowing pseudo-variables such as thisContext should in all likelihood be disallowed as well.</div><div><br class=""></div><div>John</div><div><br class=""><blockquote type="cite" class=""><div class="">On Jul 17, 2019, at 6:51 AM, Levente Uzonyi <<a href="mailto:leves@caesar.elte.hu" class="">leves@caesar.elte.hu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi All,<br class=""><br class="">You can currently evaluate the following:<br class=""><br class="">[ :self :thisContext |<br class=""><span class="Apple-tab-span" style="white-space:pre">  </span>| nil super true false |<br class=""><span class="Apple-tab-span" style="white-space:pre">       </span>nil := 1.<br class=""><span class="Apple-tab-span" style="white-space:pre">      </span>super := 2.<br class=""><span class="Apple-tab-span" style="white-space:pre">    </span>true := 3.<br class=""><span class="Apple-tab-span" style="white-space:pre">     </span>false := 4.<br class=""><span class="Apple-tab-span" style="white-space:pre">    </span>self + thisContext = (nil + super + true + false) ] value: 4 value: 6<br class=""><br class="">Is this the expected behavior or should we disallow such oddities?<br class=""><br class="">Levente<br class=""><br class=""></div></div></blockquote></div><br class=""></div></body></html>