<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><blockquote type="cite" class="">On 27 Jul 2016, at 9:43, James Noble <<a href="mailto:kjx@ecs.vuw.ac.nz" class="">kjx@ecs.vuw.ac.nz</a>> wrote:<br class=""><br class="">object { <br class="">    def x is public = if (flag) then {true} else {false}<br class="">}<br class=""><br class="">x has *dynamic* type Unknown. <br class=""></blockquote><br class=""><div class="">This statement doesn’t make sense.  <i class="">Code</i> does not have a dynamic type; <i class="">objects </i>have a dynamic type.</div><div class=""><br class=""></div><div class="">The <i class="">object generated</i> by the above code has dynamic type </div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">       </span>interface {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">               </span>x -> Boolean</div><div class=""><span class="Apple-tab-span" style="white-space:pre">      </span>}</div><div class=""><br class=""></div><div class="">What its <i class="">static</i> type is depends on how much type inference we do.  Right now, the <i class="">static</i> type of the <i class="">expression</i> is Unknown, but it doesn’t seem so hard to make it the above interface type.</div><div class=""><br class=""></div><div class="">More generally: what is the point that you were intending to make with the above example?</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">     </span>Andrew</div></body></html>