[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 2 22:31:06 PST 2017


aaron.ballman added inline comments.


================
Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:23
+AST_MATCHER(QualType, isEnableIf) {
+  auto checkTemplate = [](const TemplateSpecializationType *Spec) {
+    if (!Spec || !Spec->getTemplateName().getAsTemplateDecl()) {
----------------
This should be `CheckTemplate` per our usual coding conventions.


================
Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:39
+  // Case: type parameter dependent (enable_if<is_integral<T>>).
+  if (auto Dependent = BaseType->getAs<DependentNameType>()) {
+    BaseType = Dependent->getQualifier()->getAsType();
----------------
Please use `auto *` (or `const auto ``).


================
Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:44
+    return true; // Case: enable_if_t< >.
+  } else if (auto Elaborated = BaseType->getAs<ElaboratedType>()) {
+    if (auto Qualifier = Elaborated->getQualifier()->getAsType()) {
----------------
Same here.


================
Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:119
+  if (const auto *Ctor = Result.Nodes.getNodeAs<FunctionDecl>("ctor")) {
+    auto Iter = Ctor->param_begin();
+    for (++Iter; Iter != Ctor->param_end(); ++Iter) {
----------------
I think this can be lowered into the for loop as `auto Iter = Ctor->param_begin() + 1`.


Repository:
  rL LLVM

https://reviews.llvm.org/D30547





More information about the cfe-commits mailing list