[Issue 17331] New: appender can't be use for initialization

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Tue Apr 18 18:59:40 PDT 2017


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

          Issue ID: 17331
           Summary: appender can't be use for initialization
           Product: D
           Version: D2
          Hardware: x86
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody at puremagic.com
          Reporter: bitworld at qq.com

Compiler: DMD32 D Compiler v2.074.0
OS: Windows, Ubuntu

Here is my test code.

import std.stdio;
import std.array;

struct PackageHandler
{
    private auto buffer = appender!(ubyte[])();  // The bug is here
    // private Appender!(ubyte[]) buffer;  // It's ok.

    void test()
    {
        assert(buffer.data.length == 0);  // for test
    }

    void append(ubyte[] data)
    {
        buffer ~= data;
    }

    void reset()
    {
        buffer.clear();
    }
}

class AppenderTester
{
    private PackageHandler handler;

    this()
    {
        handler.test();
    }

    void append()
    {
        handler.append([11, 12, 13]);
    }

    void clear()
    {
        handler.reset();
    }
}

void main()
{
    AppenderTester tester01 = new AppenderTester();
    tester01.append();
    // tester01.clear();

    AppenderTester tester02 = new AppenderTester();
}

--


More information about the Digitalmars-d-bugs mailing list