www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - SList container problem

reply ted <foo bar.com> writes:
have upgraded from 2.066.1 to 2.068.0, and have a change in behaviour:

import std.container: SList;

void main()
{
    SList!int tmp;

    tmp.insertAfter( tmp[], 3 );
}

used to work happily with dmd2.066.1, causes assert 
(core.exception.AssertError std/container/slist.d(57): Assertion failure) 
in 2.068.0 (also 2.067.1).

There was a change in slist.d in 2.067. Am I no longer able to start from 
an empty list?

--ted
Aug 13 2015
parent reply "Nicholas Wilson" <iamthewilsonator hotmail.com> writes:
On Thursday, 13 August 2015 at 08:40:13 UTC, ted wrote:
 have upgraded from 2.066.1 to 2.068.0, and have a change in 
 behaviour:

 import std.container: SList;

 void main()
 {
     SList!int tmp;

     tmp.insertAfter( tmp[], 3 );
 }

 used to work happily with dmd2.066.1, causes assert 
 (core.exception.AssertError std/container/slist.d(57): 
 Assertion failure) in 2.068.0 (also 2.067.1).

 There was a change in slist.d in 2.067. Am I no longer able to 
 start from an empty list?

 --ted
tmp ~= 3; ?
Aug 13 2015
parent reply ted <foo bar.com> writes:
thanks for the reply...

the method you described is suitable for appending to an array, but I'm 
using the singly-linked-list container.

I've extended the test, and I'm pretty sure it's a bug...

--ted



Nicholas Wilson wrote:

 On Thursday, 13 August 2015 at 08:40:13 UTC, ted wrote:
 have upgraded from 2.066.1 to 2.068.0, and have a change in
 behaviour:

 import std.container: SList;

 void main()
 {
     SList!int tmp;

     tmp.insertAfter( tmp[], 3 );
 }

 used to work happily with dmd2.066.1, causes assert
 (core.exception.AssertError std/container/slist.d(57):
 Assertion failure) in 2.068.0 (also 2.067.1).

 There was a change in slist.d in 2.067. Am I no longer able to
 start from an empty list?

 --ted
tmp ~= 3; ?
Aug 13 2015
parent "anonymous" <a b.cd> writes:
https://issues.dlang.org/show_bug.cgi?id=14920
Aug 14 2015