delegating constructors and "this = ..."
BCS
none at anon.com
Mon Feb 8 09:26:27 PST 2010
Hello JPF,
> Hi,
> I've come across some strange behavior using delegating constructors
> and
> assignment to this. Please have a look a this testcase:
> --------------------------------------
> class Test
> {
> static Test[void*] lookupTable;
> public int i = 0;
> public this (void* ptr)
> {
> //Check if there already is a D object for this ptr
> if(ptr in lookupTable)
> {
> this = lookupTable[ptr];
> assert(this.i == 15); /* ok */
> return;
> }
'this' is a mutable *local* reference (IIRC it is in fact a hidden 1st argument
to the function). All the 'this =' lines does is assign to a local value
that is discarded immediately. If asserts are turned off, the optimizer would
even be free to just dump the then clause from that code as a dead assignment.
('this' being mutable might be considered a bug in the spec)
>
--
<IXOYE><
More information about the Digitalmars-d
mailing list