digitalmars.D.bugs - [Issue 5288] New: auto return: forward ref error when using it with recursive functions
- d-bugmail puremagic.com (27/27) Nov 29 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5288
- d-bugmail puremagic.com (9/9) Jan 06 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5288
- d-bugmail puremagic.com (10/10) Jan 06 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5288
- d-bugmail puremagic.com (11/11) Apr 03 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5288
- d-bugmail puremagic.com (16/18) Apr 04 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5288
- d-bugmail puremagic.com (22/22) Nov 25 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5288
- d-bugmail puremagic.com (6/6) Dec 03 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5288
- d-bugmail puremagic.com (24/24) Mar 04 2013 http://d.puremagic.com/issues/show_bug.cgi?id=5288
http://d.puremagic.com/issues/show_bug.cgi?id=5288 Summary: auto return: forward ref error when using it with recursive functions Product: D Version: D2 Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: nfxjfg gmail.com auto x(int z) { if (z == 1) { return x(z); //line 3 } else { return z; //line 5 } } z.d(3): Error: forward reference to x z.d(5): Error: mismatched function return type inference of int and _error_ It works when you switch line 3 and 5. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 29 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5288 nfxjfg gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WONTFIX -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 06 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5288 Brad Roberts <braddr puremagic.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |braddr puremagic.com Resolution|WONTFIX | -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 06 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5288 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla digitalmars.com 22:12:01 PDT --- This one is a little hard to fix, because the semantic analysis for function bodies goes statement by statement in a forward manner. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 03 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5288 bearophile_hugs eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_hugs eml.ccThis one is a little hard to fix, because the semantic analysis for function bodies goes statement by statement in a forward manner.This is a nice bug report, and to solve this kind of code the D compiler probably needs a little more powerful type inference. If you are able to do this improvement with a reasonable amount of work and code, then it's OK. Otherwise an option it to mark this with WONTFIX to keep the D compiler simpler. A better type inferencer may require more compilation time and a bigger compiler. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 04 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5288 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Platform|Other |All OS/Version|Linux |All There is mutually recursive call as a slightly more complex case. From http://d.puremagic.com/issues/show_bug.cgi?id=2810#c8 auto foo() { bar(); return 1; } auto bar() { foo(); return 1; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 25 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5288 *** Issue 7059 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 03 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5288 Maksim Zholudev <maximzms gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |maximzms gmail.com PST --- Now this doesn't work even if lines 3 and 5 go in reverse order: -------------------- auto x(int z) { if (z == 1) { return z; } else { return x(z); } } void main() {} -------------------- test.d(6): Error: forward reference to x -------------------- DMD from Git head: https://github.com/D-Programming-Language/dmd/commit/13b3bdbf3819fec810ebfb077957510612dfa815 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 04 2013