forked from OSchip/llvm-project
Refactor: Simplify boolean conditional return statements in lib/ARCMigrate
Patch by Richard Thomson! (+a couple of modifications to address comments) Differential revision: http://reviews.llvm.org/D10009 llvm-svn: 252261
This commit is contained in:
parent
339464228d
commit
ad98885be1
|
@ -214,25 +214,15 @@ namespace {
|
|||
// FIXME. This duplicates one in RewriteObjCFoundationAPI.cpp
|
||||
bool subscriptOperatorNeedsParens(const Expr *FullExpr) {
|
||||
const Expr* Expr = FullExpr->IgnoreImpCasts();
|
||||
if (isa<ArraySubscriptExpr>(Expr) ||
|
||||
isa<CallExpr>(Expr) ||
|
||||
isa<DeclRefExpr>(Expr) ||
|
||||
isa<CXXNamedCastExpr>(Expr) ||
|
||||
isa<CXXConstructExpr>(Expr) ||
|
||||
isa<CXXThisExpr>(Expr) ||
|
||||
isa<CXXTypeidExpr>(Expr) ||
|
||||
isa<CXXUnresolvedConstructExpr>(Expr) ||
|
||||
isa<ObjCMessageExpr>(Expr) ||
|
||||
isa<ObjCPropertyRefExpr>(Expr) ||
|
||||
isa<ObjCProtocolExpr>(Expr) ||
|
||||
isa<MemberExpr>(Expr) ||
|
||||
isa<ObjCIvarRefExpr>(Expr) ||
|
||||
isa<ParenExpr>(FullExpr) ||
|
||||
isa<ParenListExpr>(Expr) ||
|
||||
isa<SizeOfPackExpr>(Expr))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
return !(isa<ArraySubscriptExpr>(Expr) || isa<CallExpr>(Expr) ||
|
||||
isa<DeclRefExpr>(Expr) || isa<CXXNamedCastExpr>(Expr) ||
|
||||
isa<CXXConstructExpr>(Expr) || isa<CXXThisExpr>(Expr) ||
|
||||
isa<CXXTypeidExpr>(Expr) ||
|
||||
isa<CXXUnresolvedConstructExpr>(Expr) ||
|
||||
isa<ObjCMessageExpr>(Expr) || isa<ObjCPropertyRefExpr>(Expr) ||
|
||||
isa<ObjCProtocolExpr>(Expr) || isa<MemberExpr>(Expr) ||
|
||||
isa<ObjCIvarRefExpr>(Expr) || isa<ParenExpr>(FullExpr) ||
|
||||
isa<ParenListExpr>(Expr) || isa<SizeOfPackExpr>(Expr));
|
||||
}
|
||||
|
||||
/// \brief - Rewrite message expression for Objective-C setter and getters into
|
||||
|
@ -665,9 +655,7 @@ ClassImplementsAllMethodsAndProperties(ASTContext &Ctx,
|
|||
return false;
|
||||
}
|
||||
}
|
||||
if (HasAtleastOneRequiredProperty || HasAtleastOneRequiredMethod)
|
||||
return true;
|
||||
return false;
|
||||
return HasAtleastOneRequiredProperty || HasAtleastOneRequiredMethod;
|
||||
}
|
||||
|
||||
static bool rewriteToObjCInterfaceDecl(const ObjCInterfaceDecl *IDecl,
|
||||
|
|
|
@ -104,9 +104,7 @@ public:
|
|||
return false;
|
||||
if (!S->getThen() || !Visit(S->getThen()))
|
||||
return false;
|
||||
if (S->getElse() && !Visit(S->getElse()))
|
||||
return false;
|
||||
return true;
|
||||
return !S->getElse() || Visit(S->getElse());
|
||||
}
|
||||
bool VisitWhileStmt(WhileStmt *S) {
|
||||
if (S->getConditionVariable())
|
||||
|
|
|
@ -152,9 +152,7 @@ public:
|
|||
return ID->getImplementation() != nullptr;
|
||||
if (ObjCCategoryDecl *CD = dyn_cast<ObjCCategoryDecl>(ContD))
|
||||
return CD->getImplementation() != nullptr;
|
||||
if (isa<ObjCImplDecl>(ContD))
|
||||
return true;
|
||||
return false;
|
||||
return isa<ObjCImplDecl>(ContD);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -150,11 +150,8 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
if (!hasSideEffects(rec, Pass.Ctx)) {
|
||||
if (tryRemoving(RecContainer))
|
||||
return true;
|
||||
}
|
||||
Pass.TA.replace(RecContainer->getSourceRange(), RecRange);
|
||||
if (hasSideEffects(rec, Pass.Ctx) || !tryRemoving(RecContainer))
|
||||
Pass.TA.replace(RecContainer->getSourceRange(), RecRange);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -174,11 +171,8 @@ private:
|
|||
/// return var;
|
||||
///
|
||||
bool isCommonUnusedAutorelease(ObjCMessageExpr *E) {
|
||||
if (isPlusOneAssignBeforeOrAfterAutorelease(E))
|
||||
return true;
|
||||
if (isReturnedAfterAutorelease(E))
|
||||
return true;
|
||||
return false;
|
||||
return isPlusOneAssignBeforeOrAfterAutorelease(E) ||
|
||||
isReturnedAfterAutorelease(E);
|
||||
}
|
||||
|
||||
bool isReturnedAfterAutorelease(ObjCMessageExpr *E) {
|
||||
|
@ -225,11 +219,7 @@ private:
|
|||
// Check for "RefD = [+1 retained object];".
|
||||
|
||||
if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(S)) {
|
||||
if (RefD != getReferencedDecl(Bop->getLHS()))
|
||||
return false;
|
||||
if (isPlusOneAssign(Bop))
|
||||
return true;
|
||||
return false;
|
||||
return (RefD == getReferencedDecl(Bop->getLHS())) && isPlusOneAssign(Bop);
|
||||
}
|
||||
|
||||
if (DeclStmt *DS = dyn_cast<DeclStmt>(S)) {
|
||||
|
|
|
@ -113,10 +113,7 @@ bool trans::isPlusOne(const Expr *E) {
|
|||
while (implCE && implCE->getCastKind() == CK_BitCast)
|
||||
implCE = dyn_cast<ImplicitCastExpr>(implCE->getSubExpr());
|
||||
|
||||
if (implCE && implCE->getCastKind() == CK_ARCConsumeObject)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return implCE && implCE->getCastKind() == CK_ARCConsumeObject;
|
||||
}
|
||||
|
||||
/// \brief 'Loc' is the end of a statement range. This returns the location
|
||||
|
|
Loading…
Reference in New Issue