digitalmars.D.bugs - [Issue 4987] New: C function pointer syntax needs to be deprecated
- d-bugmail puremagic.com (56/56) Oct 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4987
- d-bugmail puremagic.com (11/11) Oct 05 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4987
- d-bugmail puremagic.com (11/14) Nov 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4987
- d-bugmail puremagic.com (13/19) Dec 30 2011 http://d.puremagic.com/issues/show_bug.cgi?id=4987
http://d.puremagic.com/issues/show_bug.cgi?id=4987 Summary: C function pointer syntax needs to be deprecated Product: D Version: D1 & D2 Platform: Other OS/Version: Windows Status: NEW Keywords: patch Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: clugdbug yahoo.com.au This patch also gives a reasonable fix for bug 4962, "Improve error message for wrong constructor name?" It also gives nice error messages for missing return types in function declarations. Most importantly, it makes x(y) an invalid type, instead of being a declaration of a 'y', where &y is type 'x function()'. It's critical that syntax be removed. --- PATCH: parse.c, Parser::parseDeclarator() line 2497 ---- case TOKlparen: if (peekNext() == TOKmul || peekNext() == TOKlparen || peekNext() == TOKlbracket) { /* Parse things with parentheses around the identifier, like: * int (*ident[3])[] * although the D style would be: * int[]*[3] ident */ if (!global.params.useDeprecated) { error("C-style function pointer syntax is deprecated. Use 'function' to declare function pointers"); } nextToken(); ts = parseDeclarator(t, pident); check(TOKrparen); break; } ts = t; Token *peekt = &token; // Improve error messages for the common bug of a missing return type if (isParameters(&peekt)) { error("function declaration without return type. " "(Note that constructors are always named 'this')"); } else error("unexpected ( in declarator"); break; -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4987 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla digitalmars.com 00:19:23 PDT --- I changed it for D2 only, in order to avoid breaking existing D1 code. http://www.dsource.org/projects/dmd/changeset/703 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 05 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4987 Jerry Quinn <jlquinn optonline.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jlquinn optonline.net ---I changed it for D2 only, in order to avoid breaking existing D1 code. http://www.dsource.org/projects/dmd/changeset/703The language grammar (declaration.html) also needs to be updated. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4987 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXEDIt's marked as deprecated in declaration.html. As long as it's deprecated but not removed, I think it should remain as part of the grammer. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------I changed it for D2 only, in order to avoid breaking existing D1 code. http://www.dsource.org/projects/dmd/changeset/703The language grammar (declaration.html) also needs to be updated.
Dec 30 2011