diff options
author | Chris Lattner <sabre@nondot.org> | 2009-03-31 08:18:48 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-03-31 08:18:48 +0000 |
commit | a3d2524e701b40b2c0cb3688017f153fd1d36bfe (patch) | |
tree | cc9f0c9e28cb851dbac576335b5d15ebfec4f6ce | |
parent | d013aa1ee78d8ead93179c179b7c0746e8d97dbb (diff) |
reduce nesting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68091 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/SemaExpr.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index ca5feb7be0..7a25404faa 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -1783,16 +1783,16 @@ Sema::ActOnMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, = LookupQualifiedName(RDecl, DeclarationName(&Member), LookupMemberName, false); - NamedDecl *MemberDecl = 0; if (!Result) return ExprError(Diag(MemberLoc, diag::err_typecheck_no_member) << &Member << BaseExpr->getSourceRange()); - else if (Result.isAmbiguous()) { + if (Result.isAmbiguous()) { DiagnoseAmbiguousLookup(Result, DeclarationName(&Member), MemberLoc, BaseExpr->getSourceRange()); return ExprError(); - } else - MemberDecl = Result; + } + + NamedDecl *MemberDecl = Result; // If the decl being referenced had an error, return an error for this // sub-expr without emitting another error, in order to avoid cascading @@ -1826,21 +1826,24 @@ Sema::ActOnMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, return Owned(new (Context) MemberExpr(BaseExpr, OpKind == tok::arrow, FD, MemberLoc, MemberType)); - } else if (VarDecl *Var = dyn_cast<VarDecl>(MemberDecl)) + } + + if (VarDecl *Var = dyn_cast<VarDecl>(MemberDecl)) return Owned(new (Context) MemberExpr(BaseExpr, OpKind == tok::arrow, - Var, MemberLoc, - Var->getType().getNonReferenceType())); - else if (FunctionDecl *MemberFn = dyn_cast<FunctionDecl>(MemberDecl)) + Var, MemberLoc, + Var->getType().getNonReferenceType())); + if (FunctionDecl *MemberFn = dyn_cast<FunctionDecl>(MemberDecl)) return Owned(new (Context) MemberExpr(BaseExpr, OpKind == tok::arrow, - MemberFn, MemberLoc, MemberFn->getType())); - else if (OverloadedFunctionDecl *Ovl - = dyn_cast<OverloadedFunctionDecl>(MemberDecl)) + MemberFn, MemberLoc, + MemberFn->getType())); + if (OverloadedFunctionDecl *Ovl + = dyn_cast<OverloadedFunctionDecl>(MemberDecl)) return Owned(new (Context) MemberExpr(BaseExpr, OpKind == tok::arrow, Ovl, - MemberLoc, Context.OverloadTy)); - else if (EnumConstantDecl *Enum = dyn_cast<EnumConstantDecl>(MemberDecl)) + MemberLoc, Context.OverloadTy)); + if (EnumConstantDecl *Enum = dyn_cast<EnumConstantDecl>(MemberDecl)) return Owned(new (Context) MemberExpr(BaseExpr, OpKind == tok::arrow, Enum, MemberLoc, Enum->getType())); - else if (isa<TypeDecl>(MemberDecl)) + if (isa<TypeDecl>(MemberDecl)) return ExprError(Diag(MemberLoc,diag::err_typecheck_member_reference_type) << DeclarationName(&Member) << int(OpKind == tok::arrow)); @@ -1887,6 +1890,7 @@ Sema::ActOnMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, dyn_cast<ObjCCategoryImplDecl>(ImplDecl)) ClassOfMethodDecl = CatImplClass->getClassInterface(); } + if (IV->getAccessControl() == ObjCIvarDecl::Private) { if (ClassDeclared != IFTy->getDecl() || ClassOfMethodDecl != ClassDeclared) |