www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 22536] New: CTFE: Missing destruction of array literal

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

          Issue ID: 22536
           Summary: CTFE: Missing destruction of array literal argument
                    for scope slice parameter
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: kinke gmx.net

void foo(T)(scope T[]) {}

int bar()
{
    int numDtor;

    struct S
    {
        int x;
        ~this() { ++numDtor; }
    }

    foo([S(1), S(2)]);
    return numDtor;
}    

void main()
{
    assert(bar() == 2);
}

static assert(bar() == 2); // fails, returns 0

--
Nov 22 2021