<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Hello,
<div class=""><br class="">
</div>
<div class="">I have a language syntax proposal. I've read the Swift evolution guidelines and hopefully this is the proper way to start. So, my proposal is:</div>
<div class=""><br class="">
</div>
<div class="">Permit a shorthand syntax for invoking the supertype implementation of a property or function. A single statement 'super' is equivalent to invoking the supertype implementation, forwarding the arguments unchanged, and returning the result. For
 example, the following samples:</div>
<div class=""><br class="">
</div>
<div class="">
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="color: rgb(187, 44, 162);" class="">override</span>&nbsp;<span style="color: rgb(187, 44, 162);" class="">func</span>&nbsp;mouseEntered(theEvent:&nbsp;<span style="color: rgb(112, 61, 170);" class="">NSEvent</span>) {</div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
&nbsp; &nbsp;&nbsp;<span style="color: rgb(187, 44, 162);" class="">super</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
&nbsp; &nbsp;&nbsp;<span style="color: rgb(49, 89, 93);" class="">handleMouseEvent</span>(theEvent)</div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
}</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(187, 44, 162);" class="">override</span>&nbsp;<span style="color: rgb(187, 44, 162);" class="">func</span>&nbsp;specialValue(key:&nbsp;<span style="color: rgb(112, 61, 170);" class="">String</span>)
 -&gt;&nbsp;<span style="color: rgb(112, 61, 170);" class="">Int</span>&nbsp;{</div>
<div style="margin: 0px; line-height: normal; color: rgb(187, 44, 162);" class="">
<span style="color: rgb(0, 0, 0);" class="">&nbsp; &nbsp;&nbsp;</span>return<span style="color: rgb(0, 0, 0);" class="">&nbsp;</span>super<span style="color: rgb(0, 0, 0);" class="">&nbsp;&#43;&nbsp;</span><span style="color: rgb(39, 42, 216);" class="">1</span></div>
<div style="margin: 0px; line-height: normal;" class="">}</div>
<div style="margin: 0px; line-height: normal;" class=""><br class="">
</div>
<div style="margin: 0px; line-height: normal;" class="">
<div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(187, 44, 162);" class="">override</span>&nbsp;<span style="color: rgb(187, 44, 162);" class="">var</span>&nbsp;widgetCount:&nbsp;<span style="color: rgb(112, 61, 170);" class="">Int</span>&nbsp;{</div>
<div style="margin: 0px; line-height: normal; color: rgb(187, 44, 162);" class="">
<span style="color: rgb(0, 0, 0);" class="">&nbsp; &nbsp;&nbsp;</span>return<span style="color: rgb(0, 0, 0);" class="">&nbsp;</span>super<span style="color: rgb(0, 0, 0);" class="">&nbsp;&#43;&nbsp;</span><span style="color: rgb(39, 42, 216);" class="">5</span></div>
<div style="margin: 0px; line-height: normal;" class="">}</div>
</div>
</div>
</div>
<div class=""><br class="">
</div>
<div class="">are exactly equivalent to the following samples:</div>
<div class=""><br class="">
</div>
<div class="">
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="color: rgb(187, 44, 162);" class="">override</span>&nbsp;<span style="color: rgb(187, 44, 162);" class="">func</span>&nbsp;mouseEntered(theEvent:&nbsp;<span style="color: rgb(112, 61, 170);" class="">NSEvent</span>) {</div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
&nbsp; &nbsp;&nbsp;<span style="color: rgb(187, 44, 162);" class="">super</span>.<span style="color: rgb(61, 29, 129);" class="">mouseEntered</span>(theEvent)</div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
&nbsp; &nbsp;&nbsp;<span style="color: rgb(49, 89, 93);" class="">handleMouseEvent</span>(theEvent)</div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
}</div>
<div class="">
<div class=""><br class="webkit-block-placeholder">
</div>
<div class="">
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(187, 44, 162);" class="">override</span>&nbsp;<span style="color: rgb(187, 44, 162);" class="">func</span>&nbsp;specialValue(key:&nbsp;<span style="color: rgb(112, 61, 170);" class="">String</span>)
 -&gt;&nbsp;<span style="color: rgb(112, 61, 170);" class="">Int</span>&nbsp;{</div>
<div style="margin: 0px; line-height: normal;" class="">&nbsp; &nbsp;&nbsp;<span style="color: rgb(187, 44, 162);" class="">return</span>&nbsp;<span style="color: rgb(187, 44, 162);" class="">super</span>.specialValue(key) &#43;&nbsp;<span style="color: rgb(39, 42, 216);" class="">1</span></div>
<div style="margin: 0px; line-height: normal;" class="">}</div>
</div>
</div>
<div class=""><br class="webkit-block-placeholder">
</div>
<div class="">
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="color: rgb(187, 44, 162);" class="">override</span>&nbsp;<span style="color: rgb(187, 44, 162);" class="">var</span>&nbsp;widgetCount:&nbsp;<span style="color: rgb(112, 61, 170);" class="">Int</span>&nbsp;{</div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
&nbsp; &nbsp;&nbsp;<span style="color: rgb(187, 44, 162);" class="">return</span>&nbsp;<span style="color: rgb(187, 44, 162);" class="">super</span>.widgetCount &#43;&nbsp;<span style="color: rgb(39, 42, 216);" class="">5</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
}</div>
</div>
<div class=""><br class="">
</div>
<div class="">Alternatives/complementary ideas:</div>
<div class=""><br class="">
</div>
<div class="">- Require `<span style="color: rgb(187, 44, 162); font-family: Menlo; font-size: 11px;" class="">super</span><span style="font-family: Menlo; font-size: 11px;" class="">()</span>` or `<span style="color: rgb(187, 44, 162); font-family: Menlo; font-size: 11px;" class="">super</span><span style="font-family: Menlo; font-size: 11px;" class="">(...)</span>`
 syntax for invocations which are function calls, for consistency with other function calls in the language and/or to indicate that arguments are forwarded</div>
<div class=""><br class="">
</div>
<div class="">Looking forward to your feedback.</div>
<div class=""><br class="">
</div>
<div class="">Thanks!</div>
</div>
</div>
<div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
--&nbsp;<br class="">
Jake Petroules -&nbsp;<a href="mailto:jake.petroules@theqtcompany.com" class="">jake.petroules@theqtcompany.com</a><br class="">
Consulting Services Engineer -&nbsp;The Qt Company</div>
</div>
</div>
<br class="">
</body>
</html>