Home | History | Annotate | Download | only in Sema

Lines Matching full:shadow

6843 /// Determines whether to create a using shadow decl for a particular
6849 // function will silently decide not to build a shadow decl, which
6865 // The right solution is to not collapse the shadow-decl chain.
6936 // build a shadow decl.
6971 /// Builds a shadow declaration corresponding to a 'using' declaration.
6976 // If we resolved to another shadow declaration, just coalesce them.
6980 assert(!isa<UsingShadowDecl>(Target) && "nested shadow declaration");
6983 UsingShadowDecl *Shadow
6986 UD->addShadowDecl(Shadow);
6988 Shadow->setAccess(UD->getAccess());
6990 Shadow->setInvalidDecl();
6993 PushOnScopeChains(Shadow, S);
6995 CurContext->addDecl(Shadow);
6998 return Shadow;
7001 /// Hides a using shadow declaration. This is required by the current
7020 /// (1) optimistically create shadow decls when they're not hidden
7022 /// (2) don't create any shadow decls (or at least don't make them
7025 /// a shadow decl, which requires several O(n) operations because the
7028 void Sema::HideUsingShadowDecl(Scope *S, UsingShadowDecl *Shadow) {
7029 if (Shadow->getDeclName().getNameKind() ==
7031 cast<CXXRecordDecl>(Shadow->getDeclContext())->removeConversion(Shadow);
7034 Shadow->getDeclContext()->removeDecl(Shadow);
7038 S->RemoveDecl(Shadow);
7039 IdResolver.RemoveDecl(Shadow);
7043 Shadow->getUsingDecl()->removeShadowDecl(Shadow);
7045 // TODO: complain somehow if Shadow was used. It shouldn't