digitalmars.D - Scoped in a foreach loop.
- Yuxuan Shui (10/10) Jun 04 2015 I tried something like this:
- Lionello Lunesu (4/14) Jun 05 2015 Looks like a bug. I can repro it as well.
- "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm gmx.net> (6/16) Jun 05 2015 It should. Which compiler version are you using? I remember there
- "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm gmx.net> (3/23) Jun 05 2015 I see Lionello already provided one. The bug is still there in
I tried something like this: foreach(e; scoped!SomeRangeType(args)) { } And my program segment faults. But this works: { auto x = scoped!SomeRangeType(args); foreach(e; x) { } } Shouldn't the range be alive until the end of the loop?
Jun 04 2015
On 05/06/15 05:07, Yuxuan Shui wrote:I tried something like this: foreach(e; scoped!SomeRangeType(args)) { } And my program segment faults. But this works: { auto x = scoped!SomeRangeType(args); foreach(e; x) { } } Shouldn't the range be alive until the end of the loop?Looks like a bug. I can repro it as well. Filed as https://issues.dlang.org/show_bug.cgi?id=14653 L.
Jun 05 2015
On Friday, 5 June 2015 at 03:07:53 UTC, Yuxuan Shui wrote:I tried something like this: foreach(e; scoped!SomeRangeType(args)) { } And my program segment faults. But this works: { auto x = scoped!SomeRangeType(args); foreach(e; x) { } } Shouldn't the range be alive until the end of the loop?It should. Which compiler version are you using? I remember there recently was a bugfix for a very similar bug, it might not have been released yet. Can you please either test with DMD from Git (you'd need to build it yourself), or provide a minimal testcase so I can test it for you?
Jun 05 2015
On Friday, 5 June 2015 at 09:06:56 UTC, Marc Schütz wrote:On Friday, 5 June 2015 at 03:07:53 UTC, Yuxuan Shui wrote:I see Lionello already provided one. The bug is still there in DMD master.I tried something like this: foreach(e; scoped!SomeRangeType(args)) { } And my program segment faults. But this works: { auto x = scoped!SomeRangeType(args); foreach(e; x) { } } Shouldn't the range be alive until the end of the loop?It should. Which compiler version are you using? I remember there recently was a bugfix for a very similar bug, it might not have been released yet. Can you please either test with DMD from Git (you'd need to build it yourself), or provide a minimal testcase so I can test it for you?
Jun 05 2015