<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Aug 28, 2017, at 1:14 PM, Florent Vilmart &lt;<a href="mailto:florent@flovilmart.com" class="">florent@flovilmart.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">

<title class=""></title>

<div class="">
<div name="messageBodySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;" class="">I can see where you're going with that.&nbsp;
<div class="">For me, the big unknown (and unspecified so far) is
<div class=""><br class=""></div>
<div class="">func process() async -&gt; Image { ... }</div>
<div class=""><br class=""></div>
<div class="">let result = process() // what is result? CoroutineType&lt;Image&gt; ?&nbsp;</div>
<div class=""><br class=""></div>
<div class="">or am I missing something here?</div></div></div><div name="messageReplySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;" class="">
<div class=""></div>
</div>
</div>

</div></blockquote><br class=""></div><div>By the rules of the proposal I think this is a compiler error.</div><div><br class=""></div><div>In C# the async keyword does not affect the caller at all. The above example would be like this (using C# syntax):</div><div><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div>Task&lt;Image&gt; Process();</div><div><br class=""></div><div>Task&lt;Image&gt; result1 = Process();</div><div>Image result2 = await Process();</div></blockquote><div class=""><br class=""></div>Some people dislike this behavior. If you forget the await keyword you get the future type instead of the actual result. That’s a little bit confusing.<div class=""><br class=""></div><div class="">However, you would only be confused until you try to compile your code and find that the type isn’t what you think it is. I can’t think of a scenario in which you would actually be able to compile the code and get the wrong result and have trouble understanding why. You would just get an error from the compiler when trying to access properties that don’t exist (or, more likely, notice that code completion is not giving you what you expect).<br class=""><br class=""></div><div class="">Personally I think this is a feature, not a bug. This is what allows you to easily mix async/await with futures.</div></body></html>