Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/lookup/suggestions-scoped-enums.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line source
// { dg-do compile { target c++11 } } // { dg-options "-fdiagnostics-show-caret" } /* Verify that we offer suggestions for misspelled values in scoped enums, and for values from scoped enums that are missing their scope. Verify that we emit fix-it hints for those cases for which we have adequate location information. */ enum class vegetable { CARROT, TURNIP }; // { dg-line decl_of_vegetable } namespace pasta { enum class shape { LASAGNA, LINGUINE, SPAGHETTI, TAGLIATELLE }; // { dg-line decl_of_shape } } void misspelled_value_in_scoped_enum () { vegetable::TURNUP; // { dg-error "'TURNUP' is not a member of 'vegetable'; did you mean 'TURNIP'" } /* { dg-begin-multiline-output "" } vegetable::TURNUP; ^~~~~~ TURNIP { dg-end-multiline-output "" } */ } void misspelled_value_using_explicit_ns () { pasta::shape::SPOOGHETTI; // { dg-error "'SPOOGHETTI' is not a member of 'pasta::shape'; did you mean 'SPAGHETTI'" } /* { dg-begin-multiline-output "" } pasta::shape::SPOOGHETTI; ^~~~~~~~~~ SPAGHETTI { dg-end-multiline-output "" } */ } namespace pasta { void misspelled_value_using_implicit_ns () { shape::SPOOGHETTI; // { dg-error "'SPOOGHETTI' is not a member of 'pasta::shape'; did you mean 'SPAGHETTI'" } /* { dg-begin-multiline-output "" } shape::SPOOGHETTI; ^~~~~~~~~~ SPAGHETTI { dg-end-multiline-output "" } */ } } // namespace pasta void unqualified_enum_in_global_ns () { CARROT; // { dg-error "'CARROT' was not declared in this scope; did you mean 'vegetable::CARROT'" } /* { dg-begin-multiline-output "" } CARROT; ^~~~~~ vegetable::CARROT { dg-end-multiline-output "" } */ // { dg-message "'vegetable::CARROT' declared here" "" { target *-*-* } decl_of_vegetable } /* { dg-begin-multiline-output "" } enum class vegetable { CARROT, TURNIP }; ^~~~~~ { dg-end-multiline-output "" } */ } void unqualified_enum_in_ns () { LASAGNA; // { dg-error "'LASAGNA' was not declared in this scope; did you mean 'pasta::shape::LASAGNA'" } /* { dg-begin-multiline-output "" } LASAGNA; ^~~~~~~ pasta::shape::LASAGNA { dg-end-multiline-output "" } */ // { dg-message "'pasta::shape::LASAGNA' declared here" "" { target *-*-* } decl_of_shape } /* { dg-begin-multiline-output "" } enum class shape { LASAGNA, LINGUINE, SPAGHETTI, TAGLIATELLE }; ^~~~~~~ { dg-end-multiline-output "" } */ } /* We can't guarantee location information here, so don't expect a fix-it hint. */ void unqualified_enum_in_explicit_ns () { pasta::LINGUINE; // { dg-error "'LINGUINE' is not a member of 'pasta'; did you mean 'pasta::shape::LINGUINE'" } /* { dg-begin-multiline-output "" } pasta::LINGUINE; ^~~~~~~~ { dg-end-multiline-output "" } */ // { dg-message "'pasta::shape::LINGUINE' declared here" "" { target *-*-* } decl_of_shape } /* { dg-begin-multiline-output "" } enum class shape { LASAGNA, LINGUINE, SPAGHETTI, TAGLIATELLE }; ^~~~~~~~ { dg-end-multiline-output "" } */ } namespace pasta { void unqualified_enum_in_implicit_ns () { TAGLIATELLE; // { dg-error "'TAGLIATELLE' was not declared in this scope; did you mean 'pasta::shape::TAGLIATELLE'" } /* { dg-begin-multiline-output "" } TAGLIATELLE; ^~~~~~~~~~~ pasta::shape::TAGLIATELLE { dg-end-multiline-output "" } */ // { dg-message "'pasta::shape::TAGLIATELLE' declared here" "" { target *-*-* } decl_of_shape } /* { dg-begin-multiline-output "" } enum class shape { LASAGNA, LINGUINE, SPAGHETTI, TAGLIATELLE }; ^~~~~~~~~~~ { dg-end-multiline-output "" } */ } }