typo-using.cpp 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // RUN: %clang_cc1 -fsyntax-only -verify %s
  2. // RUN: cp %s %t
  3. // RUN: not %clang_cc1 -fsyntax-only -fixit -x c++ %t
  4. // RUN: %clang_cc1 -fsyntax-only -pedantic -Werror -x c++ %t
  5. // RUN: grep using_suggestion_tyname_ty_dropped_specifier %t
  6. // These tests have been separated from typo.cpp to keep the maximum typo
  7. // correction counter from ticking over; this causes spurious failures.
  8. namespace using_suggestion_ty {
  9. namespace N { class AAA {}; } // expected-note {{'AAA' declared here}}
  10. using N::AAB; // expected-error {{no member named 'AAB' in namespace 'using_suggestion_ty::N'; did you mean 'AAA'?}}
  11. }
  12. namespace using_suggestion_tyname_ty {
  13. namespace N { class AAA {}; } // expected-note {{'AAA' declared here}}
  14. using typename N::AAB; // expected-error {{no member named 'AAB' in namespace 'using_suggestion_tyname_ty::N'; did you mean 'AAA'?}}
  15. }
  16. namespace using_suggestion_val {
  17. namespace N { void FFF() {} } // expected-note {{'FFF' declared here}}
  18. using N::FFG; // expected-error {{no member named 'FFG' in namespace 'using_suggestion_val::N'; did you mean 'FFF'?}}
  19. }
  20. namespace using_suggestion_ty_dropped_specifier {
  21. class ABC {}; // expected-note {{'::using_suggestion_ty_dropped_specifier::ABC' declared here}}
  22. namespace N { }
  23. using N::ABC; // expected-error {{no member named 'ABC' in namespace 'using_suggestion_ty_dropped_specifier::N'; did you mean '::using_suggestion_ty_dropped_specifier::ABC'?}}
  24. }
  25. namespace using_suggestion_tyname_ty_dropped_specifier {
  26. class BCD {}; // expected-note {{'::using_suggestion_tyname_ty_dropped_specifier::BCD' declared here}}
  27. namespace N { }
  28. using typename N::BCD; // expected-error {{no member named 'BCD' in namespace 'using_suggestion_tyname_ty_dropped_specifier::N'; did you mean '::using_suggestion_tyname_ty_dropped_specifier::BCD'?}}
  29. }
  30. namespace using_suggestion_val_dropped_specifier {
  31. void EFG() {} // expected-note {{'::using_suggestion_val_dropped_specifier::EFG' declared here}}
  32. namespace N { }
  33. using N::EFG; // expected-error {{no member named 'EFG' in namespace 'using_suggestion_val_dropped_specifier::N'; did you mean '::using_suggestion_val_dropped_specifier::EFG'?}}
  34. }
  35. namespace using_suggestion_member_ty {
  36. class CCC { public: typedef int AAA; }; // expected-note {{'AAA' declared here}}
  37. class DDD : public CCC { public: using CCC::AAB; }; // expected-error {{no member named 'AAB' in 'using_suggestion_member_ty::CCC'; did you mean 'AAA'?}}
  38. }
  39. namespace using_suggestion_member_val {
  40. class CCC { public: void AAA() { } }; // expected-note {{'AAA' declared here}}
  41. class DDD : public CCC { public: using CCC::AAB; }; // expected-error {{no member named 'AAB' in 'using_suggestion_member_val::CCC'; did you mean 'AAA'?}}
  42. }
  43. namespace using_suggestion_member_tyname_ty {
  44. class CCC { public: typedef int AAA; }; // expected-note {{'AAA' declared here}}
  45. class DDD : public CCC { public: using typename CCC::AAB; }; // expected-error {{no member named 'AAB' in 'using_suggestion_member_tyname_ty::CCC'; did you mean 'AAA'?}}
  46. }