<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-07-27 11:24 GMT+02:00 Jonas Maebe <span dir="ltr"><<a href="mailto:jonas.maebe@elis.ugent.be" target="_blank">jonas.maebe@elis.ugent.be</a>></span>:<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">On a more general note, I think the fact that @recordvar no longer is a pointer to the record is wrong. You need a different keyword instead of "record" in that case (or possibly a modifier for the "record" keyword, like with "class abstract" -- but this is not a record at any more than an shortstring is a record, so I don't think that's a good idea either).<br>
<br>
Completely changing how certain aspects of a record are treated by the compiler only based on the fact that somewhere there is a "default" modifier for one field is not good. You should definitely not have to go through an entire declaration of a record to be able to know how it will behave.</blockquote><div><br></div><div>I was thinking on additional modifier for that before. We can use something like this:</div><div><br></div><div><span style="font-size:12.8px">=== code begin ===</span><br></div><div><span style="font-size:12.8px">type  </span></div><div><span style="font-size:12.8px">  TNullable<T: record> = record proxy to </span><span style="font-size:12.8px">Instance</span><br></div><div><span style="font-size:12.8px">  public type</span><br style="font-size:12.8px"><span style="font-size:12.8px">    PT = ^T;</span><br style="font-size:12.8px"><span style="font-size:12.8px">  strict private</span><br style="font-size:12.8px"><span style="font-size:12.8px">    Instance: ^T; // no default word anymore</span><br style="font-size:12.8px"><span style="font-size:12.8px">    function GetValue: T;</span></div><div><span style="font-size:12.8px">=== code end ===</span> </div><div><br></div><div><br></div></div>-- <br><div><div dir="ltr"><div>Best regards,<br>Maciej Izak</div></div></div>
</div></div>