Lines Matching full:auto

26   const auto IgnoreDerivedToBase = [](const Expr *E, auto Matcher) {
29 if (const auto *Cast = dyn_cast<ImplicitCastExpr>(E)) {
38 const auto EvalCommaExpr = [](const Expr *E, auto Matcher) {
40 while (const auto *BOComma =
57 const auto ConditionalOperatorM = [Target](const Expr *E) {
58 if (const auto *OP = dyn_cast<ConditionalOperator>(E)) {
59 if (const auto *TE = OP->getTrueExpr()->IgnoreParens())
62 if (const auto *FE = OP->getFalseExpr()->IgnoreParens())
69 const auto ElvisOperator = [Target](const Expr *E) {
70 if (const auto *OP = dyn_cast<BinaryConditionalOperator>(E)) {
71 if (const auto *TE = OP->getTrueExpr()->IgnoreParens())
74 if (const auto *FE = OP->getFalseExpr()->IgnoreParens())
106 auto *Exp = dyn_cast<Expr>(&Node);
109 auto *Target = dyn_cast<Expr>(Inner);
138 const auto *VD = dyn_cast_or_null<ValueDecl>(CalleeDecl);
142 const auto *MPT = dyn_cast<MemberPointerType>(T);
143 const auto *FPT = MPT ? cast<FunctionProtoType>(MPT->getPointeeType())
163 const auto nonConstReferenceType = [] {
168 const auto nonConstPointerType = [] {
173 const auto isMoveOnly = [] {
194 for (const auto &Nodes : Matches) {
234 const auto Memoized = MemoizedResults.find(Exp);
243 for (const auto &Finder : Finders) {
254 const auto Refs = match(
264 for (const auto &RefNodes : Refs) {
265 const auto *E = RefNodes.getNodeAs<Expr>(NodeID<Expr>::value);
336 const auto AsAssignmentLhs =
340 const auto AsIncDecOperand =
346 const auto NonConstMethod = cxxMethodDecl(unless(isConst()));
348 const auto AsNonConstThis = expr(anyOf(
380 const auto AsAmpersandOperand =
385 const auto AsPointerFromArrayDecay = castExpr(
391 const auto AsOperatorArrowThis = cxxOperatorCallExpr(
402 const auto NonConstRefParam = forEachArgumentWithParamType(
406 const auto NotInstantiated = unless(hasDeclaration(isInstantiated()));
408 const auto AsNonConstRefArg =
430 const auto AsLambdaRefCaptureInit = lambdaExpr(hasCaptureInit(Exp));
437 const auto AsNonConstRefReturn =
441 const auto AsNonConstRefRangeInit = cxxForRangeStmt(hasRangeInit(declRefExpr(
444 const auto Matches = match(
460 const auto MemberExprs = match(
474 const auto SubscriptExprs = match(
488 const auto ExplicitCast =
495 if (const auto *CastStmt = selectFirst<Stmt>("stmt", ExplicitCast))
499 const auto Casts = match(
511 const auto Calls =
528 const auto DeclStmtToNonRefToArray = declStmt(hasSingleDecl(varDecl(hasType(
530 const auto RefToArrayRefToElements = match(
541 if (const auto *BadRangeInitFromArray =
552 const auto HasAnyNonConstIterator =
558 const auto DeclStmtToNonConstIteratorContainer = declStmt(
562 const auto RefToContainerBadIterators = match(
569 if (const auto *BadIteratorsContainer =
575 const auto LoopVars =
589 const auto Ref = match(
601 const auto Refs = match(
619 const auto NonConstRefParam = forEachArgumentWithParam(
622 const auto IsInstantiated = hasDeclaration(isInstantiated());
623 const auto FuncDecl = hasDeclaration(functionDecl().bind("func"));
624 const auto Matches = match(
635 for (const auto &Nodes : Matches) {
636 const auto *Exp = Nodes.getNodeAs<Expr>(NodeID<Expr>::value);
637 const auto *Func = Nodes.getNodeAs<FunctionDecl>("func");
641 const auto *Parm = Nodes.getNodeAs<ParmVarDecl>("parm");
648 if (const auto *T = ParmType->getAs<PackExpansionType>())
653 if (const auto *RefType = ParmType->getAs<RValueReferenceType>()) {
674 if (const auto *Ctor = dyn_cast<CXXConstructorDecl>(&Func)) {
692 const auto Memoized = Results.find(Parm);