aboutsummaryrefslogtreecommitdiff
path: root/test/Parser/cxx-using-directive.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-01-14 22:20:51 +0000
committerDouglas Gregor <dgregor@apple.com>2009-01-14 22:20:51 +0000
commiteb11cd078ba8682bbb9b082f8f6ead8be5c98581 (patch)
tree01369931f9c2b3fbf53b8385ea9bee2e0ec0e16d /test/Parser/cxx-using-directive.cpp
parent2253dc4705e7816a6cafcf95498da7080041a3e2 (diff)
Refactor name lookup.
This change refactors and cleans up our handling of name lookup with LookupDecl. There are several aspects to this refactoring: - The criteria for name lookup is now encapsulated into the class LookupCriteria, which replaces the hideous set of boolean values that LookupDecl currently has. - The results of name lookup are returned in a new class LookupResult, which can lazily build OverloadedFunctionDecls for overloaded function sets (and, eventually, eliminate the need to allocate member for OverloadedFunctionDecls) and contains a placeholder for handling ambiguous name lookup (for C++). - The primary entry points for name lookup are now LookupName (for unqualified name lookup) and LookupQualifiedName (for qualified name lookup). There is also a convenience function LookupParsedName that handles qualified/unqualified name lookup when given a scope specifier. Together, these routines are meant to gradually replace the kludgy LookupDecl, but this won't happen until after we have base class lookup (which forces us to cope with ambiguities). - Documented the heck out of name lookup. Experimenting a little with using Doxygen's member groups to make some sense of the Sema class. Feedback welcome! - Fixes some lingering issues with name lookup for nested-name-specifiers, which now goes through LookupName/LookupQualifiedName. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62245 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Parser/cxx-using-directive.cpp')
-rw-r--r--test/Parser/cxx-using-directive.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/Parser/cxx-using-directive.cpp b/test/Parser/cxx-using-directive.cpp
index 73f1e002c2..2ee014e54f 100644
--- a/test/Parser/cxx-using-directive.cpp
+++ b/test/Parser/cxx-using-directive.cpp
@@ -31,3 +31,10 @@ using namespace A ; // expected-error{{expected namespace name}}
using namespace ::A // expected-error{{expected namespace name}}
B ; // expected-error{{expected ';' after namespace name}}
+void test_nslookup() {
+ int B;
+ class C;
+ using namespace B;
+ using namespace C;
+}
+