Message ID | CAFH4-dj=0o7c15qb614bNfkKDC1GyXx66ifmgjknUhgFa563GQ@mail.gmail.com |
---|---|
State | New |
Headers | show |
On 11 December 2011 22:22, Fabien Chêne wrote: > > Consequently, I propose to deprecate them with a warning, as clang already does. > So that you get a warning for the following code: > > struct A { int i; }; > struct B : A > { > A::i; // <- warning here > }; > > warning: access declarations are deprecated; employ using declarations > instead [-Wdeprecated] Whether or not it's suitable for stage 3, "employ" feels a bit clunky in this context, how about "access declarations are deprecated in favour of using-declarations" ?
2011/12/11 Jonathan Wakely <jwakely.gcc@gmail.com>: > On 11 December 2011 22:22, Fabien Chêne wrote: >> >> Consequently, I propose to deprecate them with a warning, as clang already does. >> So that you get a warning for the following code: >> >> struct A { int i; }; >> struct B : A >> { >> A::i; // <- warning here >> }; >> >> warning: access declarations are deprecated; employ using declarations >> instead [-Wdeprecated] > > Whether or not it's suitable for stage 3, "employ" feels a bit clunky > in this context, how about "access declarations are deprecated in > favour of using-declarations" ? Native spoker's suggestions are always very welcome, thanks ! (I was just trying to avoid using "use" ...)
Jonathan Wakely <jwakely.gcc@gmail.com> writes: > On 11 December 2011 22:22, Fabien Chêne wrote: >> >> Consequently, I propose to deprecate them with a warning, as clang already does. >> So that you get a warning for the following code: >> >> struct A { int i; }; >> struct B : A >> { >> A::i; // <- warning here >> }; >> >> warning: access declarations are deprecated; employ using declarations >> instead [-Wdeprecated] > > Whether or not it's suitable for stage 3, "employ" feels a bit clunky > in this context, how about "access declarations are deprecated in > favour of using-declarations" ? How about "...; suggest adding the using keyword"? "using declarations" is ambigous, it is not clear that "using" means the keyword here. Andreas.
On 12 December 2011 09:18, Andreas Schwab wrote: > Jonathan Wakely <jwakely.gcc@gmail.com> writes: > >> On 11 December 2011 22:22, Fabien Chêne wrote: >>> >>> Consequently, I propose to deprecate them with a warning, as clang already does. >>> So that you get a warning for the following code: >>> >>> struct A { int i; }; >>> struct B : A >>> { >>> A::i; // <- warning here >>> }; >>> >>> warning: access declarations are deprecated; employ using declarations >>> instead [-Wdeprecated] >> >> Whether or not it's suitable for stage 3, "employ" feels a bit clunky >> in this context, how about "access declarations are deprecated in >> favour of using-declarations" ? > > How about "...; suggest adding the using keyword"? That sounds like the compiler is suggesting that the user suggests doing that! > "using declarations" is ambigous, it is not clear that "using" means the > keyword here. That's why I put the hyphen in "using-declarations" :-) but this is turning into a bike shed issue.
Jonathan Wakely <jwakely.gcc@gmail.com> writes: > On 12 December 2011 09:18, Andreas Schwab wrote: >> Jonathan Wakely <jwakely.gcc@gmail.com> writes: >> >>> On 11 December 2011 22:22, Fabien Chêne wrote: >>>> >>>> Consequently, I propose to deprecate them with a warning, as clang already does. >>>> So that you get a warning for the following code: >>>> >>>> struct A { int i; }; >>>> struct B : A >>>> { >>>> A::i; // <- warning here >>>> }; >>>> >>>> warning: access declarations are deprecated; employ using declarations >>>> instead [-Wdeprecated] >>> >>> Whether or not it's suitable for stage 3, "employ" feels a bit clunky >>> in this context, how about "access declarations are deprecated in >>> favour of using-declarations" ? >> >> How about "...; suggest adding the using keyword"? > > That sounds like the compiler is suggesting that the user suggests doing that! It is similar to "suggest parentheses ...". Andreas.
On 12 December 2011 10:08, Andreas Schwab wrote: > Jonathan Wakely <jwakely.gcc@gmail.com> writes: > >> On 12 December 2011 09:18, Andreas Schwab wrote: >>> Jonathan Wakely <jwakely.gcc@gmail.com> writes: >>> >>>> On 11 December 2011 22:22, Fabien Chêne wrote: >>>>> >>>>> Consequently, I propose to deprecate them with a warning, as clang already does. >>>>> So that you get a warning for the following code: >>>>> >>>>> struct A { int i; }; >>>>> struct B : A >>>>> { >>>>> A::i; // <- warning here >>>>> }; >>>>> >>>>> warning: access declarations are deprecated; employ using declarations >>>>> instead [-Wdeprecated] >>>> >>>> Whether or not it's suitable for stage 3, "employ" feels a bit clunky >>>> in this context, how about "access declarations are deprecated in >>>> favour of using-declarations" ? >>> >>> How about "...; suggest adding the using keyword"? >> >> That sounds like the compiler is suggesting that the user suggests doing that! > > It is similar to "suggest parentheses ...". Good point, that's not correct English either, but it would be consistent. ("Suggest X" is an imperative, telling the user to suggest X. The intention is for the compiler to suggest it, not tell the user to suggest it, so the correct grammar would be "GCC suggests X".)
Jonathan Wakely <jwakely.gcc@gmail.com> writes: >>>> How about "...; suggest adding the using keyword"? >>> >>> That sounds like the compiler is suggesting that the user suggests >>> doing that! >> >> It is similar to "suggest parentheses ...". > > Good point, that's not correct English either, but it would be consistent. > > ("Suggest X" is an imperative, telling the user to suggest X. The > intention is for the compiler to suggest it, not tell the user to > suggest it, so the correct grammar would be "GCC suggests X".) How about "; suggestion: use parentheses" or "; suggestion: add the `using' keyword" (using whatever convention for quoting code). -miles
2011/12/13 Miles Bader <miles@gnu.org>: > Jonathan Wakely <jwakely.gcc@gmail.com> writes: >>>>> How about "...; suggest adding the using keyword"? >>>> >>>> That sounds like the compiler is suggesting that the user suggests >>>> doing that! >>> >>> It is similar to "suggest parentheses ...". >> >> Good point, that's not correct English either, but it would be consistent. >> >> ("Suggest X" is an imperative, telling the user to suggest X. The >> intention is for the compiler to suggest it, not tell the user to >> suggest it, so the correct grammar would be "GCC suggests X".) > > How about "; suggestion: use parentheses" or "; suggestion: add the > `using' keyword" (using whatever convention for quoting code). Sounds good. Since nobody has objected yet, I am going to prepare the complete patch, to submit it probably at the end of the week.
Index: gcc/cp/parser.c =================================================================== --- gcc/cp/parser.c (revision 182209) +++ gcc/cp/parser.c (working copy) @@ -18900,7 +18900,11 @@ cp_parser_member_declaration (cp_parser* parser->colon_corrects_to_scope_p = false; if (cp_parser_using_declaration (parser, /*access_declaration=*/true)) - goto out; + { + warning (OPT_Wdeprecated, "access declarations are deprecated; " + "employ using declarations instead"); + goto out; + } /* Parse the decl-specifier-seq. */ decl_spec_token_start = cp_lexer_peek_token (parser->lexer);