aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sema/TreeTransform.h')
-rw-r--r--lib/Sema/TreeTransform.h37
1 files changed, 10 insertions, 27 deletions
diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h
index 2f36807659..cca14caa44 100644
--- a/lib/Sema/TreeTransform.h
+++ b/lib/Sema/TreeTransform.h
@@ -5336,19 +5336,16 @@ TreeTransform<Derived>::TransformUnresolvedLookupExpr(
SS.setScopeRep(Qualifier);
SS.setRange(Old->getQualifierRange());
-
- // If this nested-name-specifier refers to a class type, that is the
- // naming class.
- if (const Type *NamedType = Qualifier->getAsType())
- if (const RecordType *NamedRecord = NamedType->getAs<RecordType>())
- R.setNamingClass(cast<CXXRecordDecl>(NamedRecord->getDecl()));
- } else if (Old->getNamingClass()) {
+ }
+
+ if (Old->getNamingClass()) {
CXXRecordDecl *NamingClass
= cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
Old->getNameLoc(),
Old->getNamingClass()));
if (!NamingClass)
return SemaRef.ExprError();
+
R.setNamingClass(NamingClass);
}
@@ -5735,7 +5732,6 @@ TreeTransform<Derived>::TransformUnresolvedMemberExpr(UnresolvedMemberExpr *Old)
BaseType = getDerived().TransformType(Old->getBaseType());
}
- CXXRecordDecl *NamingClass = 0;
NestedNameSpecifier *Qualifier = 0;
if (Old->getQualifier()) {
Qualifier
@@ -5743,12 +5739,6 @@ TreeTransform<Derived>::TransformUnresolvedMemberExpr(UnresolvedMemberExpr *Old)
Old->getQualifierRange());
if (Qualifier == 0)
return SemaRef.ExprError();
-
- // If this nested-name-specifier refers to a class type, that is the
- // naming class.
- if (const Type *NamedType = Qualifier->getAsType())
- if (const RecordType *NamedRecord = NamedType->getAs<RecordType>())
- NamingClass = cast<CXXRecordDecl>(NamedRecord->getDecl());
}
LookupResult R(SemaRef, Old->getMemberName(), Old->getMemberLoc(),
@@ -5783,24 +5773,17 @@ TreeTransform<Derived>::TransformUnresolvedMemberExpr(UnresolvedMemberExpr *Old)
R.resolveKind();
- // Determine the naming class, if we haven't already.
- if (!NamingClass) {
- QualType T = BaseType;
- if (const PointerType *PointerTy = T->getAs<PointerType>())
- T = PointerTy->getPointeeType();
- if (const RecordType *NamedRecord = T->getAs<RecordType>())
- NamingClass = cast<CXXRecordDecl>(NamedRecord->getDecl());
- }
-
- if (!NamingClass && Old->getNamingClass()) {
- NamingClass = cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
+ // Determine the naming class.
+ if (!Old->getNamingClass()) {
+ CXXRecordDecl *NamingClass
+ = cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
Old->getMemberLoc(),
Old->getNamingClass()));
if (!NamingClass)
return SemaRef.ExprError();
- }
- if (NamingClass)
+
R.setNamingClass(NamingClass);
+ }
TemplateArgumentListInfo TransArgs;
if (Old->hasExplicitTemplateArgs()) {