digitalmars.D.bugs - [Issue 1759] New: Closures and With Statements
- d-bugmail puremagic.com (27/27) Jan 01 2008 http://d.puremagic.com/issues/show_bug.cgi?id=1759
- d-bugmail puremagic.com (24/24) Aug 07 2012 http://d.puremagic.com/issues/show_bug.cgi?id=1759
- d-bugmail puremagic.com (14/17) Aug 08 2012 http://d.puremagic.com/issues/show_bug.cgi?id=1759
- d-bugmail puremagic.com (11/12) Aug 15 2012 http://d.puremagic.com/issues/show_bug.cgi?id=1759
http://d.puremagic.com/issues/show_bug.cgi?id=1759 Summary: Closures and With Statements Product: D Version: 2.009 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P3 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: xnknet gmail.com The following code doesn't crash. However, it does print an unexpected value. It should print 90, but instead it prints 4202678. The bug can be worked around by referencing 'obj' directly. struct SS{ int a, b, c; } int delegate() addss(SS obj){ with(obj) return { return a+b+c; }; } void main(){ SS obj = {15, 30, 45}; auto l = addss(obj); writeln(l()); // Prints unexpected value } --
Jan 01 2008
http://d.puremagic.com/issues/show_bug.cgi?id=1759 Salih Dincer <salihdb hotmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |salihdb hotmail.com Resolution| |INVALID --- This is not a bug it's a feature, there's solution: void main() { struct SS { int a, b, c; } int delegate () addss(SS obj){ return { with(obj) return a+b+c; }; } addss(SS(7, 10, 60))().writeln("(total numbers 77)"); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 07 2012
http://d.puremagic.com/issues/show_bug.cgi?id=1759 timon.gehr gmx.ch changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |timon.gehr gmx.ch Resolution|INVALID |This is not a bug it's a feature,This can lead to memory corruption in safe code, therefore it is a bug.there's solution:This is a workaround. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 08 2012
http://d.puremagic.com/issues/show_bug.cgi?id=1759 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug yahoo.com.auThis is not a bug it's a feature,No, it's a wrong-code bug. This one has been on my to-do list for years now. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 15 2012