D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 10468 - Regression (2.063): Lockstep no longer works with iota
Summary: Regression (2.063): Lockstep no longer works with iota
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: phobos (show other issues)
Version: D2
Hardware: All All
: P2 regression
Assignee: Andrej Mitrovic
URL:
Keywords: pull
Depends on:
Blocks:
 
Reported: 2013-06-24 15:02 UTC by Andrej Mitrovic
Modified: 2013-06-25 03:50 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Andrej Mitrovic 2013-06-24 15:02:45 UTC
-----
module test;
import std.range;

void main()
{
    foreach (x, y; lockstep(iota(0, 10), iota(0, 10)))
    {
    }
}
-----

$ dmd test.d

C:\DMD\dmd2\windows\bin\..\..\src\phobos\std\range.d(4716): Error: delegate dg (ref int, ref int) is not callable using argument types (int, int)
test.d(6): Error: opApply() function for Lockstep!(Result, Result) must return an int
C:\DMD\dmd2\windows\bin\..\..\src\phobos\std\range.d(4717): Error: delegate dg (uint, ref int, ref int) is not callable using argument types (uint, int, int)

This is introduced as a result of my refactor pull, which added 'ref' to the parameter types by mistake:
https://github.com/D-Programming-Language/phobos/pull/1124
Comment 1 Andrej Mitrovic 2013-06-24 15:05:37 UTC
(In reply to comment #0)
> This is introduced as a result of my refactor pull, which added 'ref' to the
> parameter types by mistake:
> https://github.com/D-Programming-Language/phobos/pull/1124

Actually scratch that, it seems to be more involved. When I simply remove 'ref' then I get errors in other places. I'll investigate more.
Comment 2 Andrej Mitrovic 2013-06-24 15:17:43 UTC
(In reply to comment #1)
> (In reply to comment #0)
> > This is introduced as a result of my refactor pull, which added 'ref' to the
> > parameter types by mistake:
> > https://github.com/D-Programming-Language/phobos/pull/1124
> 
> Actually scratch that, it seems to be more involved. When I simply remove 'ref'
> then I get errors in other places. I'll investigate more.

Ah I see what I've missed, the hasLvalueElements check. I'm making a pull shortly.
Comment 4 github-bugzilla 2013-06-25 03:50:26 UTC
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/4727fdde0b2df02ebfca9e340cb38c9e3250f27e
Fixes Issue 10468 - Remove ref from parameter type in lockstep, which caused a regression.

https://github.com/D-Programming-Language/phobos/commit/25ac708f018421e1a90eb8f33fab23b77bc71ed0
Merge pull request #1370 from AndrejMitrovic/Fix10468

(Regression 2.063) - Issue 10468 - Remove ref hardcoded from parameter type in lockstep