mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-26 06:48:51 -04:00

Snooping in other namespaces when the identifier being corrected is already qualified (i.e. a valid CXXScopeSpec is passed to CorrectTypo) and ranking synthesized namespace qualifiers relative to the existing qualifier is now performed. Support for disambiguating the string representation of synthesized namespace qualifers has also been added (the change to test/Parser/cxx-using-directive.cpp is an example of an ambiguous relative qualifier). llvm-svn: 150622
39 lines
923 B
C++
39 lines
923 B
C++
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
|
|
|
class A {};
|
|
|
|
namespace B {
|
|
namespace A {} // expected-note{{namespace '::B::A' defined here}}
|
|
using namespace A ;
|
|
}
|
|
|
|
namespace C {}
|
|
|
|
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::C ; // expected-error{{expected namespace name}}
|
|
}
|
|
|
|
using namespace ! ; // expected-error{{expected namespace name}}
|
|
using namespace A ; // expected-error{{expected namespace name}}
|
|
using namespace ::A // expected-error{{expected namespace name}} \
|
|
// expected-error{{expected ';' after namespace name}}
|
|
B ;
|
|
|
|
void test_nslookup() {
|
|
int B;
|
|
class C;
|
|
using namespace B;
|
|
using namespace C;
|
|
}
|