<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/5/23 Jacob Carlborg <span dir="ltr"><<a href="mailto:doob@me.com" target="_blank">doob@me.com</a>></span><br><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div><div class="im">There are a couple of errors in Tango. Tango compiled perfectly fine with the previous release, 2.062, without any warnings or deprecation messages. <br></div><div><br>* tango/io/device/File.d(290): Error: cannot make expression out of initializer for ReadExisting<br>
<br><a href="https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/io/device/File.d#L290" target="_blank">https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/io/device/File.d#L290</a><br></div></div></div></blockquote>
<div><br></div><div>Regression:</div><div><div><a href="http://d.puremagic.com/issues/show_bug.cgi?id=10142">http://d.puremagic.com/issues/show_bug.cgi?id=10142</a></div></div><div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div><div>* tango/core/tools/StackTrace.d(186): Error: class tango.core.tools.StackTrace.BasicTraceInfo interface function 'string toString() const' is not implemented<br><br><a href="https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/core/tools/StackTrace.d#L186" target="_blank">https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/core/tools/StackTrace.d#L186</a><br>
</div></div></div></blockquote><div> </div><div><div><br></div><div>This is expected change. The type of Throwable.TraceInfo.toString is string() const, but BasicTraseInfo.toString is not const.</div><div>By fixing issue 8366, now const attribute is never inherited automatically.</div>
<div><br></div><div>Fixing way: Add const to BasicTraceInfo.toString</div><div><br></div><div>Reduced case:</div><div>    class BasicTraceInfo: Throwable.TraceInfo</div><div>    {</div><div>        override immutable(char)[] toString() /*const*/</div>
<div>        {</div><div>            immutable(char)[] ret;</div><div>            return ret;</div><div>        }</div><div>    }</div></div><div><br></div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div><div>* tango/io/selector/SelectSelector.d(156): Error: function tango.io.selector.SelectSelector.HandleSet.opAssign is not callable because it is annotated with @disable<br><br><a href="https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/io/selector/SelectSelector.d#L156" target="_blank">https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/io/selector/SelectSelector.d#L156</a><br>
<br>Tango doesn't use @disable at all. "opAssign" is not overloaded.<br></div></div></div></blockquote><div><br></div><div>Expected behavior. HandleSet.DefaultSize is a const int field, so HandleSet struct is not identity assignable.</div>
<div><br></div><div>Fixing way:</div><div>Change HandleSet.DefaultSize to enum or static.</div><div><br></div><div>Reduced case:</div><div><div>    struct BitArray // from tango.core.BitArray</div><div>    {</div><div>        this(this) {}</div>
<div>        // IF postblit exists, compiler will try to generate identity opAssign implicitly.</div><div>        // -->  typeof(this) opAssign(typeof(this) rhs);</div><div>    }</div><div>    private struct HandleSet</div>
<div>    {</div><div>        /** Default number of handles that will be held in the HandleSet. */</div><div>        const uint DefaultSize = 1024;</div><div><br></div><div>        BitArray _buffer;</div><div>        // _buffer has opAssign, so HandleSet also need to generate identity opAssign.</div>
<div>        // --> typeof(this) opAssign(typeof(this) rhs);</div><div>        // BUT, its smeantic would fail because DefaultSize field is not assignable.</div><div>        // so generated opAssign would be implicitly annotated with @disable.</div>
<div>        // --> typeof(this) opAssign(typeof(this) rhs) @disable;</div><div>    }</div><div>    void main()</div><div>    {</div><div>        HandleSet hs;</div><div>        hs = hs;    // @disable opAssign would be called, and fail to compile</div>
<div>    }</div></div><div><br></div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div><div>* Error: cannot modify struct this HandleSet with immutable members<br><br>No file or line information. Ok, I would the actual problem, but the error message is very unclear. There was a "const" member in HandleSet, it should have been static.<br>
<br><a href="https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/io/selector/SelectSelector.d#L783" target="_blank">https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/io/selector/SelectSelector.d#L783</a></div></div>
</div></blockquote><div><br></div><div>Definitely a bug. I'm working for it...</div><div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div><div>* tango/text/Regex.d(1779): Error: variable tango.text.Regex.TNFA!(dchar).TNFA.pca final cannot be applied to variable, perhaps you meant const?<br>tango/text/Regex.d(2528): Error: template instance tango.text.Regex.TNFA!(dchar) error instantiating<br>
tango/text/Regex.d(3668):        instantiated from here: TDFA!(dchar)<br>tango/text/Regex.d(4412):        instantiated from here: RegExpT!(char)<br>tango/text/Regex.d(3668): Error: template instance tango.text.Regex.TDFA!(dchar) error instantiating<br>
tango/text/Regex.d(4412):        instantiated from here: RegExpT!(char)<br>tango/text/Regex.d(4399): Error: tdfa_t.Command is used as a type<br>tango/text/Regex.d(4412): Error: template instance tango.text.Regex.RegExpT!(char) error instantiatin<br>
<br><a href="https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/text/Regex.d#L1779" target="_blank">https://github.com/SiegeLord/Tango-D2/blob/d2port/tango/text/Regex.d#L1779</a><br><br>There are no final variables in that file as far as I can see. The error message is pointing to an enum.<br>
</div></div></div></blockquote><div><br></div><div>Regression:</div><div><a href="http://d.puremagic.com/issues/show_bug.cgi?id=10142">http://d.puremagic.com/issues/show_bug.cgi?id=10142</a><br></div><div><br></div><div>Kenji Hara</div>
</div></div></div>