Home | History | Annotate | Download | only in Sema

Lines Matching refs:Shadow

6624 /// Determines whether to create a using shadow decl for a particular
6630 // function will silently decide not to build a shadow decl, which
6646 // The right solution is to not collapse the shadow-decl chain.
6717 // build a shadow decl.
6752 /// Builds a shadow declaration corresponding to a 'using' declaration.
6757 // If we resolved to another shadow declaration, just coalesce them.
6761 assert(!isa<UsingShadowDecl>(Target) && "nested shadow declaration");
6764 Shadow
6767 UD->addShadowDecl(Shadow);
6769 Shadow->setAccess(UD->getAccess());
6771 Shadow->setInvalidDecl();
6774 PushOnScopeChains(Shadow, S);
6776 CurContext->addDecl(Shadow);
6779 return Shadow;
6782 /// Hides a using shadow declaration. This is required by the current
6801 /// (1) optimistically create shadow decls when they're not hidden
6803 /// (2) don't create any shadow decls (or at least don't make them
6806 /// a shadow decl, which requires several O(n) operations because the
6809 void Sema::HideUsingShadowDecl(Scope *S, UsingShadowDecl *Shadow) {
6810 if (Shadow->getDeclName().getNameKind() ==
6812 cast<CXXRecordDecl>(Shadow->getDeclContext())->removeConversion(Shadow);
6815 Shadow->getDeclContext()->removeDecl(Shadow);
6819 S->RemoveDecl(Shadow);
6820 IdResolver.RemoveDecl(Shadow);
6824 Shadow->getUsingDecl()->removeShadowDecl(Shadow);
6826 // TODO: complain somehow if Shadow was used. It shouldn't