Lines Matching +full:x +full:- +full:tal

12   switch (D->getKind()) {  in addPreviousDeclaration()
26 switch (A->getKind()) { in Visit()
27 #define ATTR(X) \ in Visit() argument
28 case attr::X: \ in Visit()
29 AttrName = #X"Attr"; \ in Visit()
36 JOS.attributeObject("range", [A, this] { writeSourceRange(A->getRange()); }); in Visit()
37 attributeOnlyIfTrue("inherited", A->isInherited()); in Visit()
38 attributeOnlyIfTrue("implicit", A->isImplicit()); in Visit()
44 //JOS.attribute("spelling", A->getSpelling()); in Visit()
54 JOS.attribute("kind", S->getStmtClassName()); in Visit()
56 [S, this] { writeSourceRange(S->getSourceRange()); }); in Visit()
59 JOS.attribute("type", createQualType(E->getType())); in Visit()
61 switch (E->getValueKind()) { in Visit()
79 JOS.attribute("kind", (llvm::Twine(T->getTypeClassName()) + "Type").str()); in Visit()
81 attributeOnlyIfTrue("containsErrors", T->containsErrors()); in Visit()
82 attributeOnlyIfTrue("isDependent", T->isDependentType()); in Visit()
84 T->isInstantiationDependentType()); in Visit()
85 attributeOnlyIfTrue("isVariablyModified", T->isVariablyModifiedType()); in Visit()
87 T->containsUnexpandedParameterPack()); in Visit()
88 attributeOnlyIfTrue("isImported", T->isFromAST()); in Visit()
105 : TL.getTypePtr()->getTypeClassName()) + in Visit()
120 JOS.attribute("kind", (llvm::Twine(D->getDeclKindName()) + "Decl").str()); in Visit()
122 [D, this] { writeSourceLocation(D->getLocation()); }); in Visit()
124 [D, this] { writeSourceRange(D->getSourceRange()); }); in Visit()
125 attributeOnlyIfTrue("isImplicit", D->isImplicit()); in Visit()
126 attributeOnlyIfTrue("isInvalid", D->isInvalidDecl()); in Visit()
128 if (D->isUsed()) in Visit()
130 else if (D->isThisDeclarationReferenced()) in Visit()
134 attributeOnlyIfTrue("isHidden", !ND->isUnconditionallyVisible()); in Visit()
136 if (D->getLexicalDeclContext() != D->getDeclContext()) { in Visit()
140 const auto *ParentDeclContextDecl = dyn_cast<Decl>(D->getDeclContext()); in Visit()
155 JOS.attribute("kind", C->getCommentKindName()); in Visit()
157 [C, this] { writeSourceLocation(C->getLocation()); }); in Visit()
159 [C, this] { writeSourceRange(C->getSourceRange()); }); in Visit()
178 if (Init->isAnyMemberInitializer()) in Visit()
179 JOS.attribute("anyInit", createBareDeclRef(Init->getAnyMember())); in Visit()
180 else if (Init->isBaseInitializer()) in Visit()
182 createQualType(QualType(Init->getBaseClass(), 0))); in Visit()
183 else if (Init->isDelegatingInitializer()) in Visit()
185 createQualType(Init->getTypeSourceInfo()->getType())); in Visit()
211 switch (R->getKind()) { in Visit()
227 attributeOnlyIfTrue("noexcept", ER->hasNoexceptRequirement()); in Visit()
229 attributeOnlyIfTrue("isDependent", R->isDependent()); in Visit()
230 if (!R->isDependent()) in Visit()
231 JOS.attribute("satisfied", R->isSatisfied()); in Visit()
233 R->containsUnexpandedParameterPack()); in Visit()
245 JOS.attribute("id", createPointerRepresentation(CR->getNamedConcept())); in Visit()
246 if (const auto *Args = CR->getTemplateArgsAsWritten()) { in Visit()
248 for (const TemplateArgumentLoc &TAL : Args->arguments()) in Visit() local
250 [&TAL, this] { Visit(TAL.getArgument(), TAL.getSourceRange()); }); in Visit()
254 [CR, this] { writeSourceLocation(CR->getLocation()); }); in Visit()
256 [CR, this] { writeSourceRange(CR->getSourceRange()); }); in Visit()
307 // Orthogonal to the file, line, and column de-duplication is whether the in writeBareSourceLocation()
343 // Because JSON stores integer values as signed 64-bit integers, trying to in createPointerRepresentation()
346 return "0x" + llvm::utohexstr(reinterpret_cast<uint64_t>(Ptr), true); in createPointerRepresentation()
361 if (const auto *TT = QT->getAs<TypedefType>()) in createQualType()
362 Ret["typeAliasDeclId"] = createPointerRepresentation(TT->getDecl()); in createQualType()
372 JOS.attribute("kind", (llvm::Twine(D->getDeclKindName()) + "Decl").str()); in writeBareDeclRef()
374 JOS.attribute("name", ND->getDeclName().getAsString()); in writeBareDeclRef()
376 JOS.attribute("type", createQualType(VD->getType())); in writeBareDeclRef()
384 Ret["kind"] = (llvm::Twine(D->getDeclKindName()) + "Decl").str(); in createBareDeclRef()
386 Ret["name"] = ND->getDeclName().getAsString(); in createBareDeclRef()
388 Ret["type"] = createQualType(VD->getType()); in createBareDeclRef()
394 if (C->path_empty()) in createCastPath()
397 for (auto I = C->path_begin(), E = C->path_end(); I != E; ++I) { in createCastPath()
400 cast<CXXRecordDecl>(Base->getType()->castAs<RecordType>()->getDecl()); in createCastPath()
402 llvm::json::Object Val{{"name", RD->getName()}}; in createCastPath()
403 if (Base->isVirtual()) in createCastPath()
410 #define FIELD2(Name, Flag) if (RD->Flag()) Ret[Name] = true
440 if (!RD->needsOverloadResolutionForCopyConstructor()) in createCopyConstructorDefinitionData()
457 if (!RD->needsOverloadResolutionForMoveConstructor()) in createMoveConstructorDefinitionData()
505 if (!RD->needsOverloadResolutionForDestructor()) in createDestructorDefinitionData()
571 JOS.attribute("aliasee", AA->getAliasee()); in VisitAliasAttr()
575 JOS.attribute("cleanup_function", createBareDeclRef(CA->getFunctionDecl())); in VisitCleanupAttr()
579 if (!DA->getMessage().empty()) in VisitDeprecatedAttr()
580 JOS.attribute("message", DA->getMessage()); in VisitDeprecatedAttr()
581 if (!DA->getReplacement().empty()) in VisitDeprecatedAttr()
582 JOS.attribute("replacement", DA->getReplacement()); in VisitDeprecatedAttr()
586 if (!UA->getMessage().empty()) in VisitUnavailableAttr()
587 JOS.attribute("message", UA->getMessage()); in VisitUnavailableAttr()
591 JOS.attribute("section_name", SA->getName()); in VisitSectionAttr()
596 VA->getVisibility())); in VisitVisibilityAttr()
600 JOS.attribute("tls_model", TA->getModel()); in VisitTLSModelAttr()
604 JOS.attribute("decl", createBareDeclRef(TT->getDecl())); in VisitTypedefType()
605 if (!TT->typeMatchesDecl()) in VisitTypedefType()
606 JOS.attribute("type", createQualType(TT->desugar())); in VisitTypedefType()
610 JOS.attribute("decl", createBareDeclRef(TT->getFoundDecl())); in VisitUsingType()
611 if (!TT->typeMatchesDecl()) in VisitUsingType()
612 JOS.attribute("type", createQualType(TT->desugar())); in VisitUsingType()
616 FunctionType::ExtInfo E = T->getExtInfo(); in VisitFunctionType()
625 FunctionProtoType::ExtProtoInfo E = T->getExtProtoInfo(); in VisitFunctionProtoType()
627 attributeOnlyIfTrue("const", T->isConst()); in VisitFunctionProtoType()
628 attributeOnlyIfTrue("volatile", T->isVolatile()); in VisitFunctionProtoType()
629 attributeOnlyIfTrue("restrict", T->isRestrict()); in VisitFunctionProtoType()
677 attributeOnlyIfTrue("spelledAsLValue", RT->isSpelledAsLValue()); in VisitRValueReferenceType()
681 switch (AT->getSizeModifier()) { in VisitArrayType()
692 std::string Str = AT->getIndexTypeQualifiers().getAsString(); in VisitArrayType()
700 JOS.attribute("size", CAT->getSExtSize()); in VisitConstantArrayType()
707 "attrLoc", [VT, this] { writeSourceLocation(VT->getAttributeLoc()); }); in VisitDependentSizedExtVectorType()
711 JOS.attribute("numElements", VT->getNumElements()); in VisitVectorType()
712 switch (VT->getVectorKind()) { in VisitVectorType()
731 JOS.attribute("vectorKind", "fixed-length sve data vector"); in VisitVectorType()
734 JOS.attribute("vectorKind", "fixed-length sve predicate vector"); in VisitVectorType()
737 JOS.attribute("vectorKind", "fixed-length rvv data vector"); in VisitVectorType()
740 JOS.attribute("vectorKind", "fixed-length rvv mask vector"); in VisitVectorType()
746 JOS.attribute("decl", createBareDeclRef(UUT->getDecl())); in VisitUnresolvedUsingType()
750 switch (UTT->getUTTKind()) { in VisitUnaryTransformType()
760 JOS.attribute("decl", createBareDeclRef(TT->getDecl())); in VisitTagType()
765 JOS.attribute("depth", TTPT->getDepth()); in VisitTemplateTypeParmType()
766 JOS.attribute("index", TTPT->getIndex()); in VisitTemplateTypeParmType()
767 attributeOnlyIfTrue("isPack", TTPT->isParameterPack()); in VisitTemplateTypeParmType()
768 JOS.attribute("decl", createBareDeclRef(TTPT->getDecl())); in VisitTemplateTypeParmType()
773 JOS.attribute("index", STTPT->getIndex()); in VisitSubstTemplateTypeParmType()
774 if (auto PackIndex = STTPT->getPackIndex()) in VisitSubstTemplateTypeParmType()
780 JOS.attribute("index", T->getIndex()); in VisitSubstTemplateTypeParmPackType()
784 JOS.attribute("undeduced", !AT->isDeduced()); in VisitAutoType()
785 switch (AT->getKeyword()) { in VisitAutoType()
800 attributeOnlyIfTrue("isAlias", TST->isTypeAlias()); in VisitTemplateSpecializationType()
804 TST->getTemplateName().print(OS, PrintPolicy); in VisitTemplateSpecializationType()
810 JOS.attribute("decl", createBareDeclRef(ICNT->getDecl())); in VisitInjectedClassNameType()
814 JOS.attribute("decl", createBareDeclRef(OIT->getDecl())); in VisitObjCInterfaceType()
818 if (std::optional<unsigned> N = PET->getNumExpansions()) in VisitPackExpansionType()
823 if (const NestedNameSpecifier *NNS = ET->getQualifier()) { in VisitElaboratedType()
826 NNS->print(OS, PrintPolicy, /*ResolveTemplateArgs*/ true); in VisitElaboratedType()
829 if (const TagDecl *TD = ET->getOwnedTagDecl()) in VisitElaboratedType()
834 JOS.attribute("macroName", MQT->getMacroIdentifier()->getName()); in VisitMacroQualifiedType()
838 attributeOnlyIfTrue("isData", MPT->isMemberDataPointer()); in VisitMemberPointerType()
839 attributeOnlyIfTrue("isFunction", MPT->isMemberFunctionPointer()); in VisitMemberPointerType()
843 if (ND && ND->getDeclName()) { in VisitNamedDecl()
844 JOS.attribute("name", ND->getNameAsString()); in VisitNamedDecl()
847 if (isa<RequiresExprBodyDecl>(ND->getDeclContext())) in VisitNamedDecl()
853 if (ND->isTemplated()) in VisitNamedDecl()
856 // Mangled names are not meaningful for locals, and may not be well-defined in VisitNamedDecl()
859 if (VD && VD->hasLocalStorage()) in VisitNamedDecl()
874 JOS.attribute("type", createQualType(TD->getUnderlyingType())); in VisitTypedefDecl()
879 JOS.attribute("type", createQualType(TAD->getUnderlyingType())); in VisitTypeAliasDecl()
884 attributeOnlyIfTrue("isInline", ND->isInline()); in VisitNamespaceDecl()
885 attributeOnlyIfTrue("isNested", ND->isNested()); in VisitNamespaceDecl()
886 if (!ND->isFirstDecl()) in VisitNamespaceDecl()
887 JOS.attribute("originalNamespace", createBareDeclRef(ND->getFirstDecl())); in VisitNamespaceDecl()
892 createBareDeclRef(UDD->getNominatedNamespace())); in VisitUsingDirectiveDecl()
898 createBareDeclRef(NAD->getAliasedNamespace())); in VisitNamespaceAliasDecl()
903 if (const NestedNameSpecifier *NNS = UD->getQualifier()) { in VisitUsingDecl()
905 NNS->print(SOS, UD->getASTContext().getPrintingPolicy()); in VisitUsingDecl()
907 Name += UD->getNameAsString(); in VisitUsingDecl()
912 JOS.attribute("target", createBareDeclRef(UED->getEnumDecl())); in VisitUsingEnumDecl()
916 JOS.attribute("target", createBareDeclRef(USD->getTargetDecl())); in VisitUsingShadowDecl()
921 JOS.attribute("type", createQualType(VD->getType())); in VisitVarDecl()
924 P->isExplicitObjectParameter()); in VisitVarDecl()
926 StorageClass SC = VD->getStorageClass(); in VisitVarDecl()
929 switch (VD->getTLSKind()) { in VisitVarDecl()
934 attributeOnlyIfTrue("nrvo", VD->isNRVOVariable()); in VisitVarDecl()
935 attributeOnlyIfTrue("inline", VD->isInline()); in VisitVarDecl()
936 attributeOnlyIfTrue("constexpr", VD->isConstexpr()); in VisitVarDecl()
937 attributeOnlyIfTrue("modulePrivate", VD->isModulePrivate()); in VisitVarDecl()
938 if (VD->hasInit()) { in VisitVarDecl()
939 switch (VD->getInitStyle()) { in VisitVarDecl()
944 JOS.attribute("init", "paren-list"); in VisitVarDecl()
948 attributeOnlyIfTrue("isParameterPack", VD->isParameterPack()); in VisitVarDecl()
953 JOS.attribute("type", createQualType(FD->getType())); in VisitFieldDecl()
954 attributeOnlyIfTrue("mutable", FD->isMutable()); in VisitFieldDecl()
955 attributeOnlyIfTrue("modulePrivate", FD->isModulePrivate()); in VisitFieldDecl()
956 attributeOnlyIfTrue("isBitfield", FD->isBitField()); in VisitFieldDecl()
957 attributeOnlyIfTrue("hasInClassInitializer", FD->hasInClassInitializer()); in VisitFieldDecl()
962 JOS.attribute("type", createQualType(FD->getType())); in VisitFunctionDecl()
963 StorageClass SC = FD->getStorageClass(); in VisitFunctionDecl()
966 attributeOnlyIfTrue("inline", FD->isInlineSpecified()); in VisitFunctionDecl()
967 attributeOnlyIfTrue("virtual", FD->isVirtualAsWritten()); in VisitFunctionDecl()
968 attributeOnlyIfTrue("pure", FD->isPureVirtual()); in VisitFunctionDecl()
969 attributeOnlyIfTrue("explicitlyDeleted", FD->isDeletedAsWritten()); in VisitFunctionDecl()
970 attributeOnlyIfTrue("constexpr", FD->isConstexpr()); in VisitFunctionDecl()
971 attributeOnlyIfTrue("variadic", FD->isVariadic()); in VisitFunctionDecl()
972 attributeOnlyIfTrue("immediate", FD->isImmediateFunction()); in VisitFunctionDecl()
974 if (FD->isDefaulted()) in VisitFunctionDecl()
976 FD->isDeleted() ? "deleted" : "default"); in VisitFunctionDecl()
978 if (StringLiteral *Msg = FD->getDeletedMessage()) in VisitFunctionDecl()
979 JOS.attribute("deletedMessage", Msg->getString()); in VisitFunctionDecl()
984 if (ED->isFixed()) in VisitEnumDecl()
985 JOS.attribute("fixedUnderlyingType", createQualType(ED->getIntegerType())); in VisitEnumDecl()
986 if (ED->isScoped()) in VisitEnumDecl()
988 ED->isScopedUsingClassTag() ? "class" : "struct"); in VisitEnumDecl()
992 JOS.attribute("type", createQualType(ECD->getType())); in VisitEnumConstantDecl()
997 JOS.attribute("tagUsed", RD->getKindName()); in VisitRecordDecl()
998 attributeOnlyIfTrue("completeDefinition", RD->isCompleteDefinition()); in VisitRecordDecl()
1004 if (!RD->isCompleteDefinition()) in VisitCXXRecordDecl()
1008 if (RD->getNumBases()) { in VisitCXXRecordDecl()
1010 for (const auto &Spec : RD->bases()) in VisitCXXRecordDecl()
1018 JOS.attribute("bufferKind", D->isCBuffer() ? "cbuffer" : "tbuffer"); in VisitHLSLBufferDecl()
1023 JOS.attribute("tagUsed", D->wasDeclaredWithTypename() ? "typename" : "class"); in VisitTemplateTypeParmDecl()
1024 JOS.attribute("depth", D->getDepth()); in VisitTemplateTypeParmDecl()
1025 JOS.attribute("index", D->getIndex()); in VisitTemplateTypeParmDecl()
1026 attributeOnlyIfTrue("isParameterPack", D->isParameterPack()); in VisitTemplateTypeParmDecl()
1028 if (D->hasDefaultArgument()) in VisitTemplateTypeParmDecl()
1030 Visit(D->getDefaultArgument().getArgument(), SourceRange(), in VisitTemplateTypeParmDecl()
1031 D->getDefaultArgStorage().getInheritedFrom(), in VisitTemplateTypeParmDecl()
1032 D->defaultArgumentWasInherited() ? "inherited from" : "previous"); in VisitTemplateTypeParmDecl()
1039 JOS.attribute("type", createQualType(D->getType())); in VisitNonTypeTemplateParmDecl()
1040 JOS.attribute("depth", D->getDepth()); in VisitNonTypeTemplateParmDecl()
1041 JOS.attribute("index", D->getIndex()); in VisitNonTypeTemplateParmDecl()
1042 attributeOnlyIfTrue("isParameterPack", D->isParameterPack()); in VisitNonTypeTemplateParmDecl()
1044 if (D->hasDefaultArgument()) in VisitNonTypeTemplateParmDecl()
1046 Visit(D->getDefaultArgument().getArgument(), SourceRange(), in VisitNonTypeTemplateParmDecl()
1047 D->getDefaultArgStorage().getInheritedFrom(), in VisitNonTypeTemplateParmDecl()
1048 D->defaultArgumentWasInherited() ? "inherited from" : "previous"); in VisitNonTypeTemplateParmDecl()
1055 JOS.attribute("depth", D->getDepth()); in VisitTemplateTemplateParmDecl()
1056 JOS.attribute("index", D->getIndex()); in VisitTemplateTemplateParmDecl()
1057 attributeOnlyIfTrue("isParameterPack", D->isParameterPack()); in VisitTemplateTemplateParmDecl()
1059 if (D->hasDefaultArgument()) in VisitTemplateTemplateParmDecl()
1061 const auto *InheritedFrom = D->getDefaultArgStorage().getInheritedFrom(); in VisitTemplateTemplateParmDecl()
1062 Visit(D->getDefaultArgument().getArgument(), in VisitTemplateTemplateParmDecl()
1063 InheritedFrom ? InheritedFrom->getSourceRange() : SourceLocation{}, in VisitTemplateTemplateParmDecl()
1065 D->defaultArgumentWasInherited() ? "inherited from" : "previous"); in VisitTemplateTemplateParmDecl()
1071 switch (LSD->getLanguage()) { in VisitLinkageSpecDecl()
1080 attributeOnlyIfTrue("hasBraces", LSD->hasBraces()); in VisitLinkageSpecDecl()
1084 JOS.attribute("access", createAccessSpecifier(ASD->getAccess())); in VisitAccessSpecDecl()
1088 if (const TypeSourceInfo *T = FD->getFriendType()) in VisitFriendDecl()
1089 JOS.attribute("type", createQualType(T->getType())); in VisitFriendDecl()
1094 JOS.attribute("type", createQualType(D->getType())); in VisitObjCIvarDecl()
1095 attributeOnlyIfTrue("synthesized", D->getSynthesize()); in VisitObjCIvarDecl()
1096 switch (D->getAccessControl()) { in VisitObjCIvarDecl()
1107 JOS.attribute("returnType", createQualType(D->getReturnType())); in VisitObjCMethodDecl()
1108 JOS.attribute("instance", D->isInstanceMethod()); in VisitObjCMethodDecl()
1109 attributeOnlyIfTrue("variadic", D->isVariadic()); in VisitObjCMethodDecl()
1114 JOS.attribute("type", createQualType(D->getUnderlyingType())); in VisitObjCTypeParamDecl()
1115 attributeOnlyIfTrue("bounded", D->hasExplicitBound()); in VisitObjCTypeParamDecl()
1116 switch (D->getVariance()) { in VisitObjCTypeParamDecl()
1130 JOS.attribute("interface", createBareDeclRef(D->getClassInterface())); in VisitObjCCategoryDecl()
1131 JOS.attribute("implementation", createBareDeclRef(D->getImplementation())); in VisitObjCCategoryDecl()
1134 for (const auto* P : D->protocols()) in VisitObjCCategoryDecl()
1142 JOS.attribute("interface", createBareDeclRef(D->getClassInterface())); in VisitObjCCategoryImplDecl()
1143 JOS.attribute("categoryDecl", createBareDeclRef(D->getCategoryDecl())); in VisitObjCCategoryImplDecl()
1150 for (const auto *P : D->protocols()) in VisitObjCProtocolDecl()
1158 JOS.attribute("super", createBareDeclRef(D->getSuperClass())); in VisitObjCInterfaceDecl()
1159 JOS.attribute("implementation", createBareDeclRef(D->getImplementation())); in VisitObjCInterfaceDecl()
1162 for (const auto* P : D->protocols()) in VisitObjCInterfaceDecl()
1171 JOS.attribute("super", createBareDeclRef(D->getSuperClass())); in VisitObjCImplementationDecl()
1172 JOS.attribute("interface", createBareDeclRef(D->getClassInterface())); in VisitObjCImplementationDecl()
1178 JOS.attribute("interface", createBareDeclRef(D->getClassInterface())); in VisitObjCCompatibleAliasDecl()
1183 JOS.attribute("type", createQualType(D->getType())); in VisitObjCPropertyDecl()
1185 switch (D->getPropertyImplementation()) { in VisitObjCPropertyDecl()
1191 ObjCPropertyAttribute::Kind Attrs = D->getPropertyAttributes(); in VisitObjCPropertyDecl()
1194 JOS.attribute("getter", createBareDeclRef(D->getGetterMethodDecl())); in VisitObjCPropertyDecl()
1196 JOS.attribute("setter", createBareDeclRef(D->getSetterMethodDecl())); in VisitObjCPropertyDecl()
1221 VisitNamedDecl(D->getPropertyDecl()); in VisitObjCPropertyImplDecl()
1222 JOS.attribute("implKind", D->getPropertyImplementation() == in VisitObjCPropertyImplDecl()
1226 JOS.attribute("propertyDecl", createBareDeclRef(D->getPropertyDecl())); in VisitObjCPropertyImplDecl()
1227 JOS.attribute("ivarDecl", createBareDeclRef(D->getPropertyIvarDecl())); in VisitObjCPropertyImplDecl()
1231 attributeOnlyIfTrue("variadic", D->isVariadic()); in VisitBlockDecl()
1232 attributeOnlyIfTrue("capturesThis", D->capturesCXXThis()); in VisitBlockDecl()
1236 JOS.attribute("name", AE->getOpAsString()); in VisitAtomicExpr()
1240 JOS.attribute("encodedType", createQualType(OEE->getEncodedType())); in VisitObjCEncodeExpr()
1247 OME->getSelector().print(OS); in VisitObjCMessageExpr()
1250 switch (OME->getReceiverKind()) { in VisitObjCMessageExpr()
1256 JOS.attribute("classType", createQualType(OME->getClassReceiver())); in VisitObjCMessageExpr()
1260 JOS.attribute("superType", createQualType(OME->getSuperType())); in VisitObjCMessageExpr()
1264 JOS.attribute("superType", createQualType(OME->getSuperType())); in VisitObjCMessageExpr()
1268 QualType CallReturnTy = OME->getCallReturnType(Ctx); in VisitObjCMessageExpr()
1269 if (OME->getType() != CallReturnTy) in VisitObjCMessageExpr()
1274 if (const ObjCMethodDecl *MD = OBE->getBoxingMethod()) { in VisitObjCBoxedExpr()
1278 MD->getSelector().print(OS); in VisitObjCBoxedExpr()
1287 OSE->getSelector().print(OS); in VisitObjCSelectorExpr()
1292 JOS.attribute("protocol", createBareDeclRef(OPE->getProtocol())); in VisitObjCProtocolExpr()
1296 if (OPRE->isImplicitProperty()) { in VisitObjCPropertyRefExpr()
1298 if (const ObjCMethodDecl *MD = OPRE->getImplicitPropertyGetter()) in VisitObjCPropertyRefExpr()
1300 if (const ObjCMethodDecl *MD = OPRE->getImplicitPropertySetter()) in VisitObjCPropertyRefExpr()
1304 JOS.attribute("property", createBareDeclRef(OPRE->getExplicitProperty())); in VisitObjCPropertyRefExpr()
1307 attributeOnlyIfTrue("isSuperReceiver", OPRE->isSuperReceiver()); in VisitObjCPropertyRefExpr()
1308 attributeOnlyIfTrue("isMessagingGetter", OPRE->isMessagingGetter()); in VisitObjCPropertyRefExpr()
1309 attributeOnlyIfTrue("isMessagingSetter", OPRE->isMessagingSetter()); in VisitObjCPropertyRefExpr()
1315 OSRE->isArraySubscriptRefExpr() ? "array" : "dictionary"); in VisitObjCSubscriptRefExpr()
1317 if (const ObjCMethodDecl *MD = OSRE->getAtIndexMethodDecl()) in VisitObjCSubscriptRefExpr()
1319 if (const ObjCMethodDecl *MD = OSRE->setAtIndexMethodDecl()) in VisitObjCSubscriptRefExpr()
1324 JOS.attribute("decl", createBareDeclRef(OIRE->getDecl())); in VisitObjCIvarRefExpr()
1325 attributeOnlyIfTrue("isFreeIvar", OIRE->isFreeIvar()); in VisitObjCIvarRefExpr()
1326 JOS.attribute("isArrow", OIRE->isArrow()); in VisitObjCIvarRefExpr()
1330 JOS.attribute("value", OBLE->getValue() ? "__objc_yes" : "__objc_no"); in VisitObjCBoolLiteralExpr()
1334 JOS.attribute("referencedDecl", createBareDeclRef(DRE->getDecl())); in VisitDeclRefExpr()
1335 if (DRE->getDecl() != DRE->getFoundDecl()) in VisitDeclRefExpr()
1337 createBareDeclRef(DRE->getFoundDecl())); in VisitDeclRefExpr()
1338 switch (DRE->isNonOdrUse()) { in VisitDeclRefExpr()
1344 attributeOnlyIfTrue("isImmediateEscalating", DRE->isImmediateEscalating()); in VisitDeclRefExpr()
1350 createQualType(E->getTypeSourceInfo()->getType())); in VisitSYCLUniqueStableNameExpr()
1354 JOS.attribute("name", PredefinedExpr::getIdentKindName(PE->getIdentKind())); in VisitPredefinedExpr()
1358 JOS.attribute("isPostfix", UO->isPostfix()); in VisitUnaryOperator()
1359 JOS.attribute("opcode", UnaryOperator::getOpcodeStr(UO->getOpcode())); in VisitUnaryOperator()
1360 if (!UO->canOverflow()) in VisitUnaryOperator()
1365 JOS.attribute("opcode", BinaryOperator::getOpcodeStr(BO->getOpcode())); in VisitBinaryOperator()
1371 JOS.attribute("computeLHSType", createQualType(CAO->getComputationLHSType())); in VisitCompoundAssignOperator()
1373 createQualType(CAO->getComputationResultType())); in VisitCompoundAssignOperator()
1379 ValueDecl *VD = ME->getMemberDecl(); in VisitMemberExpr()
1380 JOS.attribute("name", VD && VD->getDeclName() ? VD->getNameAsString() : ""); in VisitMemberExpr()
1381 JOS.attribute("isArrow", ME->isArrow()); in VisitMemberExpr()
1383 switch (ME->isNonOdrUse()) { in VisitMemberExpr()
1392 attributeOnlyIfTrue("isGlobal", NE->isGlobalNew()); in VisitCXXNewExpr()
1393 attributeOnlyIfTrue("isArray", NE->isArray()); in VisitCXXNewExpr()
1394 attributeOnlyIfTrue("isPlacement", NE->getNumPlacementArgs() != 0); in VisitCXXNewExpr()
1395 switch (NE->getInitializationStyle()) { in VisitCXXNewExpr()
1405 if (const FunctionDecl *FD = NE->getOperatorNew()) in VisitCXXNewExpr()
1407 if (const FunctionDecl *FD = NE->getOperatorDelete()) in VisitCXXNewExpr()
1411 attributeOnlyIfTrue("isGlobal", DE->isGlobalDelete()); in VisitCXXDeleteExpr()
1412 attributeOnlyIfTrue("isArray", DE->isArrayForm()); in VisitCXXDeleteExpr()
1413 attributeOnlyIfTrue("isArrayAsWritten", DE->isArrayFormAsWritten()); in VisitCXXDeleteExpr()
1414 if (const FunctionDecl *FD = DE->getOperatorDelete()) in VisitCXXDeleteExpr()
1419 attributeOnlyIfTrue("implicit", TE->isImplicit()); in VisitCXXThisExpr()
1423 JOS.attribute("castKind", CE->getCastKindName()); in VisitCastExpr()
1429 if (const NamedDecl *ND = CE->getConversionFunction()) in VisitCastExpr()
1435 attributeOnlyIfTrue("isPartOfExplicitCast", ICE->isPartOfExplicitCast()); in VisitImplicitCastExpr()
1439 attributeOnlyIfTrue("adl", CE->usesADL()); in VisitCallExpr()
1444 JOS.attribute("name", getTraitSpelling(TTE->getKind())); in VisitUnaryExprOrTypeTraitExpr()
1445 if (TTE->isArgumentType()) in VisitUnaryExprOrTypeTraitExpr()
1446 JOS.attribute("argType", createQualType(TTE->getArgumentType())); in VisitUnaryExprOrTypeTraitExpr()
1450 VisitNamedDecl(SOPE->getPack()); in VisitSizeOfPackExpr()
1455 JOS.attribute("usesADL", ULE->requiresADL()); in VisitUnresolvedLookupExpr()
1456 JOS.attribute("name", ULE->getName().getAsString()); in VisitUnresolvedLookupExpr()
1459 for (const NamedDecl *D : ULE->decls()) in VisitUnresolvedLookupExpr()
1465 JOS.attribute("name", ALE->getLabel()->getName()); in VisitAddrLabelExpr()
1466 JOS.attribute("labelDeclId", createPointerRepresentation(ALE->getLabel())); in VisitAddrLabelExpr()
1470 if (CTE->isTypeOperand()) { in VisitCXXTypeidExpr()
1471 QualType Adjusted = CTE->getTypeOperand(Ctx); in VisitCXXTypeidExpr()
1472 QualType Unadjusted = CTE->getTypeOperandSourceInfo()->getType(); in VisitCXXTypeidExpr()
1480 if (CE->getResultAPValueKind() != APValue::None) in VisitConstantExpr()
1481 Visit(CE->getAPValueResult(), CE->getType()); in VisitConstantExpr()
1485 if (const FieldDecl *FD = ILE->getInitializedFieldInUnion()) in VisitInitListExpr()
1491 attributeOnlyIfTrue("resultDependent", GSE->isResultDependent()); in VisitGenericSelectionExpr()
1496 if (UCE->getType() != UCE->getTypeAsWritten()) in VisitCXXUnresolvedConstructExpr()
1497 JOS.attribute("typeAsWritten", createQualType(UCE->getTypeAsWritten())); in VisitCXXUnresolvedConstructExpr()
1498 attributeOnlyIfTrue("list", UCE->isListInitialization()); in VisitCXXUnresolvedConstructExpr()
1502 CXXConstructorDecl *Ctor = CE->getConstructor(); in VisitCXXConstructExpr()
1503 JOS.attribute("ctorType", createQualType(Ctor->getType())); in VisitCXXConstructExpr()
1504 attributeOnlyIfTrue("elidable", CE->isElidable()); in VisitCXXConstructExpr()
1505 attributeOnlyIfTrue("list", CE->isListInitialization()); in VisitCXXConstructExpr()
1506 attributeOnlyIfTrue("initializer_list", CE->isStdInitListInitialization()); in VisitCXXConstructExpr()
1507 attributeOnlyIfTrue("zeroing", CE->requiresZeroInitialization()); in VisitCXXConstructExpr()
1508 attributeOnlyIfTrue("hadMultipleCandidates", CE->hadMultipleCandidates()); in VisitCXXConstructExpr()
1509 attributeOnlyIfTrue("isImmediateEscalating", CE->isImmediateEscalating()); in VisitCXXConstructExpr()
1511 switch (CE->getConstructionKind()) { in VisitCXXConstructExpr()
1519 JOS.attribute("constructionKind", "non-virtual base"); in VisitCXXConstructExpr()
1529 EWC->cleanupsHaveSideEffects()); in VisitExprWithCleanups()
1530 if (EWC->getNumObjects()) { in VisitExprWithCleanups()
1532 for (const ExprWithCleanups::CleanupObject &CO : EWC->getObjects()) in VisitExprWithCleanups()
1538 Obj["kind"] = CLE->getStmtClassName(); in VisitExprWithCleanups()
1549 const CXXTemporary *Temp = BTE->getTemporary(); in VisitCXXBindTemporaryExpr()
1551 if (const CXXDestructorDecl *Dtor = Temp->getDestructor()) in VisitCXXBindTemporaryExpr()
1557 if (const ValueDecl *VD = MTE->getExtendingDecl()) in VisitMaterializeTemporaryExpr()
1560 switch (MTE->getStorageDuration()) { in VisitMaterializeTemporaryExpr()
1578 attributeOnlyIfTrue("boundToLValueRef", MTE->isBoundToLvalueReference()); in VisitMaterializeTemporaryExpr()
1582 attributeOnlyIfTrue("hasRewrittenInit", Node->hasRewrittenInit()); in VisitCXXDefaultArgExpr()
1586 attributeOnlyIfTrue("hasRewrittenInit", Node->hasRewrittenInit()); in VisitCXXDefaultInitExpr()
1591 JOS.attribute("isArrow", DSME->isArrow()); in VisitCXXDependentScopeMemberExpr()
1592 JOS.attribute("member", DSME->getMember().getAsString()); in VisitCXXDependentScopeMemberExpr()
1593 attributeOnlyIfTrue("hasTemplateKeyword", DSME->hasTemplateKeyword()); in VisitCXXDependentScopeMemberExpr()
1595 DSME->hasExplicitTemplateArgs()); in VisitCXXDependentScopeMemberExpr()
1597 if (DSME->getNumTemplateArgs()) { in VisitCXXDependentScopeMemberExpr()
1599 for (const TemplateArgumentLoc &TAL : DSME->template_arguments()) in VisitCXXDependentScopeMemberExpr() local
1601 [&TAL, this] { Visit(TAL.getArgument(), TAL.getSourceRange()); }); in VisitCXXDependentScopeMemberExpr()
1607 if (!RE->isValueDependent()) in VisitRequiresExpr()
1608 JOS.attribute("satisfied", RE->isSatisfied()); in VisitRequiresExpr()
1613 IL->getValue().toString(Buffer, in VisitIntegerLiteral()
1614 /*Radix=*/10, IL->getType()->isSignedIntegerType()); in VisitIntegerLiteral()
1622 JOS.attribute("value", CL->getValue()); in VisitCharacterLiteral()
1625 JOS.attribute("value", FPL->getValueAsString(/*Radix=*/10)); in VisitFixedPointLiteral()
1629 FL->getValue().toString(Buffer); in VisitFloatingLiteral()
1635 SL->outputString(SS); in VisitStringLiteral()
1639 JOS.attribute("value", BLE->getValue()); in VisitCXXBoolLiteralExpr()
1643 attributeOnlyIfTrue("hasInit", IS->hasInitStorage()); in VisitIfStmt()
1644 attributeOnlyIfTrue("hasVar", IS->hasVarStorage()); in VisitIfStmt()
1645 attributeOnlyIfTrue("hasElse", IS->hasElseStorage()); in VisitIfStmt()
1646 attributeOnlyIfTrue("isConstexpr", IS->isConstexpr()); in VisitIfStmt()
1647 attributeOnlyIfTrue("isConsteval", IS->isConsteval()); in VisitIfStmt()
1648 attributeOnlyIfTrue("constevalIsNegated", IS->isNegatedConsteval()); in VisitIfStmt()
1652 attributeOnlyIfTrue("hasInit", SS->hasInitStorage()); in VisitSwitchStmt()
1653 attributeOnlyIfTrue("hasVar", SS->hasVarStorage()); in VisitSwitchStmt()
1656 attributeOnlyIfTrue("isGNURange", CS->caseStmtIsGNURange()); in VisitCaseStmt()
1660 JOS.attribute("name", LS->getName()); in VisitLabelStmt()
1661 JOS.attribute("declId", createPointerRepresentation(LS->getDecl())); in VisitLabelStmt()
1662 attributeOnlyIfTrue("sideEntry", LS->isSideEntry()); in VisitLabelStmt()
1666 createPointerRepresentation(GS->getLabel())); in VisitGotoStmt()
1670 attributeOnlyIfTrue("hasVar", WS->hasVarStorage()); in VisitWhileStmt()
1677 attributeOnlyIfTrue("isCatchAll", OACS->getCatchParamDecl() == nullptr); in VisitObjCAtCatchStmt()
1715 return Traits->getCommandInfo(CommandID)->Name; in getCommentCommandName()
1718 return Info->Name; in getCommentCommandName()
1724 JOS.attribute("text", C->getText()); in visitTextComment()
1729 JOS.attribute("name", getCommentCommandName(C->getCommandID())); in visitInlineCommandComment()
1731 switch (C->getRenderKind()) { in visitInlineCommandComment()
1750 for (unsigned I = 0, E = C->getNumArgs(); I < E; ++I) in visitInlineCommandComment()
1751 Args.push_back(C->getArgText(I)); in visitInlineCommandComment()
1759 JOS.attribute("name", C->getTagName()); in visitHTMLStartTagComment()
1760 attributeOnlyIfTrue("selfClosing", C->isSelfClosing()); in visitHTMLStartTagComment()
1761 attributeOnlyIfTrue("malformed", C->isMalformed()); in visitHTMLStartTagComment()
1764 for (unsigned I = 0, E = C->getNumAttrs(); I < E; ++I) in visitHTMLStartTagComment()
1766 {{"name", C->getAttr(I).Name}, {"value", C->getAttr(I).Value}}); in visitHTMLStartTagComment()
1774 JOS.attribute("name", C->getTagName()); in visitHTMLEndTagComment()
1779 JOS.attribute("name", getCommentCommandName(C->getCommandID())); in visitBlockCommandComment()
1782 for (unsigned I = 0, E = C->getNumArgs(); I < E; ++I) in visitBlockCommandComment()
1783 Args.push_back(C->getArgText(I)); in visitBlockCommandComment()
1791 switch (C->getDirection()) { in visitParamCommandComment()
1802 attributeOnlyIfTrue("explicit", C->isDirectionExplicit()); in visitParamCommandComment()
1804 if (C->hasParamName()) in visitParamCommandComment()
1805 JOS.attribute("param", C->isParamIndexValid() ? C->getParamName(FC) in visitParamCommandComment()
1806 : C->getParamNameAsWritten()); in visitParamCommandComment()
1808 if (C->isParamIndexValid() && !C->isVarArgParam()) in visitParamCommandComment()
1809 JOS.attribute("paramIdx", C->getParamIndex()); in visitParamCommandComment()
1814 if (C->hasParamName()) in visitTParamCommandComment()
1815 JOS.attribute("param", C->isPositionValid() ? C->getParamName(FC) in visitTParamCommandComment()
1816 : C->getParamNameAsWritten()); in visitTParamCommandComment()
1817 if (C->isPositionValid()) { in visitTParamCommandComment()
1819 for (unsigned I = 0, E = C->getDepth(); I < E; ++I) in visitTParamCommandComment()
1820 Positions.push_back(C->getIndex(I)); in visitTParamCommandComment()
1829 JOS.attribute("name", getCommentCommandName(C->getCommandID())); in visitVerbatimBlockComment()
1830 JOS.attribute("closeName", C->getCloseName()); in visitVerbatimBlockComment()
1836 JOS.attribute("text", C->getText()); in visitVerbatimBlockLineComment()
1841 JOS.attribute("text", C->getText()); in visitVerbatimLineComment()
1855 if (S->hasStoredFPFeatures()) in VisitCompoundStmt()
1856 JOS.attribute("fpoptions", createFPOptions(S->getStoredFPFeatures())); in VisitCompoundStmt()