www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20894] New: ICE: passing a member template mixin identifier

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

          Issue ID: 20894
           Summary: ICE: passing a member template mixin identifier as
                    alias argument
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: boris2.9 gmail.com

------------------------
mixin template MT()
{ 
}

struct S
{
    mixin MT mt;
}

void main()
{
    auto r = S();
    enum c = S();

    foo!(r.mt);  // OK
    foo!(c.mt);  // ICE

    foo!(mixin("r.mt"));  // ICE
    foo!(mixin("c.mt"));  // ICE

}

void foo(alias A)() {}
------------------------

output:

be = '.' c.mixin MT!() mt;
 at [aaaaa.d(16)]

core.exception.AssertError dmd/dinterpret.d(3144): Assertion failure

--
Jun 02 2020