diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-05-31 00:18:32 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-05-31 00:18:32 +0000 |
commit | a0edd307153846881e36ec41c3ee1742246faf6d (patch) | |
tree | fa4bcc33f1d06d9e14630c03f5b609cc1a858045 /clang/lib/Sema/TreeTransform.h | |
parent | 5c8ce21a6c5f82b1b15c8ba0b0dcc022ce153b65 (diff) | |
download | bcm5719-llvm-a0edd307153846881e36ec41c3ee1742246faf6d.tar.gz bcm5719-llvm-a0edd307153846881e36ec41c3ee1742246faf6d.zip |
Refactor: use the DeclarationNameInfo form of BuildMemberReferenceExpr
consistently, rather than sometimes performing lookup and calling the
LookupResult form. No functionality change intended.
llvm-svn: 209941
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r-- | clang/lib/Sema/TreeTransform.h | 60 |
1 files changed, 13 insertions, 47 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index a13c3e442e2..6b6ebada370 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -2510,24 +2510,12 @@ public: bool IsArrow, bool IsFreeIvar) { // FIXME: We lose track of the IsFreeIvar bit. CXXScopeSpec SS; - ExprResult Base = BaseArg; - LookupResult R(getSema(), Ivar->getDeclName(), IvarLoc, - Sema::LookupMemberName); - ExprResult Result = getSema().LookupMemberExpr(R, Base, IsArrow, - /*FIME:*/IvarLoc, - SS, nullptr, - false); - if (Result.isInvalid() || Base.isInvalid()) - return ExprError(); - - if (Result.get()) - return Result; - - return getSema().BuildMemberReferenceExpr(Base.get(), Base.get()->getType(), + DeclarationNameInfo NameInfo(Ivar->getDeclName(), IvarLoc); + return getSema().BuildMemberReferenceExpr(BaseArg, BaseArg->getType(), /*FIXME:*/IvarLoc, IsArrow, SS, SourceLocation(), /*FirstQualifierInScope=*/nullptr, - R, + NameInfo, /*TemplateArgs=*/nullptr); } @@ -2539,24 +2527,14 @@ public: ObjCPropertyDecl *Property, SourceLocation PropertyLoc) { CXXScopeSpec SS; - ExprResult Base = BaseArg; - LookupResult R(getSema(), Property->getDeclName(), PropertyLoc, - Sema::LookupMemberName); - bool IsArrow = false; - ExprResult Result = getSema().LookupMemberExpr(R, Base, IsArrow, - /*FIME:*/PropertyLoc, - SS, nullptr, false); - if (Result.isInvalid() || Base.isInvalid()) - return ExprError(); - - if (Result.get()) - return Result; - - return getSema().BuildMemberReferenceExpr(Base.get(), Base.get()->getType(), - /*FIXME:*/PropertyLoc, IsArrow, + DeclarationNameInfo NameInfo(Property->getDeclName(), PropertyLoc); + return getSema().BuildMemberReferenceExpr(BaseArg, BaseArg->getType(), + /*FIXME:*/PropertyLoc, + /*IsArrow=*/false, SS, SourceLocation(), /*FirstQualifierInScope=*/nullptr, - R, /*TemplateArgs=*/nullptr); + NameInfo, + /*TemplateArgs=*/nullptr); } /// \brief Build a new Objective-C property reference expression. @@ -2580,26 +2558,14 @@ public: /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. ExprResult RebuildObjCIsaExpr(Expr *BaseArg, SourceLocation IsaLoc, - SourceLocation OpLoc, - bool IsArrow) { + SourceLocation OpLoc, bool IsArrow) { CXXScopeSpec SS; - ExprResult Base = BaseArg; - LookupResult R(getSema(), &getSema().Context.Idents.get("isa"), IsaLoc, - Sema::LookupMemberName); - ExprResult Result = getSema().LookupMemberExpr(R, Base, IsArrow, - OpLoc, - SS, nullptr, false); - if (Result.isInvalid() || Base.isInvalid()) - return ExprError(); - - if (Result.get()) - return Result; - - return getSema().BuildMemberReferenceExpr(Base.get(), Base.get()->getType(), + DeclarationNameInfo NameInfo(&getSema().Context.Idents.get("isa"), IsaLoc); + return getSema().BuildMemberReferenceExpr(BaseArg, BaseArg->getType(), OpLoc, IsArrow, SS, SourceLocation(), /*FirstQualifierInScope=*/nullptr, - R, + NameInfo, /*TemplateArgs=*/nullptr); } |