namespace llvm { template class impl; // basecase template class impl {}; // recursion template class impl : impl { using child = impl; using child::child; // no-crash impl(T); }; template class container : impl<0, TS...> {}; } // namespace llvm namespace clang { class fun { llvm::container k; fun() {} }; class DeclContextLookupResult { static int *const SingleElementDummyList; }; } // namespace clang using namespace clang; int *const DeclContextLookupResult::SingleElementDummyList = nullptr;