Lines Matching refs:Flags
140 RelSet Flags; member
142 template <typename T> void debug(T &Node, RelSet Flags) { in debug()
143 dlog("visit [{0}] {1}", Flags, nodeToString(DynTypedNode::create(Node))); in debug()
146 void report(const NamedDecl *D, RelSet Flags) { in report()
147 dlog("--> [{0}] {1}", Flags, nodeToString(DynTypedNode::create(*D))); in report()
148 auto It = Decls.try_emplace(D, std::make_pair(Flags, Decls.size())); in report()
151 It.first->second.first |= Flags; in report()
166 void add(const Decl *Dcl, RelSet Flags) { in add()
170 debug(*D, Flags); in add()
176 if (!Res.second && Res.first->second.contains(Flags)) in add()
178 Res.first->second |= Flags; in add()
184 add(TND->getUnderlyingType(), Flags | Rel::Underlying); in add()
185 Flags |= Rel::Alias; // continue with the alias. in add()
189 add(S->getUnderlyingDecl(), Flags); in add()
190 Flags |= Rel::Alias; // continue with the alias. in add()
192 add(UED->getEnumDecl(), Flags); in add()
193 Flags |= Rel::Alias; // continue with the alias. in add()
195 add(NAD->getUnderlyingDecl(), Flags | Rel::Underlying); in add()
196 Flags |= Rel::Alias; // continue with the alias in add()
201 add(Target, Flags); // no Underlying as this is a non-renaming alias in add()
204 Flags |= Rel::Alias; // continue with the alias in add()
208 Flags |= Rel::Alias; in add()
212 report(USD->getIntroducer(), Flags | Rel::Alias); in add()
236 add(Pat, Flags | Rel::TemplatePattern); in add()
238 Flags |= Rel::TemplateInstantiation; in add()
241 report(D, Flags); in add()
244 void add(const Stmt *S, RelSet Flags) { in add()
247 debug(*S, Flags); in add()
250 RelSet Flags; in add() member
251 Visitor(TargetFinder &Outer, RelSet Flags) : Outer(Outer), Flags(Flags) {} in add()
254 Outer.add(CE->getCalleeDecl(), Flags); in add()
257 Outer.add(E->getNamedConcept(), Flags); in add()
265 Outer.add(D, Flags); in add()
272 Outer.add(D, Flags); in add()
276 Outer.add(D, Flags); in add()
279 Outer.add(SE->getPack(), Flags); in add()
282 Outer.add(CCE->getConstructor(), Flags); in add()
288 Outer.add(D.getField(), Flags); in add()
295 Outer.add(LabelDecl, Flags); in add()
299 Outer.add(LabelDecl, Flags); in add()
305 Outer.add(D, Flags); in add()
312 Outer.add(D, Flags); in add()
317 Outer.add(OIRE->getDecl(), Flags); in add()
320 Outer.add(OME->getMethodDecl(), Flags); in add()
324 Outer.add(OPRE->getExplicitProperty(), Flags); in add()
327 Outer.add(OPRE->getImplicitPropertyGetter(), Flags); in add()
329 Outer.add(OPRE->getImplicitPropertySetter(), Flags); in add()
333 Outer.add(OPE->getProtocol(), Flags); in add()
336 Outer.add(OVE->getSourceExpr(), Flags); in add()
339 Outer.add(POE->getSyntacticForm(), Flags); in add()
342 Outer.add(CNE->getOperatorNew(), Flags); in add()
345 Outer.add(CDE->getOperatorDelete(), Flags); in add()
348 Visitor(*this, Flags).Visit(S); in add()
351 void add(QualType T, RelSet Flags) { in add()
354 debug(T, Flags); in add()
357 RelSet Flags; in add() member
358 Visitor(TargetFinder &Outer, RelSet Flags) : Outer(Outer), Flags(Flags) {} in add()
361 Outer.add(TT->getAsTagDecl(), Flags); in add()
365 Outer.add(ET->desugar(), Flags); in add()
369 Outer.add(ET->getFoundDecl(), Flags); in add()
373 Outer.add(ICNT->getDecl(), Flags); in add()
377 Outer.add(DTT->getUnderlyingType(), Flags | Rel::Underlying); in add()
382 Outer.add(DT->getDeducedType(), Flags); in add()
385 Outer.add(UUT->getDecl(), Flags); in add()
390 Outer.add(USD, Flags); in add()
399 Outer.add(TD->getTemplatedDecl(), Flags | Rel::TemplatePattern); in add()
405 Outer.add(ND, Flags); in add()
414 Outer.add(ND, Flags); in add()
421 Outer.add(TT->getDecl(), Flags); in add()
428 Outer.add(UTN, Flags); in add()
435 Outer.add(TST->getAliasedType(), Flags | Rel::Underlying); in add()
440 Flags | Rel::Alias | Rel::TemplatePattern); in add()
447 Outer.add(Parm, Flags); in add()
450 Outer.add(RD, Flags); // add(Decl) will despecialize if needed. in add()
454 Outer.add(TD->getTemplatedDecl(), Flags | Rel::TemplatePattern); in add()
458 Outer.add(TTPT->getDecl(), Flags); in add()
461 Outer.add(OIT->getDecl(), Flags); in add()
464 Visitor(*this, Flags).Visit(T.getTypePtr()); in add()
467 void add(const NestedNameSpecifier *NNS, RelSet Flags) { in add()
470 debug(*NNS, Flags); in add()
473 add(NNS->getAsNamespace(), Flags); in add()
476 add(NNS->getAsNamespaceAlias(), Flags); in add()
481 Flags); in add()
486 add(QualType(NNS->getAsType(), 0), Flags); in add()
492 add(NNS->getAsRecordDecl(), Flags); in add()
498 void add(const CXXCtorInitializer *CCI, RelSet Flags) { in add()
501 debug(*CCI, Flags); in add()
504 add(CCI->getAnyMember(), Flags); in add()
508 void add(const TemplateArgument &Arg, RelSet Flags) { in add()
517 report(TD, Flags); in add()
521 add(USD, Flags); in add()
532 DeclRelationSet Flags; in allTargetDecls() local
534 Finder.add(D, Flags); in allTargetDecls()
536 Finder.add(S, Flags); in allTargetDecls()
538 Finder.add(NNSL->getNestedNameSpecifier(), Flags); in allTargetDecls()
540 Finder.add(NNS, Flags); in allTargetDecls()
542 Finder.add(TL->getType(), Flags); in allTargetDecls()
544 Finder.add(*QT, Flags); in allTargetDecls()
546 Finder.add(CCI, Flags); in allTargetDecls()
548 Finder.add(TAL->getArgument(), Flags); in allTargetDecls()
550 Finder.add(CBS->getTypeSourceInfo()->getType(), Flags); in allTargetDecls()
552 Finder.add(PL->getProtocol(), Flags); in allTargetDecls()