"Incremental" progress on using expressions, by which I mean totally ripping
into pretty much everything about overload resolution in order to wean BuildDeclarationNameExpr off LookupResult::getAsSingleDecl(). Replace UnresolvedFunctionNameExpr with UnresolvedLookupExpr, which generalizes the idea of a non-member lookup that we haven't totally resolved yet, whether by overloading, argument-dependent lookup, or (eventually) the presence of a function template in the lookup results. Incidentally fixes a problem with argument-dependent lookup where we were still performing ADL even when the lookup results contained something from a block scope. Incidentally improves a diagnostic when using an ObjC ivar from a class method. This just fell out from rewriting BuildDeclarationNameExpr's interaction with lookup, and I'm too apathetic to break it out. The only remaining uses of OverloadedFunctionDecl that I know of are in TemplateName and MemberExpr. llvm-svn: 89544
Showing
- clang/include/clang/AST/DeclCXX.h 40 additions, 6 deletionsclang/include/clang/AST/DeclCXX.h
- clang/include/clang/AST/ExprCXX.h 96 additions, 50 deletionsclang/include/clang/AST/ExprCXX.h
- clang/include/clang/AST/StmtNodes.def 1 addition, 1 deletionclang/include/clang/AST/StmtNodes.def
- clang/lib/AST/DeclCXX.cpp 12 additions, 21 deletionsclang/lib/AST/DeclCXX.cpp
- clang/lib/AST/Expr.cpp 4 additions, 1 deletionclang/lib/AST/Expr.cpp
- clang/lib/AST/ExprCXX.cpp 3 additions, 3 deletionsclang/lib/AST/ExprCXX.cpp
- clang/lib/AST/StmtPrinter.cpp 4 additions, 4 deletionsclang/lib/AST/StmtPrinter.cpp
- clang/lib/AST/StmtProfile.cpp 1 addition, 1 deletionclang/lib/AST/StmtProfile.cpp
- clang/lib/Sema/Lookup.h 6 additions, 0 deletionsclang/lib/Sema/Lookup.h
- clang/lib/Sema/Sema.h 15 additions, 6 deletionsclang/lib/Sema/Sema.h
- clang/lib/Sema/SemaCodeComplete.cpp 3 additions, 4 deletionsclang/lib/Sema/SemaCodeComplete.cpp
- clang/lib/Sema/SemaDeclCXX.cpp 7 additions, 16 deletionsclang/lib/Sema/SemaDeclCXX.cpp
- clang/lib/Sema/SemaExpr.cpp 288 additions, 150 deletionsclang/lib/Sema/SemaExpr.cpp
- clang/lib/Sema/SemaExprCXX.cpp 8 additions, 8 deletionsclang/lib/Sema/SemaExprCXX.cpp
- clang/lib/Sema/SemaLookup.cpp 19 additions, 23 deletionsclang/lib/Sema/SemaLookup.cpp
- clang/lib/Sema/SemaOverload.cpp 138 additions, 158 deletionsclang/lib/Sema/SemaOverload.cpp
- clang/lib/Sema/SemaTemplateInstantiate.cpp 54 additions, 44 deletionsclang/lib/Sema/SemaTemplateInstantiate.cpp
- clang/lib/Sema/TreeTransform.h 21 additions, 12 deletionsclang/lib/Sema/TreeTransform.h
- clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p4.cpp 2 additions, 2 deletionsclang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p4.cpp
- clang/test/SemaObjC/ivar-ref-misuse.m 1 addition, 1 deletionclang/test/SemaObjC/ivar-ref-misuse.m
Loading
Please register or sign in to comment