digitalmars.D.bugs - [Issue 4218] New: safe function cannot call opApply
- d-bugmail puremagic.com (56/56) May 21 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4218
- d-bugmail puremagic.com (13/13) Jun 13 2011 http://d.puremagic.com/issues/show_bug.cgi?id=4218
http://d.puremagic.com/issues/show_bug.cgi?id=4218
Summary: safe function cannot call opApply
Product: D
Version: 2.041
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: zan77137 nifty.com
This code doesn't work!
--------------------------------------------
struct S{ safe int opApply(scope int delegate(ref int) dg){return 0;} }
safe void main()
{
S s;
foreach (x; s) {}
}
--------------------------------------------
safe delegate can implicit convert to system delegate.
Following code can compile:
--------------------------------------------
struct S{ safe void foo(){} }
safe void main()
{
S s;
void delegate() dg = &s.foo;
}
--------------------------------------------
And of course, "int delegate(ref int) safe" should convert to "int
delegate(ref int)".
Therefore, safe function should allow to call opApply.
Workaround is here:
--------------------------------------------
struct S{
safe int opApply(scope int delegate(ref int) dg){return 0;}
safe int opApply(scope int delegate(ref int) safe dg){return 0;}
}
safe void foo()
{
S s;
foreach (x; s) {}
}
system void main()
{
S s;
foreach (x; s) {}
foo();
}
--------------------------------------------
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 21 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4218
yebblies <yebblies gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |yebblies gmail.com
Resolution| |DUPLICATE
The underlying issue a dupe of bug 3180.
*** This issue has been marked as a duplicate of issue 3180 ***
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 13 2011








d-bugmail puremagic.com