Hi, I'm new to D2 ranges but have been following D for some time. I'm posting here because I want to check if I'm doing anything wrong before filing a bug.
The code below is a test case I made after hitting the problem in real code. Basically the pyramid recursive function should print out: [1, 2, 3] [1, 2] [1] This works fine when calling with an int[] range, but calling with SList!int seems to make the compiler hang, eating up memory. Should I file a bug? import std.stdio; import std.range; import std.container; void pyramid(Range)(Range items) { if (items.empty) return; writeln(items); auto len = walkLength(items); auto r = take(items, len - 1); pyramid(r); } void main() { /* array version is fine */ int[] arr = [1, 2, 3]; pyramid(arr[]); SList!int list = [1, 2, 3]; pyramid(list[]); /* infinite loop with dmd 2.049 */ }