this is a pre-patch for adding using-enum support (https://reviews.llvm.org/D101370) On the ML https://lists.llvm.org/pipermail/cfe-dev/2021-April/068074.html, David Rector suggested breaking out the shadow decl handling of UsingDecl to a new intermediate base class. that's what this patch does, altering the decl hierarchy to:
def ShadowIntroducing : DeclNode<Named, "shadow introducer", 1>; def Using : DeclNode<ShadowIntroducing>; def UsingPack : DeclNode<Named>; def UsingShadow : DeclNode<Named>; def ConstructorUsingShadow : DeclNode<UsingShadow>;
I'll add UsingEnumDecl as a sibling of UsingDecl.
I'm not totally enamoured of the 'ShadowIntroducingDecl' name, but couldn't think of a better one right now.
Have I added this new class correctly? (for avoidance of doubt, I don't intend to commit an approved version of this until the using-enum patch is ready to go).