www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 19782] New: `alias this` appends `null` instead of

https://issues.dlang.org/show_bug.cgi?id=19782

          Issue ID: 19782
           Summary: `alias this` appends `null` instead of inner/aliased
                    element to array
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: m.rodacki gmx.de

import std.stdio;

class Inner {}

class Outer {
  Inner inner; alias inner this;
  this(Inner i) { inner = i; }
}

void main() {
  Inner[] inners = [];
  inners ~= new Inner;
  inners ~= new Outer(new Inner); // Appends null

  foreach(inner; inners){
    writeln(">> ", inner);
  }
}


---

Output from https://run.dlang.io/ with all dmd compilers:

Up to      2.083.1: Success with output:
-----
 onlineapp.Inner
 onlineapp.Inner
----- Since 2.084.0: Success with output: -----
 onlineapp.Inner
 null
----- --
Mar 31 2019