diff options
author | John McCall <rjmccall@apple.com> | 2009-11-19 22:55:06 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2009-11-19 22:55:06 +0000 |
commit | 865d447ac6a4721ab58e898d014a21f2eff74b06 (patch) | |
tree | 0de918aa66c08132f1dca0adafa76b7bc96ec52e /lib/Sema | |
parent | a7cf23a72b0846fc5aacf3f38bb8c8f9e76784cf (diff) |
Draw a brighter line between "unresolved" expressions, where we have done the
appropriate lookup and simply can't resolve the referrent yet, and
"dependent scope" expressions, where we can't do the lookup yet because the
entity we need to look into is a dependent type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89402 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema')
-rw-r--r-- | lib/Sema/SemaExpr.cpp | 8 | ||||
-rw-r--r-- | lib/Sema/SemaTemplate.cpp | 2 | ||||
-rw-r--r-- | lib/Sema/TreeTransform.h | 20 |
3 files changed, 15 insertions, 15 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 4f08ffe9db..789519368b 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -676,7 +676,7 @@ Sema::ActOnDeclarationNameExpr(Scope *S, SourceLocation Loc, // names a dependent type. // FIXME: Member of the current instantiation. if (SS && isDependentScopeSpecifier(*SS)) { - return Owned(new (Context) UnresolvedDeclRefExpr(Name, Context.DependentTy, + return Owned(new (Context) DependentScopeDeclRefExpr(Name, Context.DependentTy, Loc, SS->getRange(), static_cast<NestedNameSpecifier *>(SS->getScopeRep()), isAddressOfOperand)); @@ -1868,7 +1868,7 @@ Sema::BuildMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, FirstQualifierInScope = FindFirstQualifierInScope(S, Qualifier); } - return Owned(CXXUnresolvedMemberExpr::Create(Context, BaseExpr, true, + return Owned(CXXDependentScopeMemberExpr::Create(Context, BaseExpr, true, OpLoc, Qualifier, SS? SS->getRange() : SourceRange(), FirstQualifierInScope, @@ -1908,7 +1908,7 @@ Sema::BuildMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, FirstQualifierInScope = FindFirstQualifierInScope(S, Qualifier); } - return Owned(CXXUnresolvedMemberExpr::Create(Context, + return Owned(CXXDependentScopeMemberExpr::Create(Context, BaseExpr, false, OpLoc, Qualifier, @@ -1946,7 +1946,7 @@ Sema::BuildMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, } // FIXME: If DC is not computable, we should build a - // CXXUnresolvedMemberExpr. + // CXXDependentScopeMemberExpr. assert(DC && "Cannot handle non-computable dependent contexts in lookup"); } diff --git a/lib/Sema/SemaTemplate.cpp b/lib/Sema/SemaTemplate.cpp index 31cd30083e..8d77b1ff9b 100644 --- a/lib/Sema/SemaTemplate.cpp +++ b/lib/Sema/SemaTemplate.cpp @@ -1679,7 +1679,7 @@ bool Sema::CheckTemplateArgument(NamedDecl *Param, // parsed as a template template argument. However, since we now // know that we need a non-type template argument, convert this // template name into an expression. - Expr *E = new (Context) UnresolvedDeclRefExpr(DTN->getIdentifier(), + Expr *E = new (Context) DependentScopeDeclRefExpr(DTN->getIdentifier(), Context.DependentTy, Arg.getTemplateNameLoc(), Arg.getTemplateQualifierRange(), diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h index ca680c279b..579937ead7 100644 --- a/lib/Sema/TreeTransform.h +++ b/lib/Sema/TreeTransform.h @@ -1456,7 +1456,7 @@ public: /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. - OwningExprResult RebuildUnresolvedDeclRefExpr(NestedNameSpecifier *NNS, + OwningExprResult RebuildDependentScopeDeclRefExpr(NestedNameSpecifier *NNS, SourceRange QualifierRange, DeclarationName Name, SourceLocation Location, @@ -1546,7 +1546,7 @@ public: /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. - OwningExprResult RebuildCXXUnresolvedMemberExpr(ExprArg BaseE, + OwningExprResult RebuildCXXDependentScopeMemberExpr(ExprArg BaseE, bool IsArrow, SourceLocation OperatorLoc, NestedNameSpecifier *Qualifier, @@ -1575,7 +1575,7 @@ public: /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. - OwningExprResult RebuildCXXUnresolvedMemberExpr(ExprArg BaseE, + OwningExprResult RebuildCXXDependentScopeMemberExpr(ExprArg BaseE, bool IsArrow, SourceLocation OperatorLoc, NestedNameSpecifier *Qualifier, @@ -4592,8 +4592,8 @@ TreeTransform<Derived>::TransformUnaryTypeTraitExpr(UnaryTypeTraitExpr *E, template<typename Derived> Sema::OwningExprResult -TreeTransform<Derived>::TransformUnresolvedDeclRefExpr( - UnresolvedDeclRefExpr *E, +TreeTransform<Derived>::TransformDependentScopeDeclRefExpr( + DependentScopeDeclRefExpr *E, bool isAddressOfOperand) { NestedNameSpecifier *NNS = getDerived().TransformNestedNameSpecifier(E->getQualifier(), @@ -4611,7 +4611,7 @@ TreeTransform<Derived>::TransformUnresolvedDeclRefExpr( Name == E->getDeclName()) return SemaRef.Owned(E->Retain()); - return getDerived().RebuildUnresolvedDeclRefExpr(NNS, + return getDerived().RebuildDependentScopeDeclRefExpr(NNS, E->getQualifierRange(), Name, E->getLocation(), @@ -4828,8 +4828,8 @@ TreeTransform<Derived>::TransformCXXUnresolvedConstructExpr( template<typename Derived> Sema::OwningExprResult -TreeTransform<Derived>::TransformCXXUnresolvedMemberExpr( - CXXUnresolvedMemberExpr *E, +TreeTransform<Derived>::TransformCXXDependentScopeMemberExpr( + CXXDependentScopeMemberExpr *E, bool isAddressOfOperand) { // Transform the base of the expression. OwningExprResult Base = getDerived().TransformExpr(E->getBase()); @@ -4878,7 +4878,7 @@ TreeTransform<Derived>::TransformCXXUnresolvedMemberExpr( FirstQualifierInScope == E->getFirstQualifierFoundInScope()) return SemaRef.Owned(E->Retain()); - return getDerived().RebuildCXXUnresolvedMemberExpr(move(Base), + return getDerived().RebuildCXXDependentScopeMemberExpr(move(Base), E->isArrow(), E->getOperatorLoc(), Qualifier, @@ -4912,7 +4912,7 @@ TreeTransform<Derived>::TransformCXXUnresolvedMemberExpr( return SemaRef.ExprError(); } - return getDerived().RebuildCXXUnresolvedMemberExpr(move(Base), + return getDerived().RebuildCXXDependentScopeMemberExpr(move(Base), E->isArrow(), E->getOperatorLoc(), Qualifier, |