digitalmars.D.bugs - [Issue 4651] New: Docs: Returned classes that have access to stack variables of its enclosing function
- d-bugmail puremagic.com (47/47) Aug 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4651
- d-bugmail puremagic.com (10/10) Jan 23 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4651
- d-bugmail puremagic.com (10/10) Jan 23 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4651
- d-bugmail puremagic.com (8/14) Jan 23 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4651
- d-bugmail puremagic.com (6/6) Jan 23 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4651
http://d.puremagic.com/issues/show_bug.cgi?id=4651
Summary: Docs: Returned classes that have access to stack
variables of its enclosing function
Product: D
Version: D2
Platform: Other
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: www.digitalmars.com
AssignedTo: nobody puremagic.com
ReportedBy: andrej.mitrovich gmail.com
19:23:25 PDT ---
This is an outdated statement:
"While a non-static nested class can access the stack variables of its
enclosing function, that access becomes invalid once the enclosing function
exits:
class Base
{
int foo() { return 1; }
}
Base func()
{ int m = 3;
class Nested : Base
{
int foo() { return m; }
}
Base b = new Nested;
assert(b.foo() == 3); // Ok, func() is still active
return b;
}
int test()
{
Base b = func();
return b.foo(); // Error, func().m is undefined
}
"
As is stated in TDPL, variables in the local function get allocated on the heap
if DMD detects that a returning class needs access to it. This section needs to
be updated.
The next section with the code example for a workaround can be removed:
"If this kind of functionality is needed, the way to make it work is to make
copies of the needed variables within the nested class's constructor"
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 15 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4651 Commit pushed to https://github.com/D-Programming-Language/d-programming-language.org https://github.com/D-Programming-Language/d-programming-language.org/commit/c58bfaea9250e432ec3929bc59f0bad30f006812 fix Issue 4651 - Docs: Returned classes that have access to stack variables of its enclosing function -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 23 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4651
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 23 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4651 22:30:37 PST ---Commit pushed to https://github.com/D-Programming-Language/d-programming-language.org https://github.com/D-Programming-Language/d-programming-language.org/commit/c58bfaea9250e432ec3929bc59f0bad30f006812 fix Issue 4651 - Docs: Returned classes that have access to stack variables of its enclosing functionSince you're on a roll (Walter) you could also $(D1) wrap the section on nested functions, Issue 4556. If not, I'll make a pull myself. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 23 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4651 23:30:43 PST --- Feel free to do a pull. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 23 2012









d-bugmail puremagic.com 