llvm-project/clang/lib/AST
John McCall 2d74de9632 Rework how we support C++ implicit member accesses. If we can resolve an
implicit member access to a specific declaration, go ahead and create
it as a DeclRefExpr or a MemberExpr (with implicit CXXThisExpr base) as
appropriate.  Otherwise, create an UnresolvedMemberExpr or
DependentScopeMemberExpr with a null base expression.

By representing implicit accesses directly in the AST, we get the ability
to correctly delay the decision about whether it's actually an instance
member access or not until resolution is complete.  This permits us
to correctly avoid diagnosing the 'problem' of 'MyType::foo()'
where the relationship to the type isn't really known until instantiation.

llvm-svn: 90266
2009-12-01 22:10:20 +00:00
..
APValue.cpp Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ASTConsumer.cpp Push DeclGroup much farther throughout the compiler. Now the various 2009-03-29 16:50:03 +00:00
ASTContext.cpp Fix a crash when ivar type is a __strong SEL. Fallout from 2009-11-30 18:43:52 +00:00
CMakeLists.txt Move all of the type-printing logic to its own C++ source file 2009-11-10 00:39:07 +00:00
CXXInheritance.cpp First part of changes to eliminate problems with cv-qualifiers and 2009-11-16 21:35:15 +00:00
Decl.cpp Slight tweak to the algorithm for getLinkage(). 2009-11-26 03:04:01 +00:00
DeclBase.cpp Allocate MultipleDC objects using the allocator associated with 2009-12-01 00:07:10 +00:00
DeclCXX.cpp Let using directives refer to namespace aliases. Fixes PR5479. 2009-11-23 15:34:23 +00:00
DeclGroup.cpp Remove the serialization code that predates precompiled 2009-04-22 21:45:53 +00:00
DeclObjC.cpp Add ObjCClassDecl::getSourceRange(). 2009-11-18 01:26:56 +00:00
DeclPrinter.cpp Remove VISIBILITY_HIDDEN from lib/AST. 2009-11-28 19:03:38 +00:00
DeclTemplate.cpp Centralize and complete the computation of value- and type-dependence for DeclRefExprs 2009-11-23 11:41:28 +00:00
DeclarationName.cpp Add DeclarationName support for C++0x operator literals. They should now work as 2009-11-29 07:34:05 +00:00
Expr.cpp Eliminate the use of OverloadedFunctionDecl in member expressions. 2009-11-30 22:42:35 +00:00
ExprCXX.cpp Rework how we support C++ implicit member accesses. If we can resolve an 2009-12-01 22:10:20 +00:00
ExprConstant.cpp Remove VISIBILITY_HIDDEN from lib/AST. 2009-11-28 19:03:38 +00:00
InheritViz.cpp Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
Makefile Installation of Clang libraries and headers, from Axel Naumann! 2009-10-08 22:15:31 +00:00
NestedNameSpecifier.cpp Move all of the type-printing logic to its own C++ source file 2009-11-10 00:39:07 +00:00
ParentMap.cpp Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
RecordLayoutBuilder.cpp Have ASTRecordLayout keep track of the key function, in preparation of fixing a synthetic ctor/dtor bug. 2009-11-30 23:41:22 +00:00
RecordLayoutBuilder.h Add a new PrimaryBaseInfo struct that combines the record decl of a primary base with whether it's virtual or not. 2009-11-27 22:05:05 +00:00
Stmt.cpp Add const to accessors that don't modify the object. 2009-11-30 20:10:58 +00:00
StmtDumper.cpp Remove VISIBILITY_HIDDEN from lib/AST. 2009-11-28 19:03:38 +00:00
StmtIterator.cpp Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
StmtPrinter.cpp Rework how we support C++ implicit member accesses. If we can resolve an 2009-12-01 22:10:20 +00:00
StmtProfile.cpp Rework how we support C++ implicit member accesses. If we can resolve an 2009-12-01 22:10:20 +00:00
StmtViz.cpp Adapt to the DOTGraphTraits changes in LLVM. 2009-11-30 14:16:05 +00:00
TemplateBase.cpp Canonical template arguments that are template template parameters by 2009-11-23 12:52:47 +00:00
TemplateName.cpp Implement support for parsing dependent template-ids that refer to 2009-11-04 00:56:37 +00:00
Type.cpp Make 'SEL' pointer to a builtin type and not an 2009-11-23 18:04:25 +00:00
TypeLoc.cpp Suppress build warning. 2009-10-19 01:20:42 +00:00
TypePrinter.cpp Encapsulate "an array of TemplateArgumentLocs and two angle bracket locations" into 2009-11-23 01:53:49 +00:00