10daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain// RUN: %clang_cc1 -fsyntax-only -verify %s
20daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain// RUN: cp %s %t
30daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain// RUN: not %clang_cc1 -fsyntax-only -fixit -x c++ %t
40daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain// RUN: %clang_cc1 -fsyntax-only -pedantic -Werror -x c++ %t
50daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain// RUN: grep using_suggestion_tyname_ty_dropped_specifier %t
60daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
70daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain// These tests have been separated from typo.cpp to keep the maximum typo
80daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain// correction counter from ticking over; this causes spurious failures.
90daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
100daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_ty {
110daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace N { class AAA {}; } // expected-note {{'AAA' declared here}}
120daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainusing N::AAB; // expected-error {{no member named 'AAB' in namespace 'using_suggestion_ty::N'; did you mean 'AAA'?}}
130daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
140daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
150daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_tyname_ty {
160daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace N { class AAA {}; } // expected-note {{'AAA' declared here}}
170daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainusing typename N::AAB; // expected-error {{no member named 'AAB' in namespace 'using_suggestion_tyname_ty::N'; did you mean 'AAA'?}}
180daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
190daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
200daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_val {
210daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace N { void FFF() {} } // expected-note {{'FFF' declared here}}
220daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainusing N::FFG; // expected-error {{no member named 'FFG' in namespace 'using_suggestion_val::N'; did you mean 'FFF'?}}
230daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
240daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
250daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_ty_dropped_specifier {
263d9559b91c00757b296354cc6ca93e899266c7d2Kaelyn Uhrainclass ABC {}; // expected-note {{'::using_suggestion_ty_dropped_specifier::ABC' declared here}}
270daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace N { }
283d9559b91c00757b296354cc6ca93e899266c7d2Kaelyn Uhrainusing 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'?}}
290daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
300daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
310daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_tyname_ty_dropped_specifier {
323d9559b91c00757b296354cc6ca93e899266c7d2Kaelyn Uhrainclass BCD {}; // expected-note {{'::using_suggestion_tyname_ty_dropped_specifier::BCD' declared here}}
330daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace N { }
343d9559b91c00757b296354cc6ca93e899266c7d2Kaelyn Uhrainusing 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'?}}
350daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
360daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
370daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_val_dropped_specifier {
383d9559b91c00757b296354cc6ca93e899266c7d2Kaelyn Uhrainvoid EFG() {} // expected-note {{'::using_suggestion_val_dropped_specifier::EFG' declared here}}
390daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace N { }
403d9559b91c00757b296354cc6ca93e899266c7d2Kaelyn Uhrainusing 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'?}}
410daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
420daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
430daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_member_ty {
440daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainclass CCC { public: typedef int AAA; }; // expected-note {{'AAA' declared here}}
450daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainclass DDD : public CCC { public: using CCC::AAB; }; // expected-error {{no member named 'AAB' in 'using_suggestion_member_ty::CCC'; did you mean 'AAA'?}}
460daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
470daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
480daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_member_val {
490daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainclass CCC { public: void AAA() { } }; // expected-note {{'AAA' declared here}}
500daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainclass DDD : public CCC { public: using CCC::AAB; }; // expected-error {{no member named 'AAB' in 'using_suggestion_member_val::CCC'; did you mean 'AAA'?}}
510daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
520daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain
530daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainnamespace using_suggestion_member_tyname_ty {
540daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainclass CCC { public: typedef int AAA; }; // expected-note {{'AAA' declared here}}
550daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrainclass 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'?}}
560daf1f4a0ff1cd6487c7040ac8f97eee48185536Kaelyn Uhrain}
57