Home | History | Annotate | Download | only in Sema

Lines Matching refs:ND

110     void Add(const NamedDecl *ND, unsigned Index) {
113 DeclOrVector = ND;
129 DeclIndexPair(ND, Index));
300 /// \param ND the declaration that we are inspecting.
304 bool isInterestingDecl(const NamedDecl *ND,
362 bool IsOrdinaryName(const NamedDecl *ND) const;
363 bool IsOrdinaryNonTypeName(const NamedDecl *ND) const;
364 bool IsIntegralConstantValue(const NamedDecl *ND) const;
365 bool IsOrdinaryNonValueName(const NamedDecl *ND) const;
366 bool IsNestedNameSpecifier(const NamedDecl *ND) const;
367 bool IsEnum(const NamedDecl *ND) const;
368 bool IsClassOrStruct(const NamedDecl *ND) const;
369 bool IsUnion(const NamedDecl *ND) const;
370 bool IsNamespace(const NamedDecl *ND) const;
371 bool IsNamespaceOrAlias(const NamedDecl *ND) const;
372 bool IsType(const NamedDecl *ND) const;
373 bool IsMember(const NamedDecl *ND) const;
374 bool IsObjCIvar(const NamedDecl *ND) const;
375 bool IsObjCMessageReceiver(const NamedDecl *ND) const;
376 bool IsObjCMessageReceiverOrLambdaCapture(const NamedDecl *ND) const;
377 bool IsObjCCollection(const NamedDecl *ND) const;
378 bool IsImpossibleToSatisfy(const NamedDecl *ND) const;
656 if (const NamedDecl *ND = DeclOrIterator.dyn_cast<const NamedDecl *>())
657 return reference(ND, SingleDeclIndex);
680 if (const NamedDecl *ND = DeclOrVector.dyn_cast<const NamedDecl *>())
681 return iterator(ND, SingleDeclIndex);
741 static bool shouldIgnoreDueToReservedName(const NamedDecl *ND, Sema &SemaRef) {
742 ReservedIdentifierStatus Status = ND->isReserved(SemaRef.getLangOpts());
746 ND->getLocation().isInvalid())
754 SemaRef.SourceMgr.getSpellingLoc(ND->getLocation())))
760 bool ResultBuilder::isInterestingDecl(const NamedDecl *ND,
764 auto *Named = ND;
765 ND = ND->getUnderlyingDecl();
768 if (!ND->getDeclName())
773 if (ND->getFriendObjectKind() == Decl::FOK_Undeclared)
777 if (isa<ClassTemplateSpecializationDecl>(ND) ||
778 isa<ClassTemplatePartialSpecializationDecl>(ND))
782 if (isa<UsingDecl>(ND))
785 if (shouldIgnoreDueToReservedName(ND, SemaRef))
789 (isa<NamespaceDecl>(ND) && Filter != &ResultBuilder::IsNamespace &&
797 IsNestedNameSpecifier(ND) &&
799 (isa<CXXRecordDecl>(ND) &&
800 cast<CXXRecordDecl>(ND)->isInjectedClassName()))) {
910 QualType clang::getDeclUsageType(ASTContext &C, const NamedDecl *ND) {
911 ND = ND->getUnderlyingDecl();
913 if (const auto *Type = dyn_cast<TypeDecl>(ND))
915 if (const auto *Iface = dyn_cast<ObjCInterfaceDecl>(ND))
919 if (const FunctionDecl *Function = ND->getAsFunction())
921 else if (const auto *Method = dyn_cast<ObjCMethodDecl>(ND))
923 else if (const auto *Enumerator = dyn_cast<EnumConstantDecl>(ND))
925 else if (const auto *Property = dyn_cast<ObjCPropertyDecl>(ND))
927 else if (const auto *Value = dyn_cast<ValueDecl>(ND))
967 unsigned ResultBuilder::getBasePriority(const NamedDecl *ND) {
968 if (!ND)
972 const DeclContext *LexicalDC = ND->getLexicalDeclContext();
975 if (const auto *ImplicitParam = dyn_cast<ImplicitParamDecl>(ND))
983 const DeclContext *DC = ND->getDeclContext()->getRedeclContext();
986 if (isa<CXXDestructorDecl>(ND))
989 auto DeclNameKind = ND->getDeclName().getNameKind();
998 if (isa<EnumConstantDecl>(ND))
1004 if ((isa<TypeDecl>(ND) || isa<ObjCInterfaceDecl>(ND)) &&
1079 static bool isConstructor(const Decl *ND) {
1080 if (const auto *Tmpl = dyn_cast<FunctionTemplateDecl>(ND))
1081 ND = Tmpl->getTemplatedDecl();
1082 return isa<CXXConstructorDecl>(ND);
1124 const NamedDecl *ND = I->first;
1126 if (ND->getCanonicalDecl() == CanonDecl) {
1398 bool ResultBuilder::IsOrdinaryName(const NamedDecl *ND) const {
1399 ND = ND->getUnderlyingDecl();
1407 if (isa<ObjCIvarDecl>(ND))
1411 return ND->getIdentifierNamespace() & IDNS;
1416 bool ResultBuilder::IsOrdinaryNonTypeName(const NamedDecl *ND) const {
1417 ND = ND->getUnderlyingDecl();
1418 if (isa<TypeDecl>(ND))
1423 if (const auto *ID = dyn_cast<ObjCInterfaceDecl>(ND)) {
1432 if (isa<ObjCIvarDecl>(ND))
1436 return ND->getIdentifierNamespace() & IDNS;
1439 bool ResultBuilder::IsIntegralConstantValue(const NamedDecl *ND) const {
1440 if (!IsOrdinaryNonTypeName(ND))
1443 if (const auto *VD = dyn_cast<ValueDecl>(ND->getUnderlyingDecl()))
1452 bool ResultBuilder::IsOrdinaryNonValueName(const NamedDecl *ND) const {
1453 ND = ND->getUnderlyingDecl();
1459 return (ND->getIdentifierNamespace() & IDNS) && !isa<ValueDecl>(ND) &&
1460 !isa<FunctionTemplateDecl>(ND) && !isa<ObjCPropertyDecl>(ND);
1465 bool ResultBuilder::IsNestedNameSpecifier(const NamedDecl *ND) const {
1467 if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
1468 ND = ClassTemplate->getTemplatedDecl();
1470 return SemaRef.isAcceptableNestedNameSpecifier(ND);
1474 bool ResultBuilder::IsEnum(const NamedDecl *ND) const {
1475 return isa<EnumDecl>(ND);
1479 bool ResultBuilder::IsClassOrStruct(const NamedDecl *ND) const {
1481 if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
1482 ND = ClassTemplate->getTemplatedDecl();
1485 if (const auto *RD = dyn_cast<RecordDecl>(ND))
1493 bool ResultBuilder::IsUnion(const NamedDecl *ND) const {
1495 if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
1496 ND = ClassTemplate->getTemplatedDecl();
1498 if (const auto *RD = dyn_cast<RecordDecl>(ND))
1505 bool ResultBuilder::IsNamespace(const NamedDecl *ND) const {
1506 return isa<NamespaceDecl>(ND);
1511 bool ResultBuilder::IsNamespaceOrAlias(const NamedDecl *ND) const {
1512 return isa<NamespaceDecl>(ND->getUnderlyingDecl());
1516 bool ResultBuilder::IsType(const NamedDecl *ND) const {
1517 ND = ND->getUnderlyingDecl();
1518 return isa<TypeDecl>(ND) || isa<ObjCInterfaceDecl>(ND);
1524 bool ResultBuilder::IsMember(const NamedDecl *ND) const {
1525 ND = ND->getUnderlyingDecl();
1526 return isa<ValueDecl>(ND) || isa<FunctionTemplateDecl>(ND) ||
1527 isa<ObjCPropertyDecl>(ND);
1563 bool ResultBuilder::IsObjCMessageReceiver(const NamedDecl *ND) const {
1564 QualType T = getDeclUsageType(SemaRef.Context, ND);
1573 const NamedDecl *ND) const {
1574 if (IsObjCMessageReceiver(ND))
1577 const auto *Var = dyn_cast<VarDecl>(ND);
1584 bool ResultBuilder::IsObjCCollection(const NamedDecl *ND) const {
1585 if ((SemaRef.getLangOpts().CPlusPlus && !IsOrdinaryName(ND)) ||
1586 (!SemaRef.getLangOpts().CPlusPlus && !IsOrdinaryNonTypeName(ND)))
1589 QualType T = getDeclUsageType(SemaRef.Context, ND);
1599 bool ResultBuilder::IsImpossibleToSatisfy(const NamedDecl *ND) const {
1605 bool ResultBuilder::IsObjCIvar(const NamedDecl *ND) const {
1606 return isa<ObjCIvarDecl>(ND);
1643 void FoundDecl(NamedDecl *ND, NamedDecl *Hiding, DeclContext *Ctx,
1645 ResultBuilder::Result Result(ND, Results.getBasePriority(ND), nullptr,
1646 false, IsAccessible(ND, Ctx), FixIts);
1655 bool IsAccessible(NamedDecl *ND, DeclContext *Ctx) {
1680 return Results.getSema().IsSimplyAccessible(ND, NamingClass, BaseType);
2667 const NamedDecl *ND, QualType BaseType,
2669 if (!ND)
2674 if (isConstructor(ND) || isa<CXXConversionDecl>(ND))
2679 if (const FunctionDecl *Function = ND->getAsFunction())
2681 else if (const auto *Method = dyn_cast<ObjCMethodDecl>(ND)) {
2686 } else if (const auto *Enumerator = dyn_cast<EnumConstantDecl>(ND)) {
2689 } else if (isa<UnresolvedUsingValueDecl>(ND)) {
2691 } else if (const auto *Ivar = dyn_cast<ObjCIvarDecl>(ND)) {
2696 } else if (const auto *Value = dyn_cast<ValueDecl>(ND)) {
2698 } else if (const auto *Property = dyn_cast<ObjCPropertyDecl>(ND)) {
3193 const NamedDecl *ND,
3195 DeclarationName Name = ND->getDeclName();
3244 Result.getAllocator().CopyString(ND->getNameAsString()));
3263 Result.getAllocator().CopyString(ND->getNameAsString()));
3416 static const NamedDecl *extractFunctorCallOperator(const NamedDecl *ND) {
3417 const auto *VD = dyn_cast<VarDecl>(ND);
3430 const NamedDecl *ND = Declaration;
3431 Result.addParentContext(ND->getDeclContext());
3442 Result.getAllocator().CopyString(ND->getNameAsString()));
3447 for (const auto *I : ND->specific_attrs<AnnotateAttr>())
3454 AddTypedNameChunk(Ctx, Policy, ND, Result);
3461 if (const auto *Function = dyn_cast<FunctionDecl>(ND)) {
3467 dyn_cast_or_null<FunctionDecl>(extractFunctorCallOperator(ND))) {
3472 AddResultTypeChunk(Ctx, Policy, ND, CCContext.getBaseType(), Result);
3475 dyn_cast<FunctionTemplateDecl>(ND)) {
3529 if (const auto *Template = dyn_cast<TemplateDecl>(ND)) {
3540 if (const auto *Method = dyn_cast<ObjCMethodDecl>(ND)) {
3636 Result.getAllocator().CopyString(ND->getNameAsString()));
3641 const NamedDecl *ND) {
3642 if (!ND)
3644 if (auto *RC = Ctx.getRawCommentForAnyRedecl(ND))
3648 const auto *M = dyn_cast<ObjCMethodDecl>(ND);
3659 const NamedDecl *ND) {
3660 const auto *M = dyn_cast_or_null<ObjCMethodDecl>(ND);
6285 auto GenerateCCS = [&](const NamedDecl *ND, const char *Name) {
6290 if (const auto *Function = dyn_cast<FunctionDecl>(ND))
6292 else if (const auto *FunTemplDecl = dyn_cast<FunctionTemplateDecl>(ND))
6299 const NamedDecl *ND) {
6306 if (ND) {
6308 Builder.TakeString(), ND,
6310 if (isa<FieldDecl>(ND))
7414 NamedDecl *ND = LookupSingleName(S, Super, SuperLoc, LookupOrdinaryName);
7415 if ((CDecl = dyn_cast_or_null<ObjCInterfaceDecl>(ND))) {
7417 } else if (TypeDecl *TD = dyn_cast_or_null<TypeDecl>(ND)) {
7421 } else if (ND && isa<UnresolvedUsingTypenameDecl>(ND)) {