llvm-project/clang/lib/Sema
Douglas Gregor 3407432644 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. 

llvm-svn: 62245
2009-01-14 22:20:51 +00:00
..
CMakeLists.txt Refactor name lookup. 2009-01-14 22:20:51 +00:00
CXXFieldCollector.h Unifies the name-lookup mechanisms used in various parts of the AST 2008-12-11 16:49:14 +00:00
IdentifierResolver.cpp Unify the code for defining tags in C and C++, so that we always 2009-01-08 20:45:30 +00:00
IdentifierResolver.h Refactor name lookup. 2009-01-14 22:20:51 +00:00
Makefile rename libclangSEMA to libclangSema 2008-09-07 17:09:06 +00:00
ParseAST.cpp Comment fix, ParseAST does not take ownership of the consumer. 2008-10-27 22:01:05 +00:00
Sema.cpp Addressed the issue in <rdar://problem/6479085>, where we failed to 2009-01-09 00:49:46 +00:00
Sema.h Refactor name lookup. 2009-01-14 22:20:51 +00:00
SemaCXXScopeSpec.cpp Refactor name lookup. 2009-01-14 22:20:51 +00:00
SemaChecking.cpp Patch by Roman Divacky: 2009-01-12 23:09:09 +00:00
SemaDecl.cpp Refactor name lookup. 2009-01-14 22:20:51 +00:00
SemaDeclAttr.cpp Implemenent objective-c's NSObject attribute as a way of ddeclaraing c-type 2009-01-13 23:34:40 +00:00
SemaDeclCXX.cpp Refactor name lookup. 2009-01-14 22:20:51 +00:00
SemaDeclObjC.cpp Cleanup DeclContext::addDecl and DeclContext::insert interface, from Piotr Rak 2009-01-12 23:27:07 +00:00
SemaExpr.cpp Refactor name lookup. 2009-01-14 22:20:51 +00:00
SemaExprCXX.cpp Refactor name lookup. 2009-01-14 22:20:51 +00:00
SemaExprObjC.cpp Warn when someone tries to pass a variable with a non-POD type to a varargs function/method/block. 2009-01-13 05:48:52 +00:00
SemaInherit.cpp Change a whole lot of diagnostics to take QualType's directly 2008-11-24 06:25:27 +00:00
SemaInherit.h Implement semantic checking of static_cast and dynamic_cast. 2008-10-31 14:43:28 +00:00
SemaInit.cpp Introduce support for C++0x explicit conversion operators (N2437) 2009-01-14 15:45:31 +00:00
SemaLookup.cpp Refactor name lookup. 2009-01-14 22:20:51 +00:00
SemaNamedCast.cpp Delay semantic analysis of the C++ names casts when the subexpression is type-dependent or the destination type is dependent. 2008-12-17 22:52:20 +00:00
SemaOverload.cpp Introduce support for C++0x explicit conversion operators (N2437) 2009-01-14 15:45:31 +00:00
SemaOverload.h Add support for calls to overloaded member functions. Things to note: 2008-12-22 05:46:06 +00:00
SemaStmt.cpp Convert some more actions to smart pointers. 2009-01-11 00:38:46 +00:00
SemaTemplate.cpp Keep track of template arguments when we parse them. Right now, we don't actually do anything with the template arguments, but they'll be used to create template declarations 2008-12-24 02:52:09 +00:00
SemaType.cpp Provide a new kind of iterator, the specific_decl_iterator, that 2009-01-09 17:18:27 +00:00
SemaUtil.h Make a major restructuring of the clang tree: introduce a top-level 2008-03-15 23:59:48 +00:00