digitalmars.D.learn - [dmd 2.066-b1] DList. Cannot remove from an un-initialized List
This was working under 2.065: ``` import std.container; void main() { DList!int list; list.clear(); } ``` Run-time assertion: ``` core.exception.AssertError /usr/include/dmd/phobos/std/container/dlist.d(480): Cannot remove from an un-initialized List ---------------- /home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow nogc safe std.container.dlist.DList!(int).DList.Range std.container.dlist.DList!(int).DList.remove(std.container.dlist.DList!(int .DList.Range)+0x90) [0x441830] /home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow nogc safe void std.container.dlist.DList!(int).DList.clear()+0x65) [0x4410dd] /home/ncrashed/dev/d/dmd-test/dmd-test(_Dmain+0x1a) [0x43df3a] /home/ncrashed/dev/d/dmd-test/dmd-test(_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ __lambda1MFZv+0x28) [0x44aeac] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate())+0x2d) [0x44adf1] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll()+0x2d) [0x44ae51] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate())+0x2d) [0x44adf1] /home/ncrashed/dev/d/dmd-test/dmd-test(_d_run_main+0x192) [0x44ad66] /home/ncrashed/dev/d/dmd-test/dmd-test(main+0x25) [0x448355] /lib64/libc.so.6(__libc_start_main+0xf5) [0x39e9021d65] ``` Does DList requires any explicit initialization now or it is a regression?
Jul 08 2014
On Tuesday, 8 July 2014 at 13:06:34 UTC, NCrashed wrote:This was working under 2.065: ``` import std.container; void main() { DList!int list; list.clear(); } ``` Run-time assertion: ``` core.exception.AssertError /usr/include/dmd/phobos/std/container/dlist.d(480): Cannot remove from an un-initialized List ---------------- /home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow nogc safe std.container.dlist.DList!(int).DList.Range std.container.dlist.DList!(int).DList.remove(std.container.dlist.DList!(int .DList.Range)+0x90) [0x441830] /home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow nogc safe void std.container.dlist.DList!(int).DList.clear()+0x65) [0x4410dd] /home/ncrashed/dev/d/dmd-test/dmd-test(_Dmain+0x1a) [0x43df3a] /home/ncrashed/dev/d/dmd-test/dmd-test(_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ __lambda1MFZv+0x28) [0x44aeac] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate())+0x2d) [0x44adf1] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll()+0x2d) [0x44ae51] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate())+0x2d) [0x44adf1] /home/ncrashed/dev/d/dmd-test/dmd-test(_d_run_main+0x192) [0x44ad66] /home/ncrashed/dev/d/dmd-test/dmd-test(main+0x25) [0x448355] /lib64/libc.so.6(__libc_start_main+0xf5) [0x39e9021d65] ``` Does DList requires any explicit initialization now or it is a regression?And some addition: ``` import std.container; void main() { DList!int list; list.insert = 42; list.clear(); list.clear(); } ``` Output: ``` core.exception.AssertError /usr/include/dmd/phobos/std/container/dlist.d(481): Remove: Range is empty ---------------- /home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow nogc safe std.container.dlist.DList!(int).DList.Range std.container.dlist.DList!(int).DList.remove(std.container.dlist.DList!(int .DList.Range)+0xcc) [0x4419b4] /home/ncrashed/dev/d/dmd-test/dmd-test(pure nothrow nogc safe void std.container.dlist.DList!(int).DList.clear()+0x65) [0x441225] /home/ncrashed/dev/d/dmd-test/dmd-test(_Dmain+0x31) [0x43e081] /home/ncrashed/dev/d/dmd-test/dmd-test(_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ __lambda1MFZv+0x28) [0x44b0cc] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate())+0x2d) [0x44b011] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll()+0x2d) [0x44b071] /home/ncrashed/dev/d/dmd-test/dmd-test(void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate())+0x2d) [0x44b011] /home/ncrashed/dev/d/dmd-test/dmd-test(_d_run_main+0x192) [0x44af86] /home/ncrashed/dev/d/dmd-test/dmd-test(main+0x25) [0x448575] /lib64/libc.so.6(__libc_start_main+0xf5) [0x39e9021d65] ```
Jul 08 2014