91f84216f7
and separates lexical name lookup from qualified name lookup. In particular: * Make DeclContext the central data structure for storing and looking up declarations within existing declarations, e.g., members of structs/unions/classes, enumerators in C++0x enums, members of C++ namespaces, and (later) members of Objective-C interfaces/implementations. DeclContext uses a lazily-constructed data structure optimized for fast lookup (array for small contexts, hash table for larger contexts). * Implement C++ qualified name lookup in terms of lookup into DeclContext. * Implement C++ unqualified name lookup in terms of qualified+unqualified name lookup (since unqualified lookup is not purely lexical in C++!) * Limit the use of the chains of declarations stored in IdentifierInfo to those names declared lexically. * Eliminate CXXFieldDecl, collapsing its behavior into FieldDecl. (FieldDecl is now a ScopedDecl). * Make RecordDecl into a DeclContext and eliminates its Members/NumMembers fields (since one can just iterate through the DeclContext to get the fields). llvm-svn: 60878 |
||
---|---|---|
.. | ||
Analysis | ||
CodeGen | ||
CodeGenObjC | ||
Coverage | ||
Driver | ||
Lexer | ||
Misc | ||
Parser | ||
Preprocessor | ||
Rewriter | ||
Sema | ||
SemaCXX | ||
SemaObjC | ||
SemaObjCXX | ||
Serialization | ||
Makefile | ||
TestRunner.sh |