digitalmars.D.bugs - [Issue 2443] New: opApply should allow delegates that are not ref if it makes no sense
- d-bugmail puremagic.com (51/51) Nov 06 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2443
- d-bugmail puremagic.com (8/8) Nov 24 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2443
- d-bugmail puremagic.com (10/10) Dec 07 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2443
- d-bugmail puremagic.com (10/10) Dec 26 2011 http://d.puremagic.com/issues/show_bug.cgi?id=2443
- d-bugmail puremagic.com (12/12) Dec 26 2011 http://d.puremagic.com/issues/show_bug.cgi?id=2443
- d-bugmail puremagic.com (9/9) Mar 03 2012 http://d.puremagic.com/issues/show_bug.cgi?id=2443
- d-bugmail puremagic.com (8/8) Mar 08 2012 http://d.puremagic.com/issues/show_bug.cgi?id=2443
http://d.puremagic.com/issues/show_bug.cgi?id=2443 Summary: opApply should allow delegates that are not ref if it makes no sense Product: D Version: 2.019 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: schveiguy yahoo.com Currently, builtin arrays enjoy the restriction that you cannot ref the index parameter when doing a foreach: int main(string[] args) { foreach(ref i, ref s; args) // Error: foreach: key cannot be out or ref { } } But when trying to do something similar on a struct, the compiler cannot resolve the opApply: struct S { int[] arr; int opApply(int delegate(int i, ref int v) dg) { int result = 0; foreach(i, ref x; arr) { if((result = dg(i, x)) != 0) break; } return result; } } void main() { S s; foreach(i, ref v; s) {} } emits: testit.d(32): function testit.S.opApply (int delegate(int i, ref int v) dg) does not match parameter types (int delegate(ref int __applyArg0, ref int v)) testit.d(32): Error: cannot implicitly convert expression (__foreachbody1) of type int delegate(ref int __applyArg0, ref int v) to int delegate(int i, ref int v) This has implications for const as well, because it would make sense in S above to have an opApply WITHOUT a ref int for the value in the case of a const S. --
Nov 06 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2443 smjg iname.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |smjg iname.com Severity|normal |enhancement Keywords| |spec --
Nov 24 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2443 klickverbot gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |klickverbot gmail.com This applies to D1 as well. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 07 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2443 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch https://github.com/D-Programming-Language/dmd/pull/581 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 26 2011
http://d.puremagic.com/issues/show_bug.cgi?id=2443 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla digitalmars.com Resolution| |FIXED 16:40:59 PST --- https://github.com/D-Programming-Language/dmd/commit/581ed237a077569d76b2658ffc24600db76aad25 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 26 2011
http://d.puremagic.com/issues/show_bug.cgi?id=2443 Commit pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/f4a653ad068abe8436bac8dedd597533515ed090 Remove Bug 2443 Workaround from InputRangeObject -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 03 2012
http://d.puremagic.com/issues/show_bug.cgi?id=2443 Commit pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/7b62989568958eaf610b0e80004f1e6358dc2b6b Get rid of Bug 2443 workaround in InputRangeObject. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 08 2012