<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=""><br class=""><div><blockquote type="cite" class=""><div class="">I don't think you can just get rid of the if statement in favor of an expression. You still want to be able to do this:</div><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">if (condition) {</div><div class="">&nbsp; &nbsp; funcWithSideEffectsThatReturnsInt()</div><div class="">} else {</div><div class="">&nbsp; &nbsp; funcWithSideEffectsThatReturnsString()</div><div class="">}</div><div class=""><br class=""></div><div class="">but that's not a valid expression (what is its type?).</div></div></div></blockquote><div><br class=""></div>An if statement with two different types could just have the closes common ancestor or Any as type.<br class=""><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yeah, returning an optional is a good idea.</blockquote></div></div></div></blockquote><div><br class=""></div><div>This would, interestingly, make the else statement very similar to the optional-chaining operator ?? with the small difference that the second argument is a block (and does ?? autoclosure the second arg?).</div></div></body></html>