Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
August 30, 2013 [Issue 10928] New: Fails to create closures that reference structs with dtor | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=10928 Summary: Fails to create closures that reference structs with dtor Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: blocker Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: dmitry.olsh@gmail.com --- Comment #0 from Dmitry Olshansky <dmitry.olsh@gmail.com> 2013-08-30 07:58:43 PDT --- To make example real simple: struct D{ int x; ~this() { } } void foo(D bar) { (){ bar.x++; }(); } void main() { foo(D.init); } Note that even though there is no need for allocating closure at all. Compiler should deal with such cases by tiying the lifetime of dtor-able variables to that of a closure if one is indeed required. This is critical as std.array.array and other functions started using internal lambdas for trusted blocks making use of any RefCounted range impossible. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
August 30, 2013 [Issue 10928] Fails to create closures that reference structs with dtor | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dmitry Olshansky | http://d.puremagic.com/issues/show_bug.cgi?id=10928 --- Comment #1 from Dmitry Olshansky <dmitry.olsh@gmail.com> 2013-08-30 07:59:13 PDT --- Error message: d_test.d(10): Error: variable d_test.foo.bar has scoped destruction, cannot build closure -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
August 30, 2013 [Issue 10928] Fails to create closures that reference structs with dtor | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dmitry Olshansky | http://d.puremagic.com/issues/show_bug.cgi?id=10928 Joseph Rushton Wakeling <joseph.wakeling@webdrake.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |joseph.wakeling@webdrake.ne | |t --- Comment #2 from Joseph Rushton Wakeling <joseph.wakeling@webdrake.net> 2013-08-30 08:31:42 PDT --- For reference, an "in-the-wild" example of such an error: http://forum.dlang.org/post/mailman.445.1377370120.1719.digitalmars-d@puremagic.com http://forum.dlang.org/thread/mailman.443.1377369357.1719.digitalmars-d@puremagic.com This is a concern as it potentially blocks the ability to move forward with necessary redesign work on random number generation in Phobos. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
August 30, 2013 [Issue 10928] Fails to create closures that reference structs with dtor | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dmitry Olshansky | http://d.puremagic.com/issues/show_bug.cgi?id=10928 monarchdodra@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |monarchdodra@gmail.com --- Comment #3 from monarchdodra@gmail.com 2013-08-30 08:47:35 PDT --- (In reply to comment #2) > For reference, an "in-the-wild" example of such an error: http://forum.dlang.org/post/mailman.445.1377370120.1719.digitalmars-d@puremagic.com http://forum.dlang.org/thread/mailman.443.1377369357.1719.digitalmars-d@puremagic.com > > This is a concern as it potentially blocks the ability to move forward with necessary redesign work on random number generation in Phobos. Currently, a *workaround* is to avoid lambdas in favor of named: //---- struct D { int x; ~this() { } } void foo(D bar) { void do_it(){ bar.x++; } do_it(); } void main() { foo(D.init); } //---- -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
September 01, 2013 [Issue 10928] Fails to create closures that reference structs with dtor | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dmitry Olshansky | http://d.puremagic.com/issues/show_bug.cgi?id=10928 --- Comment #4 from github-bugzilla@puremagic.com 2013-09-01 01:13:48 PDT --- Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/8d50d807bed69ee9b339de81ee50f3c105ef3900 sidestep issue 10928 https://github.com/D-Programming-Language/phobos/commit/01a2bdb02e45f61ed3773d40d2aac4dadcb2a767 Merge pull request #1535 from blackwhale/fix-lambda Sidestep issue 10928 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation