<div dir="ltr">On 13 October 2017 at 22:50, Jean-Daniel <span dir="ltr">&lt;<a href="mailto:mailing@xenonium.com" target="_blank">mailing@xenonium.com</a>&gt;</span> wrote:<div><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div>I mean:</div><div><br></div><div>func foo() -&gt; Int { … }</div><div><br></div><div>func bar(callback: () -&gt; discardable Int) { … }</div><div><br></div><div>bar(foo) // does it warns ?</div><div>bar({ 3 }) // does it warns ? If it does, how to avoid it ?</div></div></blockquote><div><br></div><div>thanks.</div><div><br></div><div><span style="font-size:12.800000190734863px">&gt;&gt;&gt; And allowing it in signature but not in lambda would be confusing.</span><br></div><div><span style="font-size:12.800000190734863px"><br></span></div><div><span style="font-size:12.800000190734863px">not any more confusing than</span><span style="font-size:12.800000190734863px"> it is now (</span><span style="font-size:12.800000190734863px">allowing @discardableResult before function name and not allowing it before closure parameters)</span><span style="font-size:12.800000190734863px">.</span></div><div><span style="font-size:12.800000190734863px"><br></span></div><div><span style="font-size:12.800000190734863px">but, if to fix that, than could be this (orthogonal to whether it is &quot;@discardableResult&quot; or &quot;discardable&quot;):</span></div><div><span style="font-size:12.800000190734863px"><br></span></div><div><div><div>func foo() -&gt; Int {}</div><div>func bar(_ callback: () -&gt; discardable Int) {}</div><div><br></div><div>bar(foo)<span class="gmail-Apple-tab-span" style="white-space:pre">                </span>// error, type mismatch</div><div>bar({ 3 })<span class="gmail-Apple-tab-span" style="white-space:pre">                </span>// error, type mismatch</div><div>bar({ () -&gt; discardable Int in 3 })<span class="gmail-Apple-tab-span" style="white-space:pre">                </span>// ok, types matched</div><div><br></div><div>- and - </div><div><br></div><div>func poo() -&gt; discardable Int {}</div><div>func baz(_ callback: () -&gt; Int) {}</div><div><br></div><div>baz(poo)<span class="gmail-Apple-tab-span" style="white-space:pre">                        </span>// ok, types compatible</div><div>baz({ 3 })<span class="gmail-Apple-tab-span" style="white-space:pre">                        </span>// ok, types matched</div><div>baz({ () -&gt; discardable Int in 3 })<span class="gmail-Apple-tab-span" style="white-space:pre">                </span>// ok, types compatible</div></div></div><div><br></div><div>Mike</div><div><br></div></div></div></div></div>