digitalmars.D.bugs - [Issue 8362] New: safe function 'benchmark' cannot call system function literal
- d-bugmail puremagic.com (44/44) Jul 08 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8362
- d-bugmail puremagic.com (23/23) Jul 08 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8362
- d-bugmail puremagic.com (13/13) Jul 08 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8362
- d-bugmail puremagic.com (6/6) Jul 08 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8362
- d-bugmail puremagic.com (12/12) Jul 27 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8362
- d-bugmail puremagic.com (9/9) Jul 27 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8362
http://d.puremagic.com/issues/show_bug.cgi?id=8362 Summary: safe function 'benchmark' cannot call system function literal Product: D Version: D2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: iteronvexor gmail.com --- Comment #0 from Caligo <iteronvexor gmail.com> 2012-07-08 17:41:22 PDT --- ----------------------->8---------------------->8--------------------------- import std.datetime; void ben(alias fun)() { auto b = std.datetime.benchmark!fun(1); } struct S{ auto fun() { return 1; } } unittest { auto s1 = S(); ben!( {auto r = s1.fun();} )(); } void main() { } -----------------------8<----------------------8<--------------------------- compiling with `dmd -unittest t1.d` we get: /home/a/Code/D/compiler/phobos/std/datetime.d(30901): Error: safe function 'benchmark' cannot call system function literal '__lambda1' t1.d(3): Error: template instance t1.__unittest2.benchmark!(__lambda1) error instantiating t1.d(9): instantiated from here: ben!(delegate system void() { int r = s1.fun(); } ) t1.d(9): Error: template instance t1.__unittest2.ben!(delegate system void() { int r = s1.fun(); } ) error instantiating /home/a/Code/D/compiler/phobos/std/traits.d(748): Error: safe function 'dummySafeFunc' cannot call system function literal '__lambda1' -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 08 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8362 Jonathan M Davis <jmdavisProg gmx.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jmdavisProg gmx.com --- Comment #1 from Jonathan M Davis <jmdavisProg gmx.com> 2012-07-08 18:06:13 PDT --- Pull request https://github.com/D-Programming-Language/phobos/pull/670 happens to fix the issue with benchmark but not the underlying bug. This code also shows it: import std.traits; void test(fun...)() if(areAllSafe!fun) {} struct S{ auto fun() { return 1; } } void main() { auto s1 = S(); static assert(!isSafe!({auto r = s1.fun();})); } I believe that it's a bug in std.traits. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 08 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8362 --- Comment #2 from Jonathan M Davis <jmdavisProg gmx.com> 2012-07-08 18:07:14 PDT --- Actually, I left some extra cruft in that example. The actual example is import std.traits; struct S{ auto fun() { return 1; } } void main() { auto s1 = S(); static assert(!isSafe!({auto r = s1.fun();})); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 08 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8362 --- Comment #3 from Jonathan M Davis <jmdavisProg gmx.com> 2012-07-08 22:10:46 PDT --- https://github.com/D-Programming-Language/phobos/pull/675 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 08 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8362 --- Comment #4 from github-bugzilla puremagic.com 2012-07-27 17:32:36 PDT --- Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/e169f5dfae00de24f8ea931fef1de7495f55cb27 Fix for issue# 8362. "std.traits.isSafe doesn't work with unsafe lamdba functions" https://github.com/D-Programming-Language/phobos/commit/82865e86f2c8ea9d26b1b188c6dad2a69ac4dc79 Merge pull request #675 from jmdavis/traits Fix for issue# 8362. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 27 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8362 Jonathan M Davis <jmdavisProg gmx.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 27 2012