Lines Matching defs:Cast
71 const ImplicitCastExpr *Cast, const Stmt *Parent,
88 const Expr *SubExpr = Cast->getSubExpr();
104 Diag << FixItHint::CreateInsertion(Cast->getBeginLoc(), StartLocInsertion);
120 Cast->getCastKind(), SubExpr->getType(), Context);
132 Cast->getEndLoc(), 0, Context.getSourceManager(), Context.getLangOpts());
177 const ImplicitCastExpr *Cast,
180 Diag << FixItHint::CreateInsertion(Cast->getBeginLoc(),
185 const Expr *SubExpr = Cast->getSubExpr();
187 const bool NeedSpace = needsSpacePrefix(Cast->getBeginLoc(), Context);
190 Cast->getBeginLoc(), (Twine() + (NeedSpace ? " " : "") + "static_cast<" +
196 Cast->getEndLoc(), 0, Context.getSourceManager(),
225 bool isCastAllowedInCondition(const ImplicitCastExpr *Cast,
228 Q.push(Cast);
375 void ImplicitBoolConversionCheck::handleCastToBool(const ImplicitCastExpr *Cast,
379 (Cast->getCastKind() == CK_PointerToBoolean ||
380 Cast->getCastKind() == CK_MemberPointerToBoolean) &&
381 isCastAllowedInCondition(Cast, Context)) {
385 if (AllowIntegerConditions && Cast->getCastKind() == CK_IntegralToBoolean &&
386 isCastAllowedInCondition(Cast, Context)) {
390 auto Diag = diag(Cast->getBeginLoc(), "implicit conversion %0 -> 'bool'")
391 << Cast->getSubExpr()->getType();
394 getEquivalentBoolLiteralForExpr(Cast->getSubExpr(), Context);
396 Diag << tooling::fixit::createReplacement(*Cast, EquivalentLiteral);
398 fixGenericExprCastToBool(Diag, Cast, Parent, Context,
404 const ImplicitCastExpr *Cast, const ImplicitCastExpr *NextImplicitCast,
407 NextImplicitCast ? NextImplicitCast->getType() : Cast->getType();
408 auto Diag = diag(Cast->getBeginLoc(), "implicit conversion 'bool' -> %0")
412 dyn_cast<CXXBoolLiteralExpr>(Cast->getSubExpr()->IgnoreParens())) {
418 *Cast, EquivalentForBoolLiteral.upper());
420 Diag << tooling::fixit::createReplacement(*Cast,
424 fixGenericExprCastFromBool(Diag, Cast, Context, DestType.getAsString());