llvm-capstone/clang/test/Parser/cxx-using-directive.cpp
Kaelyn Uhrain 8aa8da85ca Allow CorrectTypo to replace CXXScopeSpecifiers that refer to classes.
Now that CorrectTypo knows how to correctly search classes for typo
correction candidates, there is no good reason to only replace an
existing CXXScopeSpecifier if it refers to a namespace. While the actual
enablement was a matter of changing a single comparison, the fallout
from enabling the functionality required a lot more code changes
(including my two previous commits).

llvm-svn: 193020
2013-10-19 00:05:00 +00:00

41 lines
1.2 KiB
C++

// RUN: %clang_cc1 -fsyntax-only -verify %s
class A {};
namespace B {
namespace A {} // expected-note{{namespace '::B::A' defined here}} \
// expected-note 2{{namespace 'B::A' defined here}}
using namespace A ;
}
namespace C {} // expected-note{{namespace 'C' defined here}}
namespace D {
class C {
using namespace B ; // expected-error{{not allowed}}
};
namespace B {}
using namespace C ;
using namespace B::A ; // expected-error{{no namespace named 'A' in namespace 'D::B'; did you mean '::B::A'?}}
using namespace ::B::A ;
using namespace ::D::F ; // expected-error{{expected namespace name}}
using namespace ::D::C ; // expected-error{{no namespace named 'C' in namespace 'D'; did you mean simply 'C'?}}
}
using namespace ! ; // expected-error{{expected namespace name}}
using namespace A ; // expected-error{{no namespace named 'A'; did you mean 'B::A'?}}
using namespace ::A // expected-error{{no namespace named 'A' in the global namespace; did you mean 'B::A'?}} \
// expected-error{{expected ';' after namespace name}}
B ;
void test_nslookup() {
int B;
class C;
using namespace B;
using namespace C;
}