davrec accepted this revision. davrec added a comment. Sorry for the delay. Richard should probably weigh in before absolutely committing to
1. BaseUsingDecl/UsingEnumDecl/UsingDecl (as implemented here) vs. single UsingDecl (Nathan's original approach) and 2. Renaming `getUsingDecl()` to `getIntroducer()` (if it is to return a `BaseUsingDecl`). (Main rationale for separating UsingEnumDecl vs. UsingDecl: parallels the naming distinction in P1099 <https://reviews.llvm.org/P1099> between a "using-declaration" and a "using-enum-declaration". Cons: churn, adds to quite a collection of Using*-named AST nodes already. Nonetheless I favor distinguishing them.) ================ Comment at: clang/include/clang/AST/DeclCXX.h:3390 ConstructorUsingShadowDecl(ASTContext &C, DeclContext *DC, SourceLocation Loc, - UsingDecl *Using, NamedDecl *Target, + BaseUsingDecl *Using, NamedDecl *Target, bool TargetInVirtualBase) ---------------- `BaseUsingDecl` here should remain `UsingDecl`. Additionally, I would add a `UsingDecl *getIntroducer() { return cast<UsingDecl>(UsingShadowDecl::getIntroducer()); }` method here. ================ Comment at: clang/lib/AST/DeclCXX.cpp:3026 CXXRecordDecl *ConstructorUsingShadowDecl::getNominatedBaseClass() const { - return getUsingDecl()->getQualifier()->getAsRecordDecl(); + return cast<UsingDecl>(getIntroducer())->getQualifier()->getAsRecordDecl(); } ---------------- With the additional `ConstructorUsingShadowDecl::getIntroducer()` method suggested elsewhere, the cast won't be necessary here. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101777/new/ https://reviews.llvm.org/D101777 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits