44 const auto *EnableIf =
45 Result.Nodes.getNodeAs<TemplateTypeParmDecl>(
"enable_if");
46 const auto *EnableIfSpecializationLoc =
47 Result.Nodes.getNodeAs<TemplateSpecializationTypeLoc>(
48 "enable_if_specialization");
50 if (!EnableIf || !EnableIfSpecializationLoc)
53 const SourceManager &SM = *Result.SourceManager;
54 SourceLocation RAngleLoc =
55 SM.getExpansionLoc(EnableIfSpecializationLoc->getRAngleLoc());
57 auto Diag = diag(EnableIf->getBeginLoc(),
58 "incorrect std::enable_if usage detected; use "
59 "'typename std::enable_if<...>::type'");
62 if (!getLangOpts().CPlusPlus20) {
63 Diag << FixItHint::CreateInsertion(EnableIfSpecializationLoc->getBeginLoc(),
66 Diag << FixItHint::CreateInsertion(RAngleLoc.getLocWithOffset(1),
"::type");