diff --git a/website/docs/all-categories.md b/website/docs/all-categories.md index 4663110a0d2..7026943eab1 100644 --- a/website/docs/all-categories.md +++ b/website/docs/all-categories.md @@ -146,6 +146,7 @@ Issue types in this category: - [PULSE_DICT_MISSING_KEY](/docs/next/all-issue-types#pulse_dict_missing_key) - [PULSE_DYNAMIC_TYPE_MISMATCH](/docs/next/all-issue-types#pulse_dynamic_type_mismatch) - [PULSE_UNINITIALIZED_CONST](/docs/next/all-issue-types#pulse_uninitialized_const) +- [PULSE_UNINITIALIZED_METHOD](/docs/next/all-issue-types#pulse_uninitialized_method) ## Sensitive data flow diff --git a/website/docs/all-issue-types.md b/website/docs/all-issue-types.md index cfaaf6415f8..4c085d6a8cb 100644 --- a/website/docs/all-issue-types.md +++ b/website/docs/all-issue-types.md @@ -2047,6 +2047,36 @@ function call_get_field_ok(): string { } ``` +## PULSE_UNINITIALIZED_METHOD + +*Category: [Runtime exception](/docs/next/all-categories#runtime-exception). Reported as "Uninitialized Method" by [pulse](/docs/next/checker-pulse).* + +This issue is similar to [`PULSE_UNINITIALIZED_CONST`](#pulse_uninitialized_const), but it is to detect the uninitialized method call in Hack. + +For example, in the following code, the static method `foo` is declared only in the interface and the abstract class. Thus, calling the static method can introduce an unexpected exception or a fatal error, while the type checker does miss the issue. + +```hack +interface MyInterface { + public static function foo(): string; +} + +abstract class MyAbstractClass { + public abstract static function foo(): string; +} + +function interface_method_static_method_bad(): string { + // Uncaught exception 'TypehintViolationException' + $c = MyInterface::class; + return $c::foo(); +} + +function abstract_class_static_method_bad(): string { + // Fatal error: Cannot call abstract method + $c = MyAbstractClass::class; + return $c::foo(); +} +``` + ## PULSE_UNINITIALIZED_VALUE *Category: [Memory error](/docs/next/all-categories#memory-error). Reported as "Uninitialized Value" by [pulse](/docs/next/checker-pulse).* diff --git a/website/docs/checker-pulse.md b/website/docs/checker-pulse.md index 22e7ebbd9fe..e3b70d900ca 100644 --- a/website/docs/checker-pulse.md +++ b/website/docs/checker-pulse.md @@ -192,6 +192,7 @@ The following issue types are reported by this checker: - [PULSE_UNAWAITED_AWAITABLE](/docs/next/all-issue-types#pulse_unawaited_awaitable) - [PULSE_UNFINISHED_BUILDER](/docs/next/all-issue-types#pulse_unfinished_builder) - [PULSE_UNINITIALIZED_CONST](/docs/next/all-issue-types#pulse_uninitialized_const) +- [PULSE_UNINITIALIZED_METHOD](/docs/next/all-issue-types#pulse_uninitialized_method) - [PULSE_UNINITIALIZED_VALUE](/docs/next/all-issue-types#pulse_uninitialized_value) - [PULSE_UNNECESSARY_COPY](/docs/next/all-issue-types#pulse_unnecessary_copy) - [PULSE_UNNECESSARY_COPY_ASSIGNMENT](/docs/next/all-issue-types#pulse_unnecessary_copy_assignment) diff --git a/website/static/man/next/infer-analyze.1.html b/website/static/man/next/infer-analyze.1.html index 4fecb50981a..f71ae89c034 100644 --- a/website/static/man/next/infer-analyze.1.html +++ b/website/static/man/next/infer-analyze.1.html @@ -990,7 +990,13 @@

CLANG OPTIONS [{"lock":["pthread_mutex_lock"],"unlock":["pthread_mutex_unlock"]}]
---pulse-unsafe-malloc

+--pulse-model-unreachable +string

+ +

Methods to be modeled as +unreachable.

+ + +

--pulse-unsafe-malloc

Activates: Assume that malloc(3) never returns null. (Conversely: diff --git a/website/static/man/next/infer-capture.1.html b/website/static/man/next/infer-capture.1.html index 79cfff37aa3..978295dd9f3 100644 --- a/website/static/man/next/infer-capture.1.html +++ b/website/static/man/next/infer-capture.1.html @@ -250,12 +250,28 @@

OPTIONS

Specify the root directory of the project

+

--python-files-index +path

+ +

A file containing a list of +newline-separated Python files to capture. Compatible with +infer capture -- python3 file1.py file2.py but not +with --pyc-file.

+

--results-dir,-o dir

Write results and internal files in the specified directory

+ +

--run-python-interpreter

+ +

Activates: Capture all .py +files, transform them into internal PyIR form and run the +PyIR interpreter on them. (Conversely: +--no-run-python-interpreter)

+

--skip-analysis-in-path +regex

diff --git a/website/static/man/next/infer-report.1.html b/website/static/man/next/infer-report.1.html index b55ad35e042..5795c760644 100644 --- a/website/static/man/next/infer-report.1.html +++ b/website/static/man/next/infer-report.1.html @@ -353,6 +353,7 @@

OPTIONS PULSE_UNAWAITED_AWAITABLE (enabled by default),
PULSE_UNFINISHED_BUILDER (disabled by default),
PULSE_UNINITIALIZED_CONST (disabled by default),
+PULSE_UNINITIALIZED_METHOD (disabled by default),
PULSE_UNINITIALIZED_VALUE (enabled by default),
PULSE_UNNECESSARY_COPY (enabled by default),
PULSE_UNNECESSARY_COPY_ASSIGNMENT (enabled by default),
@@ -470,7 +471,7 @@

OPTIONS line_offset |
qualifier_contains_potential_exception_note | taint_extra |
-transitive_callees_extra | suppressed }

+transitive_callees_extra | suppressed | autofix }

Fields to emit with --issues-tests

diff --git a/website/static/man/next/infer.1.html b/website/static/man/next/infer.1.html index 2178fd7e7cb..f965a50d568 100644 --- a/website/static/man/next/infer.1.html +++ b/website/static/man/next/infer.1.html @@ -1073,6 +1073,7 @@

OPTIONS PULSE_UNAWAITED_AWAITABLE (enabled by default),
PULSE_UNFINISHED_BUILDER (disabled by default),
PULSE_UNINITIALIZED_CONST (disabled by default),
+PULSE_UNINITIALIZED_METHOD (disabled by default),
PULSE_UNINITIALIZED_VALUE (enabled by default),
PULSE_UNNECESSARY_COPY (enabled by default),
PULSE_UNNECESSARY_COPY_ASSIGNMENT (enabled by default),
@@ -1506,7 +1507,7 @@

OPTIONS line_offset |
qualifier_contains_potential_exception_note | taint_extra |
-transitive_callees_extra | suppressed }

+transitive_callees_extra | suppressed | autofix }

Fields to emit with --issues-tests

@@ -2359,6 +2360,13 @@

OPTIONS as transfering memory ownership in Pulse. Accepted formats are method or namespace::method

+

See also +infer-analyze(1).
+--pulse-model-unreachable
+string

+ +

Methods to be modeled as +unreachable.

+

See also infer-analyze(1).
--pulse-models-for-erlang
+path

@@ -2754,6 +2762,15 @@

OPTIONS

See also infer-analyze(1).
+--python-files-index
path

+ +

A file containing a list of +newline-separated Python files to capture. Compatible with +infer capture -- python3 file1.py file2.py but not +with --pyc-file.

+ +

See also +infer-capture(1).
--qualified-cpp-name-block-list
+string

Skip analyzing the procedures @@ -2969,6 +2986,15 @@

OPTIONS infer-analyze(1), infer-capture(1), infer-explore(1),
infer-report
(1), and infer-run(1).
+--run-python-interpreter

+ +

Activates: Capture all .py +files, transform them into internal PyIR form and run the +PyIR interpreter on them. (Conversely: +--no-run-python-interpreter)

+ +

See also +infer-capture(1).
--sarif

Activates: Output issues in diff --git a/website/static/odoc/next/infer/ATDGenerated/Clang_ast_b/index.html b/website/static/odoc/next/infer/ATDGenerated/Clang_ast_b/index.html index eb3ecd36981..67c5c48c7e7 100644 --- a/website/static/odoc/next/infer/ATDGenerated/Clang_ast_b/index.html +++ b/website/static/odoc/next/infer/ATDGenerated/Clang_ast_b/index.html @@ -1,5 +1,5 @@ -Clang_ast_b (infer.ATDGenerated.Clang_ast_b)

Module ATDGenerated.Clang_ast_b

type access_specifier = Clang_ast_t.access_specifier
type atomic_expr_kind = Clang_ast_t.atomic_expr_kind
type atomic_expr_info = Clang_ast_t.atomic_expr_info = {
  1. aei_kind : atomic_expr_kind;
}
type attribute_kind = Clang_ast_t.attribute_kind =
  1. | AddressSpaceAttrKind
  2. | AnnotateTypeAttrKind
  3. | ArmInAttrKind
  4. | ArmInOutAttrKind
  5. | ArmMveStrictPolymorphismAttrKind
  6. | ArmOutAttrKind
  7. | ArmPreservesAttrKind
  8. | ArmStreamingAttrKind
  9. | ArmStreamingCompatibleAttrKind
  10. | BTFTypeTagAttrKind
  11. | CmseNSCallAttrKind
  12. | HLSLGroupSharedAddressSpaceAttrKind
  13. | HLSLParamModifierAttrKind
  14. | NoDerefAttrKind
  15. | ObjCGCAttrKind
  16. | ObjCInertUnsafeUnretainedAttrKind
  17. | ObjCKindOfAttrKind
  18. | OpenCLConstantAddressSpaceAttrKind
  19. | OpenCLGenericAddressSpaceAttrKind
  20. | OpenCLGlobalAddressSpaceAttrKind
  21. | OpenCLGlobalDeviceAddressSpaceAttrKind
  22. | OpenCLGlobalHostAddressSpaceAttrKind
  23. | OpenCLLocalAddressSpaceAttrKind
  24. | OpenCLPrivateAddressSpaceAttrKind
  25. | Ptr32AttrKind
  26. | Ptr64AttrKind
  27. | SPtrAttrKind
  28. | TypeNonNullAttrKind
  29. | TypeNullUnspecifiedAttrKind
  30. | TypeNullableAttrKind
  31. | TypeNullableResultAttrKind
  32. | UPtrAttrKind
  33. | WebAssemblyFuncrefAttrKind
  34. | CodeAlignAttrKind
  35. | FallThroughAttrKind
  36. | LikelyAttrKind
  37. | MustTailAttrKind
  38. | OpenCLUnrollHintAttrKind
  39. | UnlikelyAttrKind
  40. | AlwaysInlineAttrKind
  41. | NoInlineAttrKind
  42. | NoMergeAttrKind
  43. | SuppressAttrKind
  44. | AArch64SVEPcsAttrKind
  45. | AArch64VectorPcsAttrKind
  46. | AMDGPUKernelCallAttrKind
  47. | AcquireHandleAttrKind
  48. | AnyX86NoCfCheckAttrKind
  49. | CDeclAttrKind
  50. | FastCallAttrKind
  51. | IntelOclBiccAttrKind
  52. | LifetimeBoundAttrKind
  53. | M68kRTDAttrKind
  54. | MSABIAttrKind
  55. | NSReturnsRetainedAttrKind
  56. | ObjCOwnershipAttrKind
  57. | PascalAttrKind
  58. | PcsAttrKind
  59. | PreserveAllAttrKind
  60. | PreserveMostAttrKind
  61. | RegCallAttrKind
  62. | StdCallAttrKind
  63. | SwiftAsyncCallAttrKind
  64. | SwiftCallAttrKind
  65. | SysVABIAttrKind
  66. | ThisCallAttrKind
  67. | VectorCallAttrKind
  68. | SwiftAsyncContextAttrKind
  69. | SwiftContextAttrKind
  70. | SwiftErrorResultAttrKind
  71. | SwiftIndirectResultAttrKind
  72. | AnnotateAttrKind
  73. | CFConsumedAttrKind
  74. | CarriesDependencyAttrKind
  75. | NSConsumedAttrKind
  76. | NonNullAttrKind
  77. | OSConsumedAttrKind
  78. | PassObjectSizeAttrKind
  79. | ReleaseHandleAttrKind
  80. | UseHandleAttrKind
  81. | HLSLSV_DispatchThreadIDAttrKind
  82. | HLSLSV_GroupIndexAttrKind
  83. | AMDGPUFlatWorkGroupSizeAttrKind
  84. | AMDGPUNumSGPRAttrKind
  85. | AMDGPUNumVGPRAttrKind
  86. | AMDGPUWavesPerEUAttrKind
  87. | ARMInterruptAttrKind
  88. | AVRInterruptAttrKind
  89. | AVRSignalAttrKind
  90. | AcquireCapabilityAttrKind
  91. | AcquiredAfterAttrKind
  92. | AcquiredBeforeAttrKind
  93. | AlignMac68kAttrKind
  94. | AlignNaturalAttrKind
  95. | AlignedAttrKind
  96. | AllocAlignAttrKind
  97. | AllocSizeAttrKind
  98. | AlwaysDestroyAttrKind
  99. | AnalyzerNoReturnAttrKind
  100. | AnyX86InterruptAttrKind
  101. | AnyX86NoCallerSavedRegistersAttrKind
  102. | ArcWeakrefUnavailableAttrKind
  103. | ArgumentWithTypeTagAttrKind
  104. | ArmBuiltinAliasAttrKind
  105. | ArmLocallyStreamingAttrKind
  106. | ArmNewAttrKind
  107. | ArtificialAttrKind
  108. | AsmLabelAttrKind
  109. | AssertCapabilityAttrKind
  110. | AssertExclusiveLockAttrKind
  111. | AssertSharedLockAttrKind
  112. | AssumeAlignedAttrKind
  113. | AssumptionAttrKind
  114. | AvailabilityAttrKind
  115. | AvailableOnlyInDefaultEvalMethodAttrKind
  116. | BPFPreserveAccessIndexAttrKind
  117. | BPFPreserveStaticOffsetAttrKind
  118. | BTFDeclTagAttrKind
  119. | BlocksAttrKind
  120. | BuiltinAttrKind
  121. | C11NoReturnAttrKind
  122. | CFAuditedTransferAttrKind
  123. | CFGuardAttrKind
  124. | CFICanonicalJumpTableAttrKind
  125. | CFReturnsNotRetainedAttrKind
  126. | CFReturnsRetainedAttrKind
  127. | CFUnknownTransferAttrKind
  128. | CPUDispatchAttrKind
  129. | CPUSpecificAttrKind
  130. | CUDAConstantAttrKind
  131. | CUDADeviceAttrKind
  132. | CUDADeviceBuiltinSurfaceTypeAttrKind
  133. | CUDADeviceBuiltinTextureTypeAttrKind
  134. | CUDAGlobalAttrKind
  135. | CUDAHostAttrKind
  136. | CUDAInvalidTargetAttrKind
  137. | CUDALaunchBoundsAttrKind
  138. | CUDASharedAttrKind
  139. | CXX11NoReturnAttrKind
  140. | CallableWhenAttrKind
  141. | CallbackAttrKind
  142. | CapabilityAttrKind
  143. | CapturedRecordAttrKind
  144. | CleanupAttrKind
  145. | CmseNSEntryAttrKind
  146. | CodeModelAttrKind
  147. | CodeSegAttrKind
  148. | ColdAttrKind
  149. | CommonAttrKind
  150. | ConstAttrKind
  151. | ConstInitAttrKind
  152. | ConstructorAttrKind
  153. | ConsumableAttrKind
  154. | ConsumableAutoCastAttrKind
  155. | ConsumableSetOnReadAttrKind
  156. | ConvergentAttrKind
  157. | CoroDisableLifetimeBoundAttrKind
  158. | CoroLifetimeBoundAttrKind
  159. | CoroOnlyDestroyWhenCompleteAttrKind
  160. | CoroReturnTypeAttrKind
  161. | CoroWrapperAttrKind
  162. | CountedByAttrKind
  163. | DLLExportAttrKind
  164. | DLLExportStaticLocalAttrKind
  165. | DLLImportAttrKind
  166. | DLLImportStaticLocalAttrKind
  167. | DeprecatedAttrKind
  168. | DestructorAttrKind
  169. | DiagnoseAsBuiltinAttrKind
  170. | DiagnoseIfAttrKind
  171. | DisableSanitizerInstrumentationAttrKind
  172. | DisableTailCallsAttrKind
  173. | EmptyBasesAttrKind
  174. | EnableIfAttrKind
  175. | EnforceTCBAttrKind
  176. | EnforceTCBLeafAttrKind
  177. | EnumExtensibilityAttrKind
  178. | ErrorAttrKind
  179. | ExcludeFromExplicitInstantiationAttrKind
  180. | ExclusiveTrylockFunctionAttrKind
  181. | ExternalSourceSymbolAttrKind
  182. | FinalAttrKind
  183. | FlagEnumAttrKind
  184. | FlattenAttrKind
  185. | FormatAttrKind
  186. | FormatArgAttrKind
  187. | FunctionReturnThunksAttrKind
  188. | GNUInlineAttrKind
  189. | GuardedByAttrKind
  190. | GuardedVarAttrKind
  191. | HIPManagedAttrKind
  192. | HLSLNumThreadsAttrKind
  193. | HLSLResourceAttrKind
  194. | HLSLResourceBindingAttrKind
  195. | HLSLShaderAttrKind
  196. | HotAttrKind
  197. | IBActionAttrKind
  198. | IBOutletAttrKind
  199. | IBOutletCollectionAttrKind
  200. | InitPriorityAttrKind
  201. | InternalLinkageAttrKind
  202. | LTOVisibilityPublicAttrKind
  203. | LayoutVersionAttrKind
  204. | LeafAttrKind
  205. | LockReturnedAttrKind
  206. | LocksExcludedAttrKind
  207. | M68kInterruptAttrKind
  208. | MIGServerRoutineAttrKind
  209. | MSAllocatorAttrKind
  210. | MSConstexprAttrKind
  211. | MSInheritanceAttrKind
  212. | MSNoVTableAttrKind
  213. | MSP430InterruptAttrKind
  214. | MSStructAttrKind
  215. | MSVtorDispAttrKind
  216. | MaxFieldAlignmentAttrKind
  217. | MayAliasAttrKind
  218. | MaybeUndefAttrKind
  219. | MicroMipsAttrKind
  220. | MinSizeAttrKind
  221. | MinVectorWidthAttrKind
  222. | Mips16AttrKind
  223. | MipsInterruptAttrKind
  224. | MipsLongCallAttrKind
  225. | MipsShortCallAttrKind
  226. | NSConsumesSelfAttrKind
  227. | NSErrorDomainAttrKind
  228. | NSReturnsAutoreleasedAttrKind
  229. | NSReturnsNotRetainedAttrKind
  230. | NVPTXKernelAttrKind
  231. | NakedAttrKind
  232. | NoAliasAttrKind
  233. | NoCommonAttrKind
  234. | NoDebugAttrKind
  235. | NoDestroyAttrKind
  236. | NoDuplicateAttrKind
  237. | NoInstrumentFunctionAttrKind
  238. | NoMicroMipsAttrKind
  239. | NoMips16AttrKind
  240. | NoProfileFunctionAttrKind
  241. | NoRandomizeLayoutAttrKind
  242. | NoReturnAttrKind
  243. | NoSanitizeAttrKind
  244. | NoSpeculativeLoadHardeningAttrKind
  245. | NoSplitStackAttrKind
  246. | NoStackProtectorAttrKind
  247. | NoThreadSafetyAnalysisAttrKind
  248. | NoThrowAttrKind
  249. | NoUniqueAddressAttrKind
  250. | NoUwtableAttrKind
  251. | NotTailCalledAttrKind
  252. | OMPAllocateDeclAttrKind
  253. | OMPCaptureNoInitAttrKind
  254. | OMPDeclareTargetDeclAttrKind
  255. | OMPDeclareVariantAttrKind
  256. | OMPThreadPrivateDeclAttrKind
  257. | OSConsumesThisAttrKind
  258. | OSReturnsNotRetainedAttrKind
  259. | OSReturnsRetainedAttrKind
  260. | OSReturnsRetainedOnNonZeroAttrKind
  261. | OSReturnsRetainedOnZeroAttrKind
  262. | ObjCBridgeAttrKind
  263. | ObjCBridgeMutableAttrKind
  264. | ObjCBridgeRelatedAttrKind
  265. | ObjCExceptionAttrKind
  266. | ObjCExplicitProtocolImplAttrKind
  267. | ObjCExternallyRetainedAttrKind
  268. | ObjCIndependentClassAttrKind
  269. | ObjCMethodFamilyAttrKind
  270. | ObjCNSObjectAttrKind
  271. | ObjCPreciseLifetimeAttrKind
  272. | ObjCRequiresPropertyDefsAttrKind
  273. | ObjCRequiresSuperAttrKind
  274. | ObjCReturnsInnerPointerAttrKind
  275. | ObjCRootClassAttrKind
  276. | ObjCSubclassingRestrictedAttrKind
  277. | OpenCLIntelReqdSubGroupSizeAttrKind
  278. | OpenCLKernelAttrKind
  279. | OptimizeNoneAttrKind
  280. | OverrideAttrKind
  281. | OwnerAttrKind
  282. | OwnershipAttrKind
  283. | PackedAttrKind
  284. | ParamTypestateAttrKind
  285. | PatchableFunctionEntryAttrKind
  286. | PointerAttrKind
  287. | PragmaClangBSSSectionAttrKind
  288. | PragmaClangDataSectionAttrKind
  289. | PragmaClangRelroSectionAttrKind
  290. | PragmaClangRodataSectionAttrKind
  291. | PragmaClangTextSectionAttrKind
  292. | PreferredNameAttrKind
  293. | PreferredTypeAttrKind
  294. | PtGuardedByAttrKind
  295. | PtGuardedVarAttrKind
  296. | PureAttrKind
  297. | RISCVInterruptAttrKind
  298. | RandomizeLayoutAttrKind
  299. | ReadOnlyPlacementAttrKind
  300. | ReinitializesAttrKind
  301. | ReleaseCapabilityAttrKind
  302. | ReqdWorkGroupSizeAttrKind
  303. | RequiresCapabilityAttrKind
  304. | RestrictAttrKind
  305. | RetainAttrKind
  306. | ReturnTypestateAttrKind
  307. | ReturnsNonNullAttrKind
  308. | ReturnsTwiceAttrKind
  309. | SYCLKernelAttrKind
  310. | SYCLSpecialClassAttrKind
  311. | ScopedLockableAttrKind
  312. | SectionAttrKind
  313. | SelectAnyAttrKind
  314. | SentinelAttrKind
  315. | SetTypestateAttrKind
  316. | SharedTrylockFunctionAttrKind
  317. | SpeculativeLoadHardeningAttrKind
  318. | StandaloneDebugAttrKind
  319. | StrictFPAttrKind
  320. | StrictGuardStackCheckAttrKind
  321. | SwiftAsyncAttrKind
  322. | SwiftAsyncErrorAttrKind
  323. | SwiftAsyncNameAttrKind
  324. | SwiftAttrAttrKind
  325. | SwiftBridgeAttrKind
  326. | SwiftBridgedTypedefAttrKind
  327. | SwiftErrorAttrKind
  328. | SwiftImportAsNonGenericAttrKind
  329. | SwiftImportPropertyAsAccessorsAttrKind
  330. | SwiftNameAttrKind
  331. | SwiftNewTypeAttrKind
  332. | SwiftPrivateAttrKind
  333. | TLSModelAttrKind
  334. | TargetAttrKind
  335. | TargetClonesAttrKind
  336. | TargetVersionAttrKind
  337. | TestTypestateAttrKind
  338. | TransparentUnionAttrKind
  339. | TrivialABIAttrKind
  340. | TryAcquireCapabilityAttrKind
  341. | TypeTagForDatatypeAttrKind
  342. | TypeVisibilityAttrKind
  343. | UnavailableAttrKind
  344. | UninitializedAttrKind
  345. | UnsafeBufferUsageAttrKind
  346. | UnusedAttrKind
  347. | UsedAttrKind
  348. | UsingIfExistsAttrKind
  349. | UuidAttrKind
  350. | VecReturnAttrKind
  351. | VecTypeHintAttrKind
  352. | VisibilityAttrKind
  353. | WarnUnusedAttrKind
  354. | WarnUnusedResultAttrKind
  355. | WeakAttrKind
  356. | WeakImportAttrKind
  357. | WeakRefAttrKind
  358. | WebAssemblyExportNameAttrKind
  359. | WebAssemblyImportModuleAttrKind
  360. | WebAssemblyImportNameAttrKind
  361. | WorkGroupSizeHintAttrKind
  362. | X86ForceAlignArgPointerAttrKind
  363. | XRayInstrumentAttrKind
  364. | XRayLogArgsAttrKind
  365. | ZeroCallUsedRegsAttrKind
  366. | AbiTagAttrKind
  367. | AliasAttrKind
  368. | AlignValueAttrKind
  369. | BuiltinAliasAttrKind
  370. | CalledOnceAttrKind
  371. | IFuncAttrKind
  372. | InitSegAttrKind
  373. | LoaderUninitializedAttrKind
  374. | LoopHintAttrKind
  375. | ModeAttrKind
  376. | NoBuiltinAttrKind
  377. | NoEscapeAttrKind
  378. | OMPCaptureKindAttrKind
  379. | OMPDeclareSimdDeclAttrKind
  380. | OMPReferencedVarAttrKind
  381. | ObjCBoxableAttrKind
  382. | ObjCClassStubAttrKind
  383. | ObjCDesignatedInitializerAttrKind
  384. | ObjCDirectAttrKind
  385. | ObjCDirectMembersAttrKind
  386. | ObjCNonLazyClassAttrKind
  387. | ObjCNonRuntimeProtocolAttrKind
  388. | ObjCRuntimeNameAttrKind
  389. | ObjCRuntimeVisibleAttrKind
  390. | OpenCLAccessAttrKind
  391. | OverloadableAttrKind
  392. | RenderScriptKernelAttrKind
  393. | SwiftObjCMembersAttrKind
  394. | SwiftVersionedAdditionAttrKind
  395. | SwiftVersionedRemovalAttrKind
  396. | ThreadAttrKind
type binary_operator_kind = Clang_ast_t.binary_operator_kind
type binary_operator_info = Clang_ast_t.binary_operator_info = {
  1. boi_kind : binary_operator_kind;
}
type builtin_type_kind = Clang_ast_t.builtin_type_kind
type cast_kind = Clang_ast_t.cast_kind
type cxx_base_specifier = Clang_ast_t.cxx_base_specifier = {
  1. xbs_name : string;
  2. xbs_virtual : bool;
}
type cast_expr_info = Clang_ast_t.cast_expr_info = {
  1. cei_cast_kind : cast_kind;
  2. cei_base_path : cxx_base_specifier list;
}
type cxx_noexcept_expr_info = Clang_ast_t.cxx_noexcept_expr_info = {
  1. xnee_value : bool;
}
type decl_context_info = Clang_ast_t.decl_context_info = {
  1. dci_has_external_lexical_storage : bool;
  2. dci_has_external_visible_storage : bool;
}
type decl_kind = Clang_ast_t.decl_kind
type declaration_name_kind = Clang_ast_t.declaration_name_kind
type declaration_name = Clang_ast_t.declaration_name = {
  1. dn_kind : declaration_name_kind;
  2. dn_name : string;
}
type enum_decl_scope = Clang_ast_t.enum_decl_scope
type enum_decl_info = Clang_ast_t.enum_decl_info = {
  1. edi_scope : enum_decl_scope option;
  2. edi_is_module_private : bool;
}
type input_kind = Clang_ast_t.input_kind
type integer_literal_info = Clang_ast_t.integer_literal_info = {
  1. ili_is_signed : bool;
  2. ili_bitwidth : int;
  3. ili_value : string;
}
type integer_type_widths = Clang_ast_t.integer_type_widths = {
  1. itw_char_type : int;
  2. itw_short_type : int;
  3. itw_int_type : int;
  4. itw_long_type : int;
  5. itw_longlong_type : int;
}
type lambda_capture_kind = Clang_ast_t.lambda_capture_kind
type named_decl_info = Clang_ast_t.named_decl_info = {
  1. ni_name : string;
  2. ni_qual_name : string list;
}
type obj_c_access_control = Clang_ast_t.obj_c_access_control
type obj_c_availability_check_expr_info = +Clang_ast_b (infer.ATDGenerated.Clang_ast_b)

Module ATDGenerated.Clang_ast_b

type access_specifier = Clang_ast_t.access_specifier
type atomic_expr_kind = Clang_ast_t.atomic_expr_kind
type atomic_expr_info = Clang_ast_t.atomic_expr_info = {
  1. aei_kind : atomic_expr_kind;
}
type attribute_kind = Clang_ast_t.attribute_kind =
  1. | AddressSpaceAttrKind
  2. | AllocatingAttrKind
  3. | AnnotateTypeAttrKind
  4. | ArmInAttrKind
  5. | ArmInOutAttrKind
  6. | ArmMveStrictPolymorphismAttrKind
  7. | ArmOutAttrKind
  8. | ArmPreservesAttrKind
  9. | ArmStreamingAttrKind
  10. | ArmStreamingCompatibleAttrKind
  11. | BTFTypeTagAttrKind
  12. | BlockingAttrKind
  13. | CmseNSCallAttrKind
  14. | HLSLGroupSharedAddressSpaceAttrKind
  15. | HLSLParamModifierAttrKind
  16. | NoDerefAttrKind
  17. | NonAllocatingAttrKind
  18. | NonBlockingAttrKind
  19. | ObjCGCAttrKind
  20. | ObjCInertUnsafeUnretainedAttrKind
  21. | ObjCKindOfAttrKind
  22. | OpenCLConstantAddressSpaceAttrKind
  23. | OpenCLGenericAddressSpaceAttrKind
  24. | OpenCLGlobalAddressSpaceAttrKind
  25. | OpenCLGlobalDeviceAddressSpaceAttrKind
  26. | OpenCLGlobalHostAddressSpaceAttrKind
  27. | OpenCLLocalAddressSpaceAttrKind
  28. | OpenCLPrivateAddressSpaceAttrKind
  29. | Ptr32AttrKind
  30. | Ptr64AttrKind
  31. | SPtrAttrKind
  32. | TypeNonNullAttrKind
  33. | TypeNullUnspecifiedAttrKind
  34. | TypeNullableResultAttrKind
  35. | UPtrAttrKind
  36. | WebAssemblyFuncrefAttrKind
  37. | CXXAssumeAttrKind
  38. | CodeAlignAttrKind
  39. | FallThroughAttrKind
  40. | HLSLLoopHintAttrKind
  41. | LikelyAttrKind
  42. | MustTailAttrKind
  43. | OpenCLUnrollHintAttrKind
  44. | UnlikelyAttrKind
  45. | AlwaysInlineAttrKind
  46. | NoInlineAttrKind
  47. | NoMergeAttrKind
  48. | SuppressAttrKind
  49. | AArch64SVEPcsAttrKind
  50. | AArch64VectorPcsAttrKind
  51. | AMDGPUKernelCallAttrKind
  52. | AcquireHandleAttrKind
  53. | AnyX86NoCfCheckAttrKind
  54. | CDeclAttrKind
  55. | CountedByAttrKind
  56. | CountedByOrNullAttrKind
  57. | FastCallAttrKind
  58. | IntelOclBiccAttrKind
  59. | LifetimeBoundAttrKind
  60. | M68kRTDAttrKind
  61. | MSABIAttrKind
  62. | NSReturnsRetainedAttrKind
  63. | ObjCOwnershipAttrKind
  64. | PascalAttrKind
  65. | PcsAttrKind
  66. | PreserveAllAttrKind
  67. | PreserveMostAttrKind
  68. | PreserveNoneAttrKind
  69. | RISCVVectorCCAttrKind
  70. | RegCallAttrKind
  71. | SizedByAttrKind
  72. | SizedByOrNullAttrKind
  73. | StdCallAttrKind
  74. | SwiftAsyncCallAttrKind
  75. | SwiftCallAttrKind
  76. | SysVABIAttrKind
  77. | ThisCallAttrKind
  78. | TypeNullableAttrKind
  79. | VectorCallAttrKind
  80. | SwiftAsyncContextAttrKind
  81. | SwiftContextAttrKind
  82. | SwiftErrorResultAttrKind
  83. | SwiftIndirectResultAttrKind
  84. | AnnotateAttrKind
  85. | CFConsumedAttrKind
  86. | CarriesDependencyAttrKind
  87. | NSConsumedAttrKind
  88. | NonNullAttrKind
  89. | OSConsumedAttrKind
  90. | PassObjectSizeAttrKind
  91. | ReleaseHandleAttrKind
  92. | UseHandleAttrKind
  93. | HLSLPackOffsetAttrKind
  94. | HLSLSV_DispatchThreadIDAttrKind
  95. | HLSLSV_GroupIndexAttrKind
  96. | AMDGPUFlatWorkGroupSizeAttrKind
  97. | AMDGPUMaxNumWorkGroupsAttrKind
  98. | AMDGPUNumSGPRAttrKind
  99. | AMDGPUNumVGPRAttrKind
  100. | AMDGPUWavesPerEUAttrKind
  101. | ARMInterruptAttrKind
  102. | AVRInterruptAttrKind
  103. | AVRSignalAttrKind
  104. | AcquireCapabilityAttrKind
  105. | AcquiredAfterAttrKind
  106. | AcquiredBeforeAttrKind
  107. | AlignMac68kAttrKind
  108. | AlignNaturalAttrKind
  109. | AlignedAttrKind
  110. | AllocAlignAttrKind
  111. | AllocSizeAttrKind
  112. | AlwaysDestroyAttrKind
  113. | AnalyzerNoReturnAttrKind
  114. | AnyX86InterruptAttrKind
  115. | AnyX86NoCallerSavedRegistersAttrKind
  116. | ArcWeakrefUnavailableAttrKind
  117. | ArgumentWithTypeTagAttrKind
  118. | ArmBuiltinAliasAttrKind
  119. | ArmLocallyStreamingAttrKind
  120. | ArmNewAttrKind
  121. | ArtificialAttrKind
  122. | AsmLabelAttrKind
  123. | AssertCapabilityAttrKind
  124. | AssertExclusiveLockAttrKind
  125. | AssertSharedLockAttrKind
  126. | AssumeAlignedAttrKind
  127. | AvailabilityAttrKind
  128. | AvailableOnlyInDefaultEvalMethodAttrKind
  129. | BPFPreserveAccessIndexAttrKind
  130. | BPFPreserveStaticOffsetAttrKind
  131. | BTFDeclTagAttrKind
  132. | BlocksAttrKind
  133. | BuiltinAttrKind
  134. | C11NoReturnAttrKind
  135. | CFAuditedTransferAttrKind
  136. | CFGuardAttrKind
  137. | CFICanonicalJumpTableAttrKind
  138. | CFReturnsNotRetainedAttrKind
  139. | CFReturnsRetainedAttrKind
  140. | CFUnknownTransferAttrKind
  141. | CPUDispatchAttrKind
  142. | CPUSpecificAttrKind
  143. | CUDAConstantAttrKind
  144. | CUDADeviceAttrKind
  145. | CUDADeviceBuiltinSurfaceTypeAttrKind
  146. | CUDADeviceBuiltinTextureTypeAttrKind
  147. | CUDAGlobalAttrKind
  148. | CUDAHostAttrKind
  149. | CUDAInvalidTargetAttrKind
  150. | CUDALaunchBoundsAttrKind
  151. | CUDASharedAttrKind
  152. | CXX11NoReturnAttrKind
  153. | CallableWhenAttrKind
  154. | CallbackAttrKind
  155. | CapabilityAttrKind
  156. | CapturedRecordAttrKind
  157. | CleanupAttrKind
  158. | ClspvLibclcBuiltinAttrKind
  159. | CmseNSEntryAttrKind
  160. | CodeModelAttrKind
  161. | CodeSegAttrKind
  162. | ColdAttrKind
  163. | CommonAttrKind
  164. | ConstAttrKind
  165. | ConstInitAttrKind
  166. | ConstructorAttrKind
  167. | ConsumableAttrKind
  168. | ConsumableAutoCastAttrKind
  169. | ConsumableSetOnReadAttrKind
  170. | ConvergentAttrKind
  171. | CoroDisableLifetimeBoundAttrKind
  172. | CoroLifetimeBoundAttrKind
  173. | CoroOnlyDestroyWhenCompleteAttrKind
  174. | CoroReturnTypeAttrKind
  175. | CoroWrapperAttrKind
  176. | DLLExportAttrKind
  177. | DLLExportStaticLocalAttrKind
  178. | DLLImportAttrKind
  179. | DLLImportStaticLocalAttrKind
  180. | DeprecatedAttrKind
  181. | DestructorAttrKind
  182. | DiagnoseAsBuiltinAttrKind
  183. | DiagnoseIfAttrKind
  184. | DisableSanitizerInstrumentationAttrKind
  185. | DisableTailCallsAttrKind
  186. | EmptyBasesAttrKind
  187. | EnableIfAttrKind
  188. | EnforceTCBAttrKind
  189. | EnforceTCBLeafAttrKind
  190. | EnumExtensibilityAttrKind
  191. | ErrorAttrKind
  192. | ExcludeFromExplicitInstantiationAttrKind
  193. | ExclusiveTrylockFunctionAttrKind
  194. | ExternalSourceSymbolAttrKind
  195. | FinalAttrKind
  196. | FlagEnumAttrKind
  197. | FlattenAttrKind
  198. | FormatAttrKind
  199. | FormatArgAttrKind
  200. | FunctionReturnThunksAttrKind
  201. | GNUInlineAttrKind
  202. | GuardedByAttrKind
  203. | GuardedVarAttrKind
  204. | HIPManagedAttrKind
  205. | HLSLNumThreadsAttrKind
  206. | HLSLResourceAttrKind
  207. | HLSLResourceBindingAttrKind
  208. | HLSLResourceClassAttrKind
  209. | HLSLShaderAttrKind
  210. | HotAttrKind
  211. | HybridPatchableAttrKind
  212. | IBActionAttrKind
  213. | IBOutletAttrKind
  214. | IBOutletCollectionAttrKind
  215. | InitPriorityAttrKind
  216. | InternalLinkageAttrKind
  217. | LTOVisibilityPublicAttrKind
  218. | LayoutVersionAttrKind
  219. | LeafAttrKind
  220. | LockReturnedAttrKind
  221. | LocksExcludedAttrKind
  222. | M68kInterruptAttrKind
  223. | MIGServerRoutineAttrKind
  224. | MSAllocatorAttrKind
  225. | MSConstexprAttrKind
  226. | MSInheritanceAttrKind
  227. | MSNoVTableAttrKind
  228. | MSP430InterruptAttrKind
  229. | MSStructAttrKind
  230. | MSVtorDispAttrKind
  231. | MaxFieldAlignmentAttrKind
  232. | MayAliasAttrKind
  233. | MaybeUndefAttrKind
  234. | MicroMipsAttrKind
  235. | MinSizeAttrKind
  236. | MinVectorWidthAttrKind
  237. | Mips16AttrKind
  238. | MipsInterruptAttrKind
  239. | MipsLongCallAttrKind
  240. | MipsShortCallAttrKind
  241. | NSConsumesSelfAttrKind
  242. | NSErrorDomainAttrKind
  243. | NSReturnsAutoreleasedAttrKind
  244. | NSReturnsNotRetainedAttrKind
  245. | NVPTXKernelAttrKind
  246. | NakedAttrKind
  247. | NoAliasAttrKind
  248. | NoCommonAttrKind
  249. | NoDebugAttrKind
  250. | NoDestroyAttrKind
  251. | NoDuplicateAttrKind
  252. | NoInstrumentFunctionAttrKind
  253. | NoMicroMipsAttrKind
  254. | NoMips16AttrKind
  255. | NoProfileFunctionAttrKind
  256. | NoRandomizeLayoutAttrKind
  257. | NoReturnAttrKind
  258. | NoSanitizeAttrKind
  259. | NoSpeculativeLoadHardeningAttrKind
  260. | NoSplitStackAttrKind
  261. | NoStackProtectorAttrKind
  262. | NoThreadSafetyAnalysisAttrKind
  263. | NoThrowAttrKind
  264. | NoUniqueAddressAttrKind
  265. | NoUwtableAttrKind
  266. | NotTailCalledAttrKind
  267. | OMPAllocateDeclAttrKind
  268. | OMPAssumeAttrKind
  269. | OMPCaptureNoInitAttrKind
  270. | OMPDeclareTargetDeclAttrKind
  271. | OMPDeclareVariantAttrKind
  272. | OMPThreadPrivateDeclAttrKind
  273. | OSConsumesThisAttrKind
  274. | OSReturnsNotRetainedAttrKind
  275. | OSReturnsRetainedAttrKind
  276. | OSReturnsRetainedOnNonZeroAttrKind
  277. | OSReturnsRetainedOnZeroAttrKind
  278. | ObjCBridgeAttrKind
  279. | ObjCBridgeMutableAttrKind
  280. | ObjCBridgeRelatedAttrKind
  281. | ObjCExceptionAttrKind
  282. | ObjCExplicitProtocolImplAttrKind
  283. | ObjCExternallyRetainedAttrKind
  284. | ObjCIndependentClassAttrKind
  285. | ObjCMethodFamilyAttrKind
  286. | ObjCNSObjectAttrKind
  287. | ObjCPreciseLifetimeAttrKind
  288. | ObjCRequiresPropertyDefsAttrKind
  289. | ObjCRequiresSuperAttrKind
  290. | ObjCReturnsInnerPointerAttrKind
  291. | ObjCRootClassAttrKind
  292. | ObjCSubclassingRestrictedAttrKind
  293. | OpenCLIntelReqdSubGroupSizeAttrKind
  294. | OpenCLKernelAttrKind
  295. | OptimizeNoneAttrKind
  296. | OverrideAttrKind
  297. | OwnerAttrKind
  298. | OwnershipAttrKind
  299. | PackedAttrKind
  300. | ParamTypestateAttrKind
  301. | PatchableFunctionEntryAttrKind
  302. | PointerAttrKind
  303. | PragmaClangBSSSectionAttrKind
  304. | PragmaClangDataSectionAttrKind
  305. | PragmaClangRelroSectionAttrKind
  306. | PragmaClangRodataSectionAttrKind
  307. | PragmaClangTextSectionAttrKind
  308. | PreferredNameAttrKind
  309. | PreferredTypeAttrKind
  310. | PtGuardedByAttrKind
  311. | PtGuardedVarAttrKind
  312. | PureAttrKind
  313. | RISCVInterruptAttrKind
  314. | RandomizeLayoutAttrKind
  315. | ReadOnlyPlacementAttrKind
  316. | ReinitializesAttrKind
  317. | ReleaseCapabilityAttrKind
  318. | ReqdWorkGroupSizeAttrKind
  319. | RequiresCapabilityAttrKind
  320. | RestrictAttrKind
  321. | RetainAttrKind
  322. | ReturnTypestateAttrKind
  323. | ReturnsNonNullAttrKind
  324. | ReturnsTwiceAttrKind
  325. | SYCLKernelAttrKind
  326. | SYCLSpecialClassAttrKind
  327. | ScopedLockableAttrKind
  328. | SectionAttrKind
  329. | SelectAnyAttrKind
  330. | SentinelAttrKind
  331. | SetTypestateAttrKind
  332. | SharedTrylockFunctionAttrKind
  333. | SpeculativeLoadHardeningAttrKind
  334. | StandaloneDebugAttrKind
  335. | StrictFPAttrKind
  336. | StrictGuardStackCheckAttrKind
  337. | SwiftAsyncAttrKind
  338. | SwiftAsyncErrorAttrKind
  339. | SwiftAsyncNameAttrKind
  340. | SwiftAttrAttrKind
  341. | SwiftBridgeAttrKind
  342. | SwiftBridgedTypedefAttrKind
  343. | SwiftErrorAttrKind
  344. | SwiftImportAsNonGenericAttrKind
  345. | SwiftImportPropertyAsAccessorsAttrKind
  346. | SwiftNameAttrKind
  347. | SwiftNewTypeAttrKind
  348. | SwiftPrivateAttrKind
  349. | TLSModelAttrKind
  350. | TargetAttrKind
  351. | TargetClonesAttrKind
  352. | TargetVersionAttrKind
  353. | TestTypestateAttrKind
  354. | TransparentUnionAttrKind
  355. | TrivialABIAttrKind
  356. | TryAcquireCapabilityAttrKind
  357. | TypeTagForDatatypeAttrKind
  358. | TypeVisibilityAttrKind
  359. | UnavailableAttrKind
  360. | UninitializedAttrKind
  361. | UnsafeBufferUsageAttrKind
  362. | UnusedAttrKind
  363. | UsedAttrKind
  364. | UsingIfExistsAttrKind
  365. | UuidAttrKind
  366. | VTablePointerAuthenticationAttrKind
  367. | VecReturnAttrKind
  368. | VecTypeHintAttrKind
  369. | VisibilityAttrKind
  370. | WarnUnusedAttrKind
  371. | WarnUnusedResultAttrKind
  372. | WeakAttrKind
  373. | WeakImportAttrKind
  374. | WeakRefAttrKind
  375. | WebAssemblyExportNameAttrKind
  376. | WebAssemblyImportModuleAttrKind
  377. | WebAssemblyImportNameAttrKind
  378. | WorkGroupSizeHintAttrKind
  379. | X86ForceAlignArgPointerAttrKind
  380. | XRayInstrumentAttrKind
  381. | XRayLogArgsAttrKind
  382. | ZeroCallUsedRegsAttrKind
  383. | AbiTagAttrKind
  384. | AliasAttrKind
  385. | AlignValueAttrKind
  386. | BuiltinAliasAttrKind
  387. | CalledOnceAttrKind
  388. | IFuncAttrKind
  389. | InitSegAttrKind
  390. | LoaderUninitializedAttrKind
  391. | LoopHintAttrKind
  392. | ModeAttrKind
  393. | NoBuiltinAttrKind
  394. | NoEscapeAttrKind
  395. | OMPCaptureKindAttrKind
  396. | OMPDeclareSimdDeclAttrKind
  397. | OMPReferencedVarAttrKind
  398. | ObjCBoxableAttrKind
  399. | ObjCClassStubAttrKind
  400. | ObjCDesignatedInitializerAttrKind
  401. | ObjCDirectAttrKind
  402. | ObjCDirectMembersAttrKind
  403. | ObjCNonLazyClassAttrKind
  404. | ObjCNonRuntimeProtocolAttrKind
  405. | ObjCRuntimeNameAttrKind
  406. | ObjCRuntimeVisibleAttrKind
  407. | OpenCLAccessAttrKind
  408. | OverloadableAttrKind
  409. | RenderScriptKernelAttrKind
  410. | SwiftObjCMembersAttrKind
  411. | SwiftVersionedAdditionAttrKind
  412. | SwiftVersionedRemovalAttrKind
  413. | ThreadAttrKind
type binary_operator_kind = Clang_ast_t.binary_operator_kind
type binary_operator_info = Clang_ast_t.binary_operator_info = {
  1. boi_kind : binary_operator_kind;
}
type builtin_type_kind = Clang_ast_t.builtin_type_kind
type cast_kind = Clang_ast_t.cast_kind
type cxx_base_specifier = Clang_ast_t.cxx_base_specifier = {
  1. xbs_name : string;
  2. xbs_virtual : bool;
}
type cast_expr_info = Clang_ast_t.cast_expr_info = {
  1. cei_cast_kind : cast_kind;
  2. cei_base_path : cxx_base_specifier list;
}
type cxx_noexcept_expr_info = Clang_ast_t.cxx_noexcept_expr_info = {
  1. xnee_value : bool;
}
type decl_context_info = Clang_ast_t.decl_context_info = {
  1. dci_has_external_lexical_storage : bool;
  2. dci_has_external_visible_storage : bool;
}
type decl_kind = Clang_ast_t.decl_kind
type declaration_name_kind = Clang_ast_t.declaration_name_kind
type declaration_name = Clang_ast_t.declaration_name = {
  1. dn_kind : declaration_name_kind;
  2. dn_name : string;
}
type enum_decl_scope = Clang_ast_t.enum_decl_scope
type enum_decl_info = Clang_ast_t.enum_decl_info = {
  1. edi_scope : enum_decl_scope option;
  2. edi_is_module_private : bool;
}
type input_kind = Clang_ast_t.input_kind
type integer_literal_info = Clang_ast_t.integer_literal_info = {
  1. ili_is_signed : bool;
  2. ili_bitwidth : int;
  3. ili_value : string;
}
type integer_type_widths = Clang_ast_t.integer_type_widths = {
  1. itw_char_type : int;
  2. itw_short_type : int;
  3. itw_int_type : int;
  4. itw_long_type : int;
  5. itw_longlong_type : int;
}
type lambda_capture_kind = Clang_ast_t.lambda_capture_kind
type named_decl_info = Clang_ast_t.named_decl_info = {
  1. ni_name : string;
  2. ni_qual_name : string list;
}
type namespace_decl_info = Clang_ast_t.namespace_decl_info = {
  1. ndi_is_inline : bool;
}
type obj_c_access_control = Clang_ast_t.obj_c_access_control
type obj_c_availability_check_expr_info = Clang_ast_t.obj_c_availability_check_expr_info = {
  1. oacei_version : string option;
}
type obj_c_bridge_cast_kind = Clang_ast_t.obj_c_bridge_cast_kind
type obj_c_bridged_cast_expr_info = Clang_ast_t.obj_c_bridged_cast_expr_info = {
  1. obcei_cast_kind : obj_c_bridge_cast_kind;
}
type obj_c_ivar_decl_info = Clang_ast_t.obj_c_ivar_decl_info = {
  1. ovdi_is_synthesize : bool;
  2. ovdi_access_control : obj_c_access_control;
}
type obj_c_property_control = Clang_ast_t.obj_c_property_control
type obj_c_subscript_kind = Clang_ast_t.obj_c_subscript_kind
type objc_lifetime_attr = Clang_ast_t.objc_lifetime_attr
type attr_type_info = Clang_ast_t.attr_type_info = {
  1. ati_attr_kind : attribute_kind;
  2. ati_lifetime : objc_lifetime_attr;
}
type object_kind = Clang_ast_t.object_kind
type offset_of_expr_info = Clang_ast_t.offset_of_expr_info = {
  1. ooe_literal : integer_literal_info option;
}
type pointer = Clang_ast_t.pointer
type addr_label_expr_info = Clang_ast_t.addr_label_expr_info = {
  1. alei_label : string;
  2. alei_pointer : pointer;
}
type cxx_new_expr_info = Clang_ast_t.cxx_new_expr_info = {
  1. xnei_is_array : bool;
  2. xnei_array_size_expr : pointer option;
  3. xnei_initializer_expr : pointer option;
  4. xnei_placement_args : pointer list;
}
type cxx_temporary = Clang_ast_t.cxx_temporary
type cxx_bind_temporary_expr_info = Clang_ast_t.cxx_bind_temporary_expr_info = {
  1. xbtei_cxx_temporary : cxx_temporary;
}
type goto_stmt_info = Clang_ast_t.goto_stmt_info = {
  1. gsi_label : string;
  2. gsi_pointer : pointer;
}
type obj_c_array_literal_expr_info = Clang_ast_t.obj_c_array_literal_expr_info = {
  1. oalei_array_method : pointer option;
}
type obj_c_dictionary_literal_expr_info = @@ -8,17 +8,17 @@ {
  1. osrei_kind : obj_c_subscript_kind;
  2. osrei_getter : selector option;
  3. osrei_setter : selector option;
}
type objc_boxed_expr_info = Clang_ast_t.objc_boxed_expr_info = {
  1. obei_boxing_method : selector option;
}
type sentinel_attr_info = Clang_ast_t.sentinel_attr_info = {
  1. sai_sentinel : int;
  2. sai_null_pos : int;
}
type source_file = Clang_ast_t.source_file
type source_location = Clang_ast_t.source_location = {
  1. mutable sl_file : source_file option;
  2. mutable sl_line : int option;
  3. mutable sl_column : int option;
  4. sl_is_macro : bool;
  5. mutable sl_macro_file : source_file option;
  6. mutable sl_macro_line : int option;
}
type source_range = Clang_ast_t.source_range
type attribute_info = Clang_ast_t.attribute_info = {
  1. ai_pointer : pointer;
  2. ai_source_range : source_range;
}
type attr_tuple = Clang_ast_t.attr_tuple
type comment_info = Clang_ast_t.comment_info = {
  1. ci_parent_pointer : pointer;
  2. ci_source_range : source_range;
}
type specifier_kind = Clang_ast_t.specifier_kind
type stmt_info = Clang_ast_t.stmt_info = {
  1. si_pointer : pointer;
  2. si_source_range : source_range;
}
type tag_kind = Clang_ast_t.tag_kind
type type_ptr = Clang_ast_t.type_ptr
type qual_type = Clang_ast_t.qual_type = {
  1. qt_type_ptr : type_ptr;
  2. qt_is_const : bool;
  3. qt_is_restrict : bool;
  4. qt_is_volatile : bool;
}
type array_type_info = Clang_ast_t.array_type_info = {
  1. arti_element_type : qual_type;
  2. arti_stride : int option;
}
type compound_assign_operator_info = Clang_ast_t.compound_assign_operator_info = {
  1. caoi_lhs_type : qual_type;
  2. caoi_result_type : qual_type;
}
type cxx_delete_expr_info = Clang_ast_t.cxx_delete_expr_info = {
  1. xdei_is_array : bool;
  2. xdei_destroyed_type : qual_type;
}
type decl_ref = Clang_ast_t.decl_ref = {
  1. dr_kind : decl_kind;
  2. dr_decl_pointer : pointer;
  3. dr_name : named_decl_info option;
  4. dr_is_hidden : bool;
  5. dr_qual_type : qual_type option;
}
type cxx_construct_expr_info = Clang_ast_t.cxx_construct_expr_info = {
  1. xcei_decl_ref : decl_ref;
  2. xcei_is_elidable : bool;
  3. xcei_requires_zero_initialization : bool;
  4. xcei_is_copy_constructor : bool;
}
type cxx_ctor_initializer_subject = Clang_ast_t.cxx_ctor_initializer_subject
type decl_ref_expr_info = Clang_ast_t.decl_ref_expr_info = {
  1. drti_decl_ref : decl_ref option;
}
type expr_with_cleanups_info = Clang_ast_t.expr_with_cleanups_info = {
  1. ewci_decl_refs : decl_ref list;
}
type function_type_info = Clang_ast_t.function_type_info = {
  1. fti_return_type : qual_type;
}
type materialize_temporary_expr_info = Clang_ast_t.materialize_temporary_expr_info = - {
  1. mtei_decl_ref : decl_ref option;
}
type member_expr_info = Clang_ast_t.member_expr_info = {
  1. mei_is_arrow : bool;
  2. mei_performs_virtual_dispatch : bool;
  3. mei_name : named_decl_info;
  4. mei_decl_ref : decl_ref;
}
type namespace_decl_info = Clang_ast_t.namespace_decl_info = {
  1. ndi_is_inline : bool;
  2. ndi_original_namespace : decl_ref option;
}
type nested_name_specifier_loc = Clang_ast_t.nested_name_specifier_loc = {
  1. nnsl_kind : specifier_kind;
  2. nnsl_ref : decl_ref option;
}
type namespace_alias_decl_info = Clang_ast_t.namespace_alias_decl_info = {
  1. nadi_namespace_loc : source_location;
  2. nadi_target_name_loc : source_location;
  3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
  4. nadi_namespace : decl_ref;
}
type obj_c_category_decl_info = Clang_ast_t.obj_c_category_decl_info = {
  1. odi_class_interface : decl_ref option;
  2. odi_implementation : decl_ref option;
  3. odi_protocols : decl_ref list;
}
type obj_c_category_impl_decl_info = Clang_ast_t.obj_c_category_impl_decl_info = + {
  1. mtei_decl_ref : decl_ref option;
}
type member_expr_info = Clang_ast_t.member_expr_info = {
  1. mei_is_arrow : bool;
  2. mei_performs_virtual_dispatch : bool;
  3. mei_name : named_decl_info;
  4. mei_decl_ref : decl_ref;
}
type nested_name_specifier_loc = Clang_ast_t.nested_name_specifier_loc = {
  1. nnsl_kind : specifier_kind;
  2. nnsl_ref : decl_ref option;
}
type namespace_alias_decl_info = Clang_ast_t.namespace_alias_decl_info = {
  1. nadi_namespace_loc : source_location;
  2. nadi_target_name_loc : source_location;
  3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
  4. nadi_namespace : decl_ref;
}
type obj_c_category_decl_info = Clang_ast_t.obj_c_category_decl_info = {
  1. odi_class_interface : decl_ref option;
  2. odi_implementation : decl_ref option;
  3. odi_protocols : decl_ref list;
}
type obj_c_category_impl_decl_info = Clang_ast_t.obj_c_category_impl_decl_info = {
  1. ocidi_class_interface : decl_ref option;
  2. ocidi_category_decl : decl_ref option;
}
type obj_c_compatible_alias_decl_info = Clang_ast_t.obj_c_compatible_alias_decl_info = {
  1. ocadi_class_interface : decl_ref option;
}
type obj_c_interface_decl_info = Clang_ast_t.obj_c_interface_decl_info = {
  1. otdi_super : decl_ref option;
  2. otdi_implementation : decl_ref option;
  3. otdi_protocols : decl_ref list;
  4. otdi_known_categories : decl_ref list;
}
type obj_c_ivar_ref_expr_info = Clang_ast_t.obj_c_ivar_ref_expr_info = {
  1. ovrei_decl_ref : decl_ref;
  2. ovrei_pointer : pointer;
  3. ovrei_is_free_ivar : bool;
}
type obj_c_property_decl_info = Clang_ast_t.obj_c_property_decl_info = {
  1. opdi_qual_type : qual_type;
  2. opdi_getter_method : decl_ref option;
  3. opdi_setter_method : decl_ref option;
  4. opdi_ivar_decl : decl_ref option;
  5. opdi_property_control : obj_c_property_control;
  6. opdi_property_attributes : property_attribute list;
}
type obj_c_property_impl_decl_info = Clang_ast_t.obj_c_property_impl_decl_info = - {
  1. opidi_implementation : property_implementation;
  2. opidi_property_decl : decl_ref option;
  3. opidi_ivar_decl : decl_ref option;
}
type obj_c_protocol_decl_info = Clang_ast_t.obj_c_protocol_decl_info = {
  1. opcdi_protocols : decl_ref list;
}
type objc_encode_expr_info = Clang_ast_t.objc_encode_expr_info = {
  1. oeei_qual_type : qual_type;
  2. oeei_raw : string;
}
type objc_object_type_info = Clang_ast_t.objc_object_type_info = {
  1. ooti_base_type : type_ptr;
  2. ooti_protocol_decls_ptr : pointer list;
  3. ooti_type_args : qual_type list;
}
type overload_expr_info = Clang_ast_t.overload_expr_info = {
  1. oei_decls : decl_ref list;
  2. oei_name : declaration_name;
}
type params_type_info = Clang_ast_t.params_type_info = {
  1. pti_params_type : qual_type list;
}
type property_ref_kind = Clang_ast_t.property_ref_kind
type obj_c_property_ref_expr_info = Clang_ast_t.obj_c_property_ref_expr_info = {
  1. oprei_kind : property_ref_kind;
  2. oprei_is_super_receiver : bool;
  3. oprei_is_messaging_getter : bool;
  4. oprei_is_messaging_setter : bool;
}
type receiver_kind = Clang_ast_t.receiver_kind
type obj_c_message_expr_info = Clang_ast_t.obj_c_message_expr_info = {
  1. omei_selector : string;
  2. omei_is_definition_found : bool;
  3. omei_decl_pointer : pointer option;
  4. omei_receiver_kind : receiver_kind;
}
type type_info = Clang_ast_t.type_info = {
  1. ti_pointer : pointer;
  2. ti_desugared_type : type_ptr option;
}
type type_trait_info = Clang_ast_t.type_trait_info = {
  1. xtti_value : bool;
}
type typedef_decl_info = Clang_ast_t.typedef_decl_info = {
  1. tdi_is_module_private : bool;
}
type typedef_type_info = Clang_ast_t.typedef_type_info = {
  1. tti_child_type : qual_type;
  2. tti_decl_ptr : pointer;
}
type c_type = Clang_ast_t.c_type =
  1. | NoneType of type_info
  2. | AdjustedType of type_info * qual_type
  3. | DecayedType of type_info * qual_type
  4. | ConstantArrayType of type_info * array_type_info * int
  5. | DependentSizedArrayType of type_info * array_type_info
  6. | IncompleteArrayType of type_info * array_type_info
  7. | VariableArrayType of type_info * array_type_info * pointer
  8. | AtomicType of type_info * qual_type
  9. | AttributedType of type_info * attr_type_info
  10. | BTFTagAttributedType of type_info
  11. | BitIntType of type_info
  12. | BlockPointerType of type_info * qual_type
  13. | BuiltinType of type_info * builtin_type_kind
  14. | ComplexType of type_info
  15. | DecltypeType of type_info * qual_type
  16. | AutoType of type_info
  17. | DeducedTemplateSpecializationType of type_info
  18. | DependentAddressSpaceType of type_info
  19. | DependentBitIntType of type_info
  20. | DependentNameType of type_info
  21. | DependentSizedExtVectorType of type_info
  22. | DependentTemplateSpecializationType of type_info
  23. | DependentVectorType of type_info
  24. | ElaboratedType of type_info
  25. | FunctionNoProtoType of type_info * function_type_info
  26. | FunctionProtoType of type_info * function_type_info * params_type_info
  27. | InjectedClassNameType of type_info
  28. | MacroQualifiedType of type_info
  29. | ConstantMatrixType of type_info
  30. | DependentSizedMatrixType of type_info
  31. | MemberPointerType of type_info * qual_type
  32. | ObjCObjectPointerType of type_info * qual_type
  33. | ObjCObjectType of type_info * objc_object_type_info
  34. | ObjCInterfaceType of type_info * pointer
  35. | ObjCTypeParamType of type_info
  36. | PackExpansionType of type_info
  37. | ParenType of type_info * qual_type
  38. | PipeType of type_info
  39. | PointerType of type_info * qual_type
  40. | LValueReferenceType of type_info * qual_type
  41. | RValueReferenceType of type_info * qual_type
  42. | SubstTemplateTypeParmPackType of type_info
  43. | SubstTemplateTypeParmType of type_info
  44. | EnumType of type_info * pointer
  45. | RecordType of type_info * pointer
  46. | TemplateSpecializationType of type_info
  47. | TemplateTypeParmType of type_info
  48. | TypeOfExprType of type_info
  49. | TypeOfType of type_info
  50. | TypedefType of type_info * typedef_type_info
  51. | UnaryTransformType of type_info
  52. | UnresolvedUsingType of type_info
  53. | UsingType of type_info
  54. | VectorType of type_info
  55. | ExtVectorType of type_info
type translation_unit_decl_info = Clang_ast_t.translation_unit_decl_info = {
  1. tudi_input_path : source_file;
  2. tudi_input_kind : input_kind;
  3. tudi_integer_type_widths : integer_type_widths;
  4. tudi_is_objc_arc_on : bool;
  5. tudi_types : c_type list;
}
type unary_expr_or_type_trait_kind = Clang_ast_t.unary_expr_or_type_trait_kind
type unary_expr_or_type_trait_expr_info = + {
  1. opidi_implementation : property_implementation;
  2. opidi_property_decl : decl_ref option;
  3. opidi_ivar_decl : decl_ref option;
}
type obj_c_protocol_decl_info = Clang_ast_t.obj_c_protocol_decl_info = {
  1. opcdi_protocols : decl_ref list;
}
type objc_encode_expr_info = Clang_ast_t.objc_encode_expr_info = {
  1. oeei_qual_type : qual_type;
  2. oeei_raw : string;
}
type objc_object_type_info = Clang_ast_t.objc_object_type_info = {
  1. ooti_base_type : type_ptr;
  2. ooti_protocol_decls_ptr : pointer list;
  3. ooti_type_args : qual_type list;
}
type overload_expr_info = Clang_ast_t.overload_expr_info = {
  1. oei_decls : decl_ref list;
  2. oei_name : declaration_name;
}
type params_type_info = Clang_ast_t.params_type_info = {
  1. pti_params_type : qual_type list;
}
type property_ref_kind = Clang_ast_t.property_ref_kind
type obj_c_property_ref_expr_info = Clang_ast_t.obj_c_property_ref_expr_info = {
  1. oprei_kind : property_ref_kind;
  2. oprei_is_super_receiver : bool;
  3. oprei_is_messaging_getter : bool;
  4. oprei_is_messaging_setter : bool;
}
type receiver_kind = Clang_ast_t.receiver_kind
type obj_c_message_expr_info = Clang_ast_t.obj_c_message_expr_info = {
  1. omei_selector : string;
  2. omei_is_definition_found : bool;
  3. omei_decl_pointer : pointer option;
  4. omei_receiver_kind : receiver_kind;
}
type type_info = Clang_ast_t.type_info = {
  1. ti_pointer : pointer;
  2. ti_desugared_type : type_ptr option;
}
type type_trait_info = Clang_ast_t.type_trait_info = {
  1. xtti_value : bool;
}
type typedef_decl_info = Clang_ast_t.typedef_decl_info = {
  1. tdi_is_module_private : bool;
}
type typedef_type_info = Clang_ast_t.typedef_type_info = {
  1. tti_child_type : qual_type;
  2. tti_decl_ptr : pointer;
}
type c_type = Clang_ast_t.c_type =
  1. | NoneType of type_info
  2. | AdjustedType of type_info * qual_type
  3. | DecayedType of type_info * qual_type
  4. | ConstantArrayType of type_info * array_type_info * int
  5. | ArrayParameterType of type_info * array_type_info * int
  6. | DependentSizedArrayType of type_info * array_type_info
  7. | IncompleteArrayType of type_info * array_type_info
  8. | VariableArrayType of type_info * array_type_info * pointer
  9. | AtomicType of type_info * qual_type
  10. | AttributedType of type_info * attr_type_info
  11. | BTFTagAttributedType of type_info
  12. | BitIntType of type_info
  13. | BlockPointerType of type_info * qual_type
  14. | CountAttributedType of type_info
  15. | BuiltinType of type_info * builtin_type_kind
  16. | ComplexType of type_info
  17. | DecltypeType of type_info * qual_type
  18. | AutoType of type_info
  19. | DeducedTemplateSpecializationType of type_info
  20. | DependentAddressSpaceType of type_info
  21. | DependentBitIntType of type_info
  22. | DependentNameType of type_info
  23. | DependentSizedExtVectorType of type_info
  24. | DependentTemplateSpecializationType of type_info
  25. | DependentVectorType of type_info
  26. | ElaboratedType of type_info
  27. | FunctionNoProtoType of type_info * function_type_info
  28. | FunctionProtoType of type_info * function_type_info * params_type_info
  29. | InjectedClassNameType of type_info
  30. | MacroQualifiedType of type_info
  31. | ConstantMatrixType of type_info
  32. | DependentSizedMatrixType of type_info
  33. | MemberPointerType of type_info * qual_type
  34. | ObjCObjectPointerType of type_info * qual_type
  35. | ObjCObjectType of type_info * objc_object_type_info
  36. | ObjCInterfaceType of type_info * pointer
  37. | ObjCTypeParamType of type_info
  38. | PackExpansionType of type_info
  39. | PackIndexingType of type_info
  40. | ParenType of type_info * qual_type
  41. | PipeType of type_info
  42. | PointerType of type_info * qual_type
  43. | LValueReferenceType of type_info * qual_type
  44. | RValueReferenceType of type_info * qual_type
  45. | SubstTemplateTypeParmPackType of type_info
  46. | SubstTemplateTypeParmType of type_info
  47. | EnumType of type_info * pointer
  48. | RecordType of type_info * pointer
  49. | TemplateSpecializationType of type_info
  50. | TemplateTypeParmType of type_info
  51. | TypeOfExprType of type_info
  52. | TypeOfType of type_info
  53. | TypedefType of type_info * typedef_type_info
  54. | UnaryTransformType of type_info
  55. | UnresolvedUsingType of type_info
  56. | UsingType of type_info
  57. | VectorType of type_info
  58. | ExtVectorType of type_info
type translation_unit_decl_info = Clang_ast_t.translation_unit_decl_info = {
  1. tudi_input_path : source_file;
  2. tudi_input_kind : input_kind;
  3. tudi_integer_type_widths : integer_type_widths;
  4. tudi_is_objc_arc_on : bool;
  5. tudi_types : c_type list;
}
type unary_expr_or_type_trait_kind = Clang_ast_t.unary_expr_or_type_trait_kind
type unary_expr_or_type_trait_expr_info = Clang_ast_t.unary_expr_or_type_trait_expr_info = - {
  1. uttei_kind : unary_expr_or_type_trait_kind;
  2. uttei_qual_type : qual_type;
}
type unary_operator_kind = Clang_ast_t.unary_operator_kind
type unary_operator_info = Clang_ast_t.unary_operator_info = {
  1. uoi_kind : unary_operator_kind;
  2. uoi_is_postfix : bool;
}
type unresolved_lookup_expr_info = Clang_ast_t.unresolved_lookup_expr_info = {
  1. ulei_requires_ADL : bool;
  2. ulei_is_overloaded : bool;
  3. ulei_naming_class : decl_ref option;
}
type using_directive_decl_info = Clang_ast_t.using_directive_decl_info = {
  1. uddi_using_location : source_location;
  2. uddi_namespace_key_location : source_location;
  3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
  4. uddi_nominated_namespace : decl_ref option;
}
type value_kind = Clang_ast_t.value_kind
type expr_info = Clang_ast_t.expr_info = {
  1. ei_qual_type : qual_type;
  2. ei_value_kind : value_kind;
  3. ei_object_kind : object_kind;
}
type version_tuple = Clang_ast_t.version_tuple = {
  1. vt_major : int;
  2. vt_minor : int option;
  3. vt_subminor : int option;
  4. vt_build : int option;
}
type availability_attr_info = Clang_ast_t.availability_attr_info = {
  1. aai_platform : string option;
  2. aai_introduced : version_tuple;
}
type visibility_attr = Clang_ast_t.visibility_attr =
  1. | DefaultVisibility
  2. | HiddenVisibility
  3. | ProtectedVisibility
type attribute = Clang_ast_t.attribute
type template_instantiation_arg_info = + {
  1. uttei_kind : unary_expr_or_type_trait_kind;
  2. uttei_qual_type : qual_type;
}
type unary_operator_kind = Clang_ast_t.unary_operator_kind
type unary_operator_info = Clang_ast_t.unary_operator_info = {
  1. uoi_kind : unary_operator_kind;
  2. uoi_is_postfix : bool;
}
type unresolved_lookup_expr_info = Clang_ast_t.unresolved_lookup_expr_info = {
  1. ulei_requires_ADL : bool;
  2. ulei_naming_class : decl_ref option;
}
type using_directive_decl_info = Clang_ast_t.using_directive_decl_info = {
  1. uddi_using_location : source_location;
  2. uddi_namespace_key_location : source_location;
  3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
  4. uddi_nominated_namespace : decl_ref option;
}
type value_kind = Clang_ast_t.value_kind
type expr_info = Clang_ast_t.expr_info = {
  1. ei_qual_type : qual_type;
  2. ei_value_kind : value_kind;
  3. ei_object_kind : object_kind;
}
type version_tuple = Clang_ast_t.version_tuple = {
  1. vt_major : int;
  2. vt_minor : int option;
  3. vt_subminor : int option;
  4. vt_build : int option;
}
type availability_attr_info = Clang_ast_t.availability_attr_info = {
  1. aai_platform : string option;
  2. aai_introduced : version_tuple;
}
type visibility_attr = Clang_ast_t.visibility_attr =
  1. | DefaultVisibility
  2. | HiddenVisibility
  3. | ProtectedVisibility
type attribute = Clang_ast_t.attribute
type template_instantiation_arg_info = Clang_ast_t.template_instantiation_arg_info
type comment = Clang_ast_t.comment =
  1. | VerbatimBlockLineComment of comment_info * comment list
  2. | TextComment of comment_info * comment list
  3. | InlineCommandComment of comment_info * comment list
  4. | HTMLStartTagComment of comment_info * comment list
  5. | HTMLEndTagComment of comment_info * comment list
  6. | FullComment of comment_info * comment list
  7. | ParagraphComment of comment_info * comment list
  8. | BlockCommandComment of comment_info * comment list
  9. | VerbatimLineComment of comment_info * comment list
  10. | VerbatimBlockComment of comment_info * comment list
  11. | TParamCommandComment of comment_info * comment list
  12. | ParamCommandComment of comment_info * comment list
type template_specialization_info = Clang_ast_t.template_specialization_info = {
  1. tsi_template_decl : pointer;
  2. tsi_specialization_args : template_instantiation_arg_info list;
}
type decl_info = Clang_ast_t.decl_info = {
  1. di_pointer : pointer;
  2. di_parent_pointer : pointer option;
  3. di_source_range : source_range;
  4. di_owning_module : string option;
  5. di_is_hidden : bool;
  6. di_is_implicit : bool;
  7. di_is_used : bool;
  8. di_is_this_declaration_referenced : bool;
  9. di_is_invalid_decl : bool;
  10. di_attributes : attribute list;
  11. di_full_comment : comment option;
  12. di_access : access_specifier;
}
type binding_decl_info = Clang_ast_t.binding_decl_info = {
  1. binding_var : var_decl_info option;
  2. bound_decl_type : qual_type option;
}
and block_captured_variable = Clang_ast_t.block_captured_variable = {
  1. bcv_is_by_ref : bool;
  2. bcv_is_nested : bool;
  3. bcv_variable : decl_ref option;
  4. bcv_copy_expr : stmt option;
}
and block_decl_info = Clang_ast_t.block_decl_info = {
  1. bdi_parameters : decl list;
  2. bdi_is_variadic : bool;
  3. bdi_captures_cxx_this : bool;
  4. bdi_captured_variables : block_captured_variable list;
  5. bdi_body : stmt option;
  6. bdi_mangled_name : string;
}
and coreturn_stmt_info = Clang_ast_t.coreturn_stmt_info = {
  1. coret_operand : stmt option;
  2. coret_promise_call : stmt option;
}
and coro_body_stmt_info = Clang_ast_t.coro_body_stmt_info = {
  1. cbs_body : pointer;
  2. cbs_promise_decl_stmt : pointer;
  3. cbs_return_value : stmt;
}
and cxx_catch_stmt_info = Clang_ast_t.cxx_catch_stmt_info = {
  1. xcsi_variable : decl option;
}
and cxx_ctor_initializer = Clang_ast_t.cxx_ctor_initializer = {
  1. xci_subject : cxx_ctor_initializer_subject;
  2. xci_source_range : source_range;
  3. xci_init_expr : stmt option;
}
and cxx_default_expr_info = Clang_ast_t.cxx_default_expr_info = {
  1. xdaei_init_expr : stmt option;
}
and cxx_method_decl_info = Clang_ast_t.cxx_method_decl_info = {
  1. xmdi_is_virtual : bool;
  2. xmdi_is_static : bool;
  3. xmdi_is_const : bool;
  4. xmdi_is_copy_assignment : bool;
  5. xmdi_is_copy_constructor : bool;
  6. xmdi_is_move_constructor : bool;
  7. xmdi_cxx_ctor_initializers : cxx_ctor_initializer list;
  8. xmdi_overriden_methods : decl_ref list;
}
and cxx_record_decl_info = Clang_ast_t.cxx_record_decl_info = {
  1. xrdi_bases : type_ptr list;
  2. xrdi_vbases : type_ptr list;
  3. xrdi_transitive_vbases : type_ptr list;
  4. xrdi_is_pod : bool;
  5. xrdi_is_trivially_copyable : bool;
  6. xrdi_destructor : decl_ref option;
  7. xrdi_lambda_call_operator : decl_ref option;
  8. xrdi_lambda_captures : lambda_capture_info list;
}
and decl = Clang_ast_t.decl =
  1. | TranslationUnitDecl of decl_info * decl list * decl_context_info - * translation_unit_decl_info
  2. | RequiresExprBodyDecl of decl_info
  3. | LinkageSpecDecl of decl_info * decl list * decl_context_info
  4. | ExternCContextDecl of decl_info
  5. | ExportDecl of decl_info
  6. | CapturedDecl of decl_info * decl list * decl_context_info
  7. | BlockDecl of decl_info * block_decl_info
  8. | TopLevelStmtDecl of decl_info
  9. | StaticAssertDecl of decl_info
  10. | PragmaDetectMismatchDecl of decl_info
  11. | PragmaCommentDecl of decl_info
  12. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
  13. | OMPThreadPrivateDecl of decl_info
  14. | OMPRequiresDecl of decl_info
  15. | OMPAllocateDecl of decl_info
  16. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
  17. | ObjCProtocolDecl of decl_info + * translation_unit_decl_info
  18. | TopLevelStmtDecl of decl_info
  19. | RequiresExprBodyDecl of decl_info
  20. | LinkageSpecDecl of decl_info * decl list * decl_context_info
  21. | ExternCContextDecl of decl_info
  22. | ExportDecl of decl_info
  23. | CapturedDecl of decl_info * decl list * decl_context_info
  24. | BlockDecl of decl_info * block_decl_info
  25. | StaticAssertDecl of decl_info
  26. | PragmaDetectMismatchDecl of decl_info
  27. | PragmaCommentDecl of decl_info
  28. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
  29. | OMPThreadPrivateDecl of decl_info
  30. | OMPRequiresDecl of decl_info
  31. | OMPAllocateDecl of decl_info
  32. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
  33. | ObjCProtocolDecl of decl_info * named_decl_info * decl list * decl_context_info @@ -128,7 +128,7 @@ {
    1. oidi_super : decl_ref option;
    2. oidi_class_interface : decl_ref option;
    3. oidi_ivar_initializers : cxx_ctor_initializer list;
    }
and obj_c_message_expr_kind = Clang_ast_t.obj_c_message_expr_kind
and obj_c_method_decl_info = Clang_ast_t.obj_c_method_decl_info = {
  1. omdi_is_instance_method : bool;
  2. omdi_result_type : qual_type;
  3. omdi_is_property_accessor : bool;
  4. omdi_property_decl : decl_ref option;
  5. omdi_parameters : decl list;
  6. omdi_implicit_parameters : decl list;
  7. omdi_is_variadic : bool;
  8. omdi_is_overriding : bool;
  9. omdi_is_optional : bool;
  10. omdi_body : stmt option;
  11. omdi_mangled_name : string;
}
and opaque_value_expr_info = Clang_ast_t.opaque_value_expr_info = {
  1. ovei_source_expr : stmt option;
}
and stmt = Clang_ast_t.stmt =
  1. | WhileStmt of stmt_info * stmt list
  2. | LabelStmt of stmt_info * stmt list * string
  3. | VAArgExpr of stmt_info * stmt list * expr_info
  4. | UnaryOperator of stmt_info * stmt list * expr_info * unary_operator_info
  5. | UnaryExprOrTypeTraitExpr of stmt_info * stmt list * expr_info - * unary_expr_or_type_trait_expr_info
  6. | TypoExpr of stmt_info * stmt list * expr_info
  7. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
  8. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
  9. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
  10. | StringLiteral of stmt_info * stmt list * expr_info * string list
  11. | StmtExpr of stmt_info * stmt list * expr_info
  12. | SourceLocExpr of stmt_info * stmt list * expr_info
  13. | SizeOfPackExpr of stmt_info * stmt list * expr_info
  14. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
  15. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
  16. | RequiresExpr of stmt_info * stmt list * expr_info
  17. | RecoveryExpr of stmt_info * stmt list * expr_info
  18. | PseudoObjectExpr of stmt_info * stmt list * expr_info
  19. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
  20. | ParenListExpr of stmt_info * stmt list * expr_info
  21. | ParenExpr of stmt_info * stmt list * expr_info
  22. | PackExpansionExpr of stmt_info * stmt list * expr_info
  23. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
  24. | UnresolvedLookupExpr of stmt_info + * unary_expr_or_type_trait_expr_info
  25. | TypoExpr of stmt_info * stmt list * expr_info
  26. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
  27. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
  28. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
  29. | StringLiteral of stmt_info * stmt list * expr_info * string list
  30. | StmtExpr of stmt_info * stmt list * expr_info
  31. | SourceLocExpr of stmt_info * stmt list * expr_info
  32. | SizeOfPackExpr of stmt_info * stmt list * expr_info
  33. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
  34. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
  35. | RequiresExpr of stmt_info * stmt list * expr_info
  36. | RecoveryExpr of stmt_info * stmt list * expr_info
  37. | PseudoObjectExpr of stmt_info * stmt list * expr_info
  38. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
  39. | ParenListExpr of stmt_info * stmt list * expr_info
  40. | ParenExpr of stmt_info * stmt list * expr_info
  41. | PackIndexingExpr of stmt_info * stmt list * expr_info
  42. | PackExpansionExpr of stmt_info * stmt list * expr_info
  43. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
  44. | UnresolvedLookupExpr of stmt_info * stmt list * expr_info * overload_expr_info @@ -147,13 +147,13 @@ * obj_c_availability_check_expr_info
  45. | ObjCArrayLiteral of stmt_info * stmt list * expr_info - * obj_c_array_literal_expr_info
  46. | OMPIteratorExpr of stmt_info * stmt list * expr_info
  47. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
  48. | OMPArraySectionExpr of stmt_info * stmt list * expr_info
  49. | NoInitExpr of stmt_info * stmt list * expr_info
  50. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
  51. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
  52. | MaterializeTemporaryExpr of stmt_info + * obj_c_array_literal_expr_info
  53. | OMPIteratorExpr of stmt_info * stmt list * expr_info
  54. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
  55. | NoInitExpr of stmt_info * stmt list * expr_info
  56. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
  57. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
  58. | MaterializeTemporaryExpr of stmt_info * stmt list * expr_info * materialize_temporary_expr_info
  59. | MSPropertySubscriptExpr of stmt_info * stmt list * expr_info
  60. | MSPropertyRefExpr of stmt_info * stmt list * expr_info
  61. | LambdaExpr of stmt_info * stmt list * expr_info * lambda_expr_info
  62. | IntegerLiteral of stmt_info * stmt list * expr_info * integer_literal_info
  63. | InitListExpr of stmt_info * stmt list * expr_info
  64. | ImplicitValueInitExpr of stmt_info * stmt list * expr_info
  65. | ImaginaryLiteral of stmt_info * stmt list * expr_info
  66. | GenericSelectionExpr of stmt_info * stmt list * expr_info - * generic_selection_info
  67. | GNUNullExpr of stmt_info * stmt list * expr_info
  68. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
  69. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
  70. | ConstantExpr of stmt_info * stmt list * expr_info
  71. | FloatingLiteral of stmt_info * stmt list * expr_info * string
  72. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
  73. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
  74. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
  75. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
  76. | DesignatedInitExpr of stmt_info * stmt list * expr_info
  77. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
  78. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
  79. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
  80. | CoyieldExpr of stmt_info * stmt list * expr_info
  81. | CoawaitExpr of stmt_info * stmt list * expr_info
  82. | ConvertVectorExpr of stmt_info * stmt list * expr_info
  83. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
  84. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
  85. | ChooseExpr of stmt_info * stmt list * expr_info
  86. | CharacterLiteral of stmt_info * stmt list * expr_info * int
  87. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
  88. | ObjCBridgedCastExpr of stmt_info + * generic_selection_info
  89. | GNUNullExpr of stmt_info * stmt list * expr_info
  90. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
  91. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
  92. | ConstantExpr of stmt_info * stmt list * expr_info
  93. | FloatingLiteral of stmt_info * stmt list * expr_info * string
  94. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
  95. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
  96. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
  97. | EmbedExpr of stmt_info * stmt list * expr_info
  98. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
  99. | DesignatedInitExpr of stmt_info * stmt list * expr_info
  100. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
  101. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
  102. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
  103. | CoyieldExpr of stmt_info * stmt list * expr_info
  104. | CoawaitExpr of stmt_info * stmt list * expr_info
  105. | ConvertVectorExpr of stmt_info * stmt list * expr_info
  106. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
  107. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
  108. | ChooseExpr of stmt_info * stmt list * expr_info
  109. | CharacterLiteral of stmt_info * stmt list * expr_info * int
  110. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
  111. | ObjCBridgedCastExpr of stmt_info * stmt list * expr_info * cast_expr_info @@ -208,7 +208,7 @@ * stmt list * expr_info * binary_operator_info - * compound_assign_operator_info
  112. | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
  113. | AsTypeExpr of stmt_info * stmt list * expr_info
  114. | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
  115. | ArraySubscriptExpr of stmt_info * stmt list * expr_info
  116. | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
  117. | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
  118. | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
  119. | ConditionalOperator of stmt_info * stmt list * expr_info
  120. | BinaryConditionalOperator of stmt_info * stmt list * expr_info
  121. | AttributedStmt of stmt_info * stmt list * attribute list
  122. | SwitchStmt of stmt_info * stmt list * switch_stmt_info
  123. | DefaultStmt of stmt_info * stmt list
  124. | CaseStmt of stmt_info * stmt list
  125. | SEHTryStmt of stmt_info * stmt list
  126. | SEHLeaveStmt of stmt_info * stmt list
  127. | SEHFinallyStmt of stmt_info * stmt list
  128. | SEHExceptStmt of stmt_info * stmt list
  129. | ReturnStmt of stmt_info * stmt list
  130. | ObjCForCollectionStmt of stmt_info * stmt list
  131. | ObjCAutoreleasePoolStmt of stmt_info * stmt list
  132. | ObjCAtTryStmt of stmt_info * stmt list
  133. | ObjCAtThrowStmt of stmt_info * stmt list
  134. | ObjCAtSynchronizedStmt of stmt_info * stmt list
  135. | ObjCAtFinallyStmt of stmt_info * stmt list
  136. | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
  137. | OMPTeamsDirective of stmt_info * stmt list
  138. | OMPTaskyieldDirective of stmt_info * stmt list
  139. | OMPTaskwaitDirective of stmt_info * stmt list
  140. | OMPTaskgroupDirective of stmt_info * stmt list
  141. | OMPTaskDirective of stmt_info * stmt list
  142. | OMPTargetUpdateDirective of stmt_info * stmt list
  143. | OMPTargetTeamsDirective of stmt_info * stmt list
  144. | OMPTargetParallelForDirective of stmt_info * stmt list
  145. | OMPTargetParallelDirective of stmt_info * stmt list
  146. | OMPTargetExitDataDirective of stmt_info * stmt list
  147. | OMPTargetEnterDataDirective of stmt_info * stmt list
  148. | OMPTargetDirective of stmt_info * stmt list
  149. | OMPTargetDataDirective of stmt_info * stmt list
  150. | OMPSingleDirective of stmt_info * stmt list
  151. | OMPSectionsDirective of stmt_info * stmt list
  152. | OMPSectionDirective of stmt_info * stmt list
  153. | OMPScopeDirective of stmt_info * stmt list
  154. | OMPScanDirective of stmt_info * stmt list
  155. | OMPParallelSectionsDirective of stmt_info * stmt list
  156. | OMPParallelMasterDirective of stmt_info * stmt list
  157. | OMPParallelMaskedDirective of stmt_info * stmt list
  158. | OMPParallelDirective of stmt_info * stmt list
  159. | OMPOrderedDirective of stmt_info * stmt list
  160. | OMPMetaDirective of stmt_info * stmt list
  161. | OMPMasterDirective of stmt_info * stmt list
  162. | OMPMaskedDirective of stmt_info * stmt list
  163. | OMPUnrollDirective of stmt_info * stmt list
  164. | OMPTileDirective of stmt_info * stmt list
  165. | OMPTeamsGenericLoopDirective of stmt_info * stmt list
  166. | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
  167. | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  168. | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
  169. | OMPTeamsDistributeDirective of stmt_info * stmt list
  170. | OMPTaskLoopSimdDirective of stmt_info * stmt list
  171. | OMPTaskLoopDirective of stmt_info * stmt list
  172. | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
  173. | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
  174. | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  175. | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
  176. | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
  177. | OMPTargetSimdDirective of stmt_info * stmt list
  178. | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
  179. | OMPTargetParallelForSimdDirective of stmt_info * stmt list
  180. | OMPSimdDirective of stmt_info * stmt list
  181. | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
  182. | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
  183. | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
  184. | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
  185. | OMPParallelGenericLoopDirective of stmt_info * stmt list
  186. | OMPParallelForSimdDirective of stmt_info * stmt list
  187. | OMPParallelForDirective of stmt_info * stmt list
  188. | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
  189. | OMPMasterTaskLoopDirective of stmt_info * stmt list
  190. | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
  191. | OMPMaskedTaskLoopDirective of stmt_info * stmt list
  192. | OMPGenericLoopDirective of stmt_info * stmt list
  193. | OMPForSimdDirective of stmt_info * stmt list
  194. | OMPForDirective of stmt_info * stmt list
  195. | OMPDistributeSimdDirective of stmt_info * stmt list
  196. | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
  197. | OMPDistributeParallelForDirective of stmt_info * stmt list
  198. | OMPDistributeDirective of stmt_info * stmt list
  199. | OMPInteropDirective of stmt_info * stmt list
  200. | OMPFlushDirective of stmt_info * stmt list
  201. | OMPErrorDirective of stmt_info * stmt list
  202. | OMPDispatchDirective of stmt_info * stmt list
  203. | OMPDepobjDirective of stmt_info * stmt list
  204. | OMPCriticalDirective of stmt_info * stmt list
  205. | OMPCancellationPointDirective of stmt_info * stmt list
  206. | OMPCancelDirective of stmt_info * stmt list
  207. | OMPBarrierDirective of stmt_info * stmt list
  208. | OMPAtomicDirective of stmt_info * stmt list
  209. | OMPCanonicalLoop of stmt_info * stmt list
  210. | NullStmt of stmt_info * stmt list
  211. | MSDependentExistsStmt of stmt_info * stmt list
  212. | IndirectGotoStmt of stmt_info * stmt list
  213. | IfStmt of stmt_info * stmt list * if_stmt_info
  214. | GotoStmt of stmt_info * stmt list * goto_stmt_info
  215. | ForStmt of stmt_info * stmt list
  216. | DoStmt of stmt_info * stmt list
  217. | DeclStmt of stmt_info * stmt list * decl list
  218. | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
  219. | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
  220. | ContinueStmt of stmt_info * stmt list
  221. | CompoundStmt of stmt_info * stmt list
  222. | CapturedStmt of stmt_info * stmt list
  223. | CXXTryStmt of stmt_info * stmt list
  224. | CXXForRangeStmt of stmt_info * stmt list
  225. | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
  226. | BreakStmt of stmt_info * stmt list
  227. | MSAsmStmt of stmt_info * stmt list
  228. | GCCAsmStmt of stmt_info * stmt list
and switch_stmt_info = Clang_ast_t.switch_stmt_info = {
  1. ssi_init : pointer option;
  2. ssi_cond_var : stmt option;
  3. ssi_cond : pointer;
  4. ssi_body : pointer;
  5. ssi_is_all_enum_cases_covered : bool;
}
and template_decl_info = Clang_ast_t.template_decl_info = {
  1. tdi_specializations : decl list;
}
and var_decl_info = Clang_ast_t.var_decl_info = {
  1. vdi_is_global : bool;
  2. vdi_is_extern : bool;
  3. vdi_is_static : bool;
  4. vdi_is_static_local : bool;
  5. vdi_is_static_data_member : bool;
  6. vdi_is_constexpr : bool;
  7. vdi_is_init_ice : bool;
  8. vdi_init_expr : stmt option;
  9. vdi_is_init_expr_cxx11_constant : bool;
  10. vdi_parm_index_in_function : int option;
}
type lookup = Clang_ast_t.lookup = {
  1. lup_decl_name : string;
  2. lup_decl_refs : decl_ref list;
}
type lookups = Clang_ast_t.lookups = {
  1. lups_decl_ref : decl_ref;
  2. lups_primary_context_pointer : pointer option;
  3. lups_lookups : lookup list;
  4. lups_has_undeserialized_decls : bool;
}
val access_specifier_tag : Bi_io.node_tag

Tag used by the writers for type access_specifier. Readers may support more than just this tag.

val write_untagged_access_specifier : Bi_outbuf.t -> access_specifier -> unit

Output an untagged biniou value of type access_specifier.

val write_access_specifier : Bi_outbuf.t -> access_specifier -> unit

Output a biniou value of type access_specifier.

val string_of_access_specifier : ?len:int -> access_specifier -> string

Serialize a value of type access_specifier into a biniou string.

val get_access_specifier_reader : + * compound_assign_operator_info
  • | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
  • | AsTypeExpr of stmt_info * stmt list * expr_info
  • | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
  • | ArraySubscriptExpr of stmt_info * stmt list * expr_info
  • | ArraySectionExpr of stmt_info * stmt list * expr_info
  • | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
  • | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
  • | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
  • | ConditionalOperator of stmt_info * stmt list * expr_info
  • | BinaryConditionalOperator of stmt_info * stmt list * expr_info
  • | AttributedStmt of stmt_info * stmt list * attribute list
  • | SwitchStmt of stmt_info * stmt list * switch_stmt_info
  • | DefaultStmt of stmt_info * stmt list
  • | CaseStmt of stmt_info * stmt list
  • | SEHTryStmt of stmt_info * stmt list
  • | SEHLeaveStmt of stmt_info * stmt list
  • | SEHFinallyStmt of stmt_info * stmt list
  • | SEHExceptStmt of stmt_info * stmt list
  • | ReturnStmt of stmt_info * stmt list
  • | OpenACCLoopConstruct of stmt_info * stmt list
  • | OpenACCComputeConstruct of stmt_info * stmt list
  • | ObjCForCollectionStmt of stmt_info * stmt list
  • | ObjCAutoreleasePoolStmt of stmt_info * stmt list
  • | ObjCAtTryStmt of stmt_info * stmt list
  • | ObjCAtThrowStmt of stmt_info * stmt list
  • | ObjCAtSynchronizedStmt of stmt_info * stmt list
  • | ObjCAtFinallyStmt of stmt_info * stmt list
  • | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
  • | OMPTeamsDirective of stmt_info * stmt list
  • | OMPTaskyieldDirective of stmt_info * stmt list
  • | OMPTaskwaitDirective of stmt_info * stmt list
  • | OMPTaskgroupDirective of stmt_info * stmt list
  • | OMPTaskDirective of stmt_info * stmt list
  • | OMPTargetUpdateDirective of stmt_info * stmt list
  • | OMPTargetTeamsDirective of stmt_info * stmt list
  • | OMPTargetParallelForDirective of stmt_info * stmt list
  • | OMPTargetParallelDirective of stmt_info * stmt list
  • | OMPTargetExitDataDirective of stmt_info * stmt list
  • | OMPTargetEnterDataDirective of stmt_info * stmt list
  • | OMPTargetDirective of stmt_info * stmt list
  • | OMPTargetDataDirective of stmt_info * stmt list
  • | OMPSingleDirective of stmt_info * stmt list
  • | OMPSectionsDirective of stmt_info * stmt list
  • | OMPSectionDirective of stmt_info * stmt list
  • | OMPScopeDirective of stmt_info * stmt list
  • | OMPScanDirective of stmt_info * stmt list
  • | OMPParallelSectionsDirective of stmt_info * stmt list
  • | OMPParallelMasterDirective of stmt_info * stmt list
  • | OMPParallelMaskedDirective of stmt_info * stmt list
  • | OMPParallelDirective of stmt_info * stmt list
  • | OMPOrderedDirective of stmt_info * stmt list
  • | OMPMetaDirective of stmt_info * stmt list
  • | OMPMasterDirective of stmt_info * stmt list
  • | OMPMaskedDirective of stmt_info * stmt list
  • | OMPUnrollDirective of stmt_info * stmt list
  • | OMPTileDirective of stmt_info * stmt list
  • | OMPReverseDirective of stmt_info * stmt list
  • | OMPInterchangeDirective of stmt_info * stmt list
  • | OMPTeamsGenericLoopDirective of stmt_info * stmt list
  • | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
  • | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
  • | OMPTeamsDistributeDirective of stmt_info * stmt list
  • | OMPTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPTaskLoopDirective of stmt_info * stmt list
  • | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
  • | OMPTargetSimdDirective of stmt_info * stmt list
  • | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
  • | OMPTargetParallelForSimdDirective of stmt_info * stmt list
  • | OMPSimdDirective of stmt_info * stmt list
  • | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
  • | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
  • | OMPParallelGenericLoopDirective of stmt_info * stmt list
  • | OMPParallelForSimdDirective of stmt_info * stmt list
  • | OMPParallelForDirective of stmt_info * stmt list
  • | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPMasterTaskLoopDirective of stmt_info * stmt list
  • | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPMaskedTaskLoopDirective of stmt_info * stmt list
  • | OMPGenericLoopDirective of stmt_info * stmt list
  • | OMPForSimdDirective of stmt_info * stmt list
  • | OMPForDirective of stmt_info * stmt list
  • | OMPDistributeSimdDirective of stmt_info * stmt list
  • | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPDistributeParallelForDirective of stmt_info * stmt list
  • | OMPDistributeDirective of stmt_info * stmt list
  • | OMPInteropDirective of stmt_info * stmt list
  • | OMPFlushDirective of stmt_info * stmt list
  • | OMPErrorDirective of stmt_info * stmt list
  • | OMPDispatchDirective of stmt_info * stmt list
  • | OMPDepobjDirective of stmt_info * stmt list
  • | OMPCriticalDirective of stmt_info * stmt list
  • | OMPCancellationPointDirective of stmt_info * stmt list
  • | OMPCancelDirective of stmt_info * stmt list
  • | OMPBarrierDirective of stmt_info * stmt list
  • | OMPAtomicDirective of stmt_info * stmt list
  • | OMPCanonicalLoop of stmt_info * stmt list
  • | NullStmt of stmt_info * stmt list
  • | MSDependentExistsStmt of stmt_info * stmt list
  • | IndirectGotoStmt of stmt_info * stmt list
  • | IfStmt of stmt_info * stmt list * if_stmt_info
  • | GotoStmt of stmt_info * stmt list * goto_stmt_info
  • | ForStmt of stmt_info * stmt list
  • | DoStmt of stmt_info * stmt list
  • | DeclStmt of stmt_info * stmt list * decl list
  • | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
  • | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
  • | ContinueStmt of stmt_info * stmt list
  • | CompoundStmt of stmt_info * stmt list
  • | CapturedStmt of stmt_info * stmt list
  • | CXXTryStmt of stmt_info * stmt list
  • | CXXForRangeStmt of stmt_info * stmt list
  • | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
  • | BreakStmt of stmt_info * stmt list
  • | MSAsmStmt of stmt_info * stmt list
  • | GCCAsmStmt of stmt_info * stmt list
  • and switch_stmt_info = Clang_ast_t.switch_stmt_info = {
    1. ssi_init : pointer option;
    2. ssi_cond_var : stmt option;
    3. ssi_cond : pointer;
    4. ssi_body : pointer;
    5. ssi_is_all_enum_cases_covered : bool;
    }
    and template_decl_info = Clang_ast_t.template_decl_info = {
    1. tdi_specializations : decl list;
    }
    and var_decl_info = Clang_ast_t.var_decl_info = {
    1. vdi_is_global : bool;
    2. vdi_is_extern : bool;
    3. vdi_is_static : bool;
    4. vdi_is_static_local : bool;
    5. vdi_is_static_data_member : bool;
    6. vdi_is_constexpr : bool;
    7. vdi_is_init_ice : bool;
    8. vdi_init_expr : stmt option;
    9. vdi_is_init_expr_cxx11_constant : bool;
    10. vdi_parm_index_in_function : int option;
    }
    type lookup = Clang_ast_t.lookup = {
    1. lup_decl_name : string;
    2. lup_decl_refs : decl_ref list;
    }
    type lookups = Clang_ast_t.lookups = {
    1. lups_decl_ref : decl_ref;
    2. lups_primary_context_pointer : pointer option;
    3. lups_lookups : lookup list;
    4. lups_has_undeserialized_decls : bool;
    }
    val access_specifier_tag : Bi_io.node_tag

    Tag used by the writers for type access_specifier. Readers may support more than just this tag.

    val write_untagged_access_specifier : Bi_outbuf.t -> access_specifier -> unit

    Output an untagged biniou value of type access_specifier.

    val write_access_specifier : Bi_outbuf.t -> access_specifier -> unit

    Output a biniou value of type access_specifier.

    val string_of_access_specifier : ?len:int -> access_specifier -> string

    Serialize a value of type access_specifier into a biniou string.

    val get_access_specifier_reader : Bi_io.node_tag -> Bi_inbuf.t -> access_specifier

    Return a function that reads an untagged biniou value of type access_specifier.

    val read_access_specifier : Bi_inbuf.t -> access_specifier

    Input a tagged biniou value of type access_specifier.

    val access_specifier_of_string : ?pos:int -> string -> access_specifier

    Deserialize a biniou value of type access_specifier.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val atomic_expr_kind_tag : Bi_io.node_tag

    Tag used by the writers for type atomic_expr_kind. Readers may support more than just this tag.

    val write_untagged_atomic_expr_kind : Bi_outbuf.t -> atomic_expr_kind -> unit

    Output an untagged biniou value of type atomic_expr_kind.

    val write_atomic_expr_kind : Bi_outbuf.t -> atomic_expr_kind -> unit

    Output a biniou value of type atomic_expr_kind.

    val string_of_atomic_expr_kind : ?len:int -> atomic_expr_kind -> string

    Serialize a value of type atomic_expr_kind into a biniou string.

    val get_atomic_expr_kind_reader : @@ -295,7 +295,13 @@ lambda_capture_kind

    Return a function that reads an untagged biniou value of type lambda_capture_kind.

    val read_lambda_capture_kind : Bi_inbuf.t -> lambda_capture_kind

    Input a tagged biniou value of type lambda_capture_kind.

    val lambda_capture_kind_of_string : ?pos:int -> string -> lambda_capture_kind

    Deserialize a biniou value of type lambda_capture_kind.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val named_decl_info_tag : Bi_io.node_tag

    Tag used by the writers for type named_decl_info. Readers may support more than just this tag.

    val write_untagged_named_decl_info : Bi_outbuf.t -> named_decl_info -> unit

    Output an untagged biniou value of type named_decl_info.

    val write_named_decl_info : Bi_outbuf.t -> named_decl_info -> unit

    Output a biniou value of type named_decl_info.

    val string_of_named_decl_info : ?len:int -> named_decl_info -> string

    Serialize a value of type named_decl_info into a biniou string.

    val get_named_decl_info_reader : Bi_io.node_tag -> Bi_inbuf.t -> - named_decl_info

    Return a function that reads an untagged biniou value of type named_decl_info.

    val read_named_decl_info : Bi_inbuf.t -> named_decl_info

    Input a tagged biniou value of type named_decl_info.

    val named_decl_info_of_string : ?pos:int -> string -> named_decl_info

    Deserialize a biniou value of type named_decl_info.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val obj_c_access_control_tag : Bi_io.node_tag

    Tag used by the writers for type obj_c_access_control. Readers may support more than just this tag.

    val write_untagged_obj_c_access_control : + named_decl_info

    Return a function that reads an untagged biniou value of type named_decl_info.

    val read_named_decl_info : Bi_inbuf.t -> named_decl_info

    Input a tagged biniou value of type named_decl_info.

    val named_decl_info_of_string : ?pos:int -> string -> named_decl_info

    Deserialize a biniou value of type named_decl_info.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val namespace_decl_info_tag : Bi_io.node_tag

    Tag used by the writers for type namespace_decl_info. Readers may support more than just this tag.

    val write_untagged_namespace_decl_info : + Bi_outbuf.t -> + namespace_decl_info -> + unit

    Output an untagged biniou value of type namespace_decl_info.

    val write_namespace_decl_info : Bi_outbuf.t -> namespace_decl_info -> unit

    Output a biniou value of type namespace_decl_info.

    val string_of_namespace_decl_info : ?len:int -> namespace_decl_info -> string

    Serialize a value of type namespace_decl_info into a biniou string.

    val get_namespace_decl_info_reader : + Bi_io.node_tag -> + Bi_inbuf.t -> + namespace_decl_info

    Return a function that reads an untagged biniou value of type namespace_decl_info.

    val read_namespace_decl_info : Bi_inbuf.t -> namespace_decl_info

    Input a tagged biniou value of type namespace_decl_info.

    val namespace_decl_info_of_string : ?pos:int -> string -> namespace_decl_info

    Deserialize a biniou value of type namespace_decl_info.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val obj_c_access_control_tag : Bi_io.node_tag

    Tag used by the writers for type obj_c_access_control. Readers may support more than just this tag.

    val write_untagged_obj_c_access_control : Bi_outbuf.t -> obj_c_access_control -> unit

    Output an untagged biniou value of type obj_c_access_control.

    val write_obj_c_access_control : Bi_outbuf.t -> obj_c_access_control -> unit

    Output a biniou value of type obj_c_access_control.

    val string_of_obj_c_access_control : ?len:int -> obj_c_access_control -> string

    Serialize a value of type obj_c_access_control into a biniou string.

    val get_obj_c_access_control_reader : @@ -628,13 +634,7 @@ materialize_temporary_expr_info

    Deserialize a biniou value of type materialize_temporary_expr_info.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val member_expr_info_tag : Bi_io.node_tag

    Tag used by the writers for type member_expr_info. Readers may support more than just this tag.

    val write_untagged_member_expr_info : Bi_outbuf.t -> member_expr_info -> unit

    Output an untagged biniou value of type member_expr_info.

    val write_member_expr_info : Bi_outbuf.t -> member_expr_info -> unit

    Output a biniou value of type member_expr_info.

    val string_of_member_expr_info : ?len:int -> member_expr_info -> string

    Serialize a value of type member_expr_info into a biniou string.

    val get_member_expr_info_reader : Bi_io.node_tag -> Bi_inbuf.t -> - member_expr_info

    Return a function that reads an untagged biniou value of type member_expr_info.

    val read_member_expr_info : Bi_inbuf.t -> member_expr_info

    Input a tagged biniou value of type member_expr_info.

    val member_expr_info_of_string : ?pos:int -> string -> member_expr_info

    Deserialize a biniou value of type member_expr_info.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val namespace_decl_info_tag : Bi_io.node_tag

    Tag used by the writers for type namespace_decl_info. Readers may support more than just this tag.

    val write_untagged_namespace_decl_info : - Bi_outbuf.t -> - namespace_decl_info -> - unit

    Output an untagged biniou value of type namespace_decl_info.

    val write_namespace_decl_info : Bi_outbuf.t -> namespace_decl_info -> unit

    Output a biniou value of type namespace_decl_info.

    val string_of_namespace_decl_info : ?len:int -> namespace_decl_info -> string

    Serialize a value of type namespace_decl_info into a biniou string.

    val get_namespace_decl_info_reader : - Bi_io.node_tag -> - Bi_inbuf.t -> - namespace_decl_info

    Return a function that reads an untagged biniou value of type namespace_decl_info.

    val read_namespace_decl_info : Bi_inbuf.t -> namespace_decl_info

    Input a tagged biniou value of type namespace_decl_info.

    val namespace_decl_info_of_string : ?pos:int -> string -> namespace_decl_info

    Deserialize a biniou value of type namespace_decl_info.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val nested_name_specifier_loc_tag : Bi_io.node_tag

    Tag used by the writers for type nested_name_specifier_loc. Readers may support more than just this tag.

    val write_untagged_nested_name_specifier_loc : + member_expr_info

    Return a function that reads an untagged biniou value of type member_expr_info.

    val read_member_expr_info : Bi_inbuf.t -> member_expr_info

    Input a tagged biniou value of type member_expr_info.

    val member_expr_info_of_string : ?pos:int -> string -> member_expr_info

    Deserialize a biniou value of type member_expr_info.

    • parameter pos

      specifies the position where reading starts. Default: 0.

    val nested_name_specifier_loc_tag : Bi_io.node_tag

    Tag used by the writers for type nested_name_specifier_loc. Readers may support more than just this tag.

    val write_untagged_nested_name_specifier_loc : Bi_outbuf.t -> nested_name_specifier_loc -> unit

    Output an untagged biniou value of type nested_name_specifier_loc.

    val write_nested_name_specifier_loc : diff --git a/website/static/odoc/next/infer/ATDGenerated/Clang_ast_j/index.html b/website/static/odoc/next/infer/ATDGenerated/Clang_ast_j/index.html index 16e57fb806b..92693cfd278 100644 --- a/website/static/odoc/next/infer/ATDGenerated/Clang_ast_j/index.html +++ b/website/static/odoc/next/infer/ATDGenerated/Clang_ast_j/index.html @@ -1,5 +1,5 @@ -Clang_ast_j (infer.ATDGenerated.Clang_ast_j)

    Module ATDGenerated.Clang_ast_j

    type access_specifier = Clang_ast_t.access_specifier
    type atomic_expr_kind = Clang_ast_t.atomic_expr_kind
    type atomic_expr_info = Clang_ast_t.atomic_expr_info = {
    1. aei_kind : atomic_expr_kind;
    }
    type attribute_kind = Clang_ast_t.attribute_kind =
    1. | AddressSpaceAttrKind
    2. | AnnotateTypeAttrKind
    3. | ArmInAttrKind
    4. | ArmInOutAttrKind
    5. | ArmMveStrictPolymorphismAttrKind
    6. | ArmOutAttrKind
    7. | ArmPreservesAttrKind
    8. | ArmStreamingAttrKind
    9. | ArmStreamingCompatibleAttrKind
    10. | BTFTypeTagAttrKind
    11. | CmseNSCallAttrKind
    12. | HLSLGroupSharedAddressSpaceAttrKind
    13. | HLSLParamModifierAttrKind
    14. | NoDerefAttrKind
    15. | ObjCGCAttrKind
    16. | ObjCInertUnsafeUnretainedAttrKind
    17. | ObjCKindOfAttrKind
    18. | OpenCLConstantAddressSpaceAttrKind
    19. | OpenCLGenericAddressSpaceAttrKind
    20. | OpenCLGlobalAddressSpaceAttrKind
    21. | OpenCLGlobalDeviceAddressSpaceAttrKind
    22. | OpenCLGlobalHostAddressSpaceAttrKind
    23. | OpenCLLocalAddressSpaceAttrKind
    24. | OpenCLPrivateAddressSpaceAttrKind
    25. | Ptr32AttrKind
    26. | Ptr64AttrKind
    27. | SPtrAttrKind
    28. | TypeNonNullAttrKind
    29. | TypeNullUnspecifiedAttrKind
    30. | TypeNullableAttrKind
    31. | TypeNullableResultAttrKind
    32. | UPtrAttrKind
    33. | WebAssemblyFuncrefAttrKind
    34. | CodeAlignAttrKind
    35. | FallThroughAttrKind
    36. | LikelyAttrKind
    37. | MustTailAttrKind
    38. | OpenCLUnrollHintAttrKind
    39. | UnlikelyAttrKind
    40. | AlwaysInlineAttrKind
    41. | NoInlineAttrKind
    42. | NoMergeAttrKind
    43. | SuppressAttrKind
    44. | AArch64SVEPcsAttrKind
    45. | AArch64VectorPcsAttrKind
    46. | AMDGPUKernelCallAttrKind
    47. | AcquireHandleAttrKind
    48. | AnyX86NoCfCheckAttrKind
    49. | CDeclAttrKind
    50. | FastCallAttrKind
    51. | IntelOclBiccAttrKind
    52. | LifetimeBoundAttrKind
    53. | M68kRTDAttrKind
    54. | MSABIAttrKind
    55. | NSReturnsRetainedAttrKind
    56. | ObjCOwnershipAttrKind
    57. | PascalAttrKind
    58. | PcsAttrKind
    59. | PreserveAllAttrKind
    60. | PreserveMostAttrKind
    61. | RegCallAttrKind
    62. | StdCallAttrKind
    63. | SwiftAsyncCallAttrKind
    64. | SwiftCallAttrKind
    65. | SysVABIAttrKind
    66. | ThisCallAttrKind
    67. | VectorCallAttrKind
    68. | SwiftAsyncContextAttrKind
    69. | SwiftContextAttrKind
    70. | SwiftErrorResultAttrKind
    71. | SwiftIndirectResultAttrKind
    72. | AnnotateAttrKind
    73. | CFConsumedAttrKind
    74. | CarriesDependencyAttrKind
    75. | NSConsumedAttrKind
    76. | NonNullAttrKind
    77. | OSConsumedAttrKind
    78. | PassObjectSizeAttrKind
    79. | ReleaseHandleAttrKind
    80. | UseHandleAttrKind
    81. | HLSLSV_DispatchThreadIDAttrKind
    82. | HLSLSV_GroupIndexAttrKind
    83. | AMDGPUFlatWorkGroupSizeAttrKind
    84. | AMDGPUNumSGPRAttrKind
    85. | AMDGPUNumVGPRAttrKind
    86. | AMDGPUWavesPerEUAttrKind
    87. | ARMInterruptAttrKind
    88. | AVRInterruptAttrKind
    89. | AVRSignalAttrKind
    90. | AcquireCapabilityAttrKind
    91. | AcquiredAfterAttrKind
    92. | AcquiredBeforeAttrKind
    93. | AlignMac68kAttrKind
    94. | AlignNaturalAttrKind
    95. | AlignedAttrKind
    96. | AllocAlignAttrKind
    97. | AllocSizeAttrKind
    98. | AlwaysDestroyAttrKind
    99. | AnalyzerNoReturnAttrKind
    100. | AnyX86InterruptAttrKind
    101. | AnyX86NoCallerSavedRegistersAttrKind
    102. | ArcWeakrefUnavailableAttrKind
    103. | ArgumentWithTypeTagAttrKind
    104. | ArmBuiltinAliasAttrKind
    105. | ArmLocallyStreamingAttrKind
    106. | ArmNewAttrKind
    107. | ArtificialAttrKind
    108. | AsmLabelAttrKind
    109. | AssertCapabilityAttrKind
    110. | AssertExclusiveLockAttrKind
    111. | AssertSharedLockAttrKind
    112. | AssumeAlignedAttrKind
    113. | AssumptionAttrKind
    114. | AvailabilityAttrKind
    115. | AvailableOnlyInDefaultEvalMethodAttrKind
    116. | BPFPreserveAccessIndexAttrKind
    117. | BPFPreserveStaticOffsetAttrKind
    118. | BTFDeclTagAttrKind
    119. | BlocksAttrKind
    120. | BuiltinAttrKind
    121. | C11NoReturnAttrKind
    122. | CFAuditedTransferAttrKind
    123. | CFGuardAttrKind
    124. | CFICanonicalJumpTableAttrKind
    125. | CFReturnsNotRetainedAttrKind
    126. | CFReturnsRetainedAttrKind
    127. | CFUnknownTransferAttrKind
    128. | CPUDispatchAttrKind
    129. | CPUSpecificAttrKind
    130. | CUDAConstantAttrKind
    131. | CUDADeviceAttrKind
    132. | CUDADeviceBuiltinSurfaceTypeAttrKind
    133. | CUDADeviceBuiltinTextureTypeAttrKind
    134. | CUDAGlobalAttrKind
    135. | CUDAHostAttrKind
    136. | CUDAInvalidTargetAttrKind
    137. | CUDALaunchBoundsAttrKind
    138. | CUDASharedAttrKind
    139. | CXX11NoReturnAttrKind
    140. | CallableWhenAttrKind
    141. | CallbackAttrKind
    142. | CapabilityAttrKind
    143. | CapturedRecordAttrKind
    144. | CleanupAttrKind
    145. | CmseNSEntryAttrKind
    146. | CodeModelAttrKind
    147. | CodeSegAttrKind
    148. | ColdAttrKind
    149. | CommonAttrKind
    150. | ConstAttrKind
    151. | ConstInitAttrKind
    152. | ConstructorAttrKind
    153. | ConsumableAttrKind
    154. | ConsumableAutoCastAttrKind
    155. | ConsumableSetOnReadAttrKind
    156. | ConvergentAttrKind
    157. | CoroDisableLifetimeBoundAttrKind
    158. | CoroLifetimeBoundAttrKind
    159. | CoroOnlyDestroyWhenCompleteAttrKind
    160. | CoroReturnTypeAttrKind
    161. | CoroWrapperAttrKind
    162. | CountedByAttrKind
    163. | DLLExportAttrKind
    164. | DLLExportStaticLocalAttrKind
    165. | DLLImportAttrKind
    166. | DLLImportStaticLocalAttrKind
    167. | DeprecatedAttrKind
    168. | DestructorAttrKind
    169. | DiagnoseAsBuiltinAttrKind
    170. | DiagnoseIfAttrKind
    171. | DisableSanitizerInstrumentationAttrKind
    172. | DisableTailCallsAttrKind
    173. | EmptyBasesAttrKind
    174. | EnableIfAttrKind
    175. | EnforceTCBAttrKind
    176. | EnforceTCBLeafAttrKind
    177. | EnumExtensibilityAttrKind
    178. | ErrorAttrKind
    179. | ExcludeFromExplicitInstantiationAttrKind
    180. | ExclusiveTrylockFunctionAttrKind
    181. | ExternalSourceSymbolAttrKind
    182. | FinalAttrKind
    183. | FlagEnumAttrKind
    184. | FlattenAttrKind
    185. | FormatAttrKind
    186. | FormatArgAttrKind
    187. | FunctionReturnThunksAttrKind
    188. | GNUInlineAttrKind
    189. | GuardedByAttrKind
    190. | GuardedVarAttrKind
    191. | HIPManagedAttrKind
    192. | HLSLNumThreadsAttrKind
    193. | HLSLResourceAttrKind
    194. | HLSLResourceBindingAttrKind
    195. | HLSLShaderAttrKind
    196. | HotAttrKind
    197. | IBActionAttrKind
    198. | IBOutletAttrKind
    199. | IBOutletCollectionAttrKind
    200. | InitPriorityAttrKind
    201. | InternalLinkageAttrKind
    202. | LTOVisibilityPublicAttrKind
    203. | LayoutVersionAttrKind
    204. | LeafAttrKind
    205. | LockReturnedAttrKind
    206. | LocksExcludedAttrKind
    207. | M68kInterruptAttrKind
    208. | MIGServerRoutineAttrKind
    209. | MSAllocatorAttrKind
    210. | MSConstexprAttrKind
    211. | MSInheritanceAttrKind
    212. | MSNoVTableAttrKind
    213. | MSP430InterruptAttrKind
    214. | MSStructAttrKind
    215. | MSVtorDispAttrKind
    216. | MaxFieldAlignmentAttrKind
    217. | MayAliasAttrKind
    218. | MaybeUndefAttrKind
    219. | MicroMipsAttrKind
    220. | MinSizeAttrKind
    221. | MinVectorWidthAttrKind
    222. | Mips16AttrKind
    223. | MipsInterruptAttrKind
    224. | MipsLongCallAttrKind
    225. | MipsShortCallAttrKind
    226. | NSConsumesSelfAttrKind
    227. | NSErrorDomainAttrKind
    228. | NSReturnsAutoreleasedAttrKind
    229. | NSReturnsNotRetainedAttrKind
    230. | NVPTXKernelAttrKind
    231. | NakedAttrKind
    232. | NoAliasAttrKind
    233. | NoCommonAttrKind
    234. | NoDebugAttrKind
    235. | NoDestroyAttrKind
    236. | NoDuplicateAttrKind
    237. | NoInstrumentFunctionAttrKind
    238. | NoMicroMipsAttrKind
    239. | NoMips16AttrKind
    240. | NoProfileFunctionAttrKind
    241. | NoRandomizeLayoutAttrKind
    242. | NoReturnAttrKind
    243. | NoSanitizeAttrKind
    244. | NoSpeculativeLoadHardeningAttrKind
    245. | NoSplitStackAttrKind
    246. | NoStackProtectorAttrKind
    247. | NoThreadSafetyAnalysisAttrKind
    248. | NoThrowAttrKind
    249. | NoUniqueAddressAttrKind
    250. | NoUwtableAttrKind
    251. | NotTailCalledAttrKind
    252. | OMPAllocateDeclAttrKind
    253. | OMPCaptureNoInitAttrKind
    254. | OMPDeclareTargetDeclAttrKind
    255. | OMPDeclareVariantAttrKind
    256. | OMPThreadPrivateDeclAttrKind
    257. | OSConsumesThisAttrKind
    258. | OSReturnsNotRetainedAttrKind
    259. | OSReturnsRetainedAttrKind
    260. | OSReturnsRetainedOnNonZeroAttrKind
    261. | OSReturnsRetainedOnZeroAttrKind
    262. | ObjCBridgeAttrKind
    263. | ObjCBridgeMutableAttrKind
    264. | ObjCBridgeRelatedAttrKind
    265. | ObjCExceptionAttrKind
    266. | ObjCExplicitProtocolImplAttrKind
    267. | ObjCExternallyRetainedAttrKind
    268. | ObjCIndependentClassAttrKind
    269. | ObjCMethodFamilyAttrKind
    270. | ObjCNSObjectAttrKind
    271. | ObjCPreciseLifetimeAttrKind
    272. | ObjCRequiresPropertyDefsAttrKind
    273. | ObjCRequiresSuperAttrKind
    274. | ObjCReturnsInnerPointerAttrKind
    275. | ObjCRootClassAttrKind
    276. | ObjCSubclassingRestrictedAttrKind
    277. | OpenCLIntelReqdSubGroupSizeAttrKind
    278. | OpenCLKernelAttrKind
    279. | OptimizeNoneAttrKind
    280. | OverrideAttrKind
    281. | OwnerAttrKind
    282. | OwnershipAttrKind
    283. | PackedAttrKind
    284. | ParamTypestateAttrKind
    285. | PatchableFunctionEntryAttrKind
    286. | PointerAttrKind
    287. | PragmaClangBSSSectionAttrKind
    288. | PragmaClangDataSectionAttrKind
    289. | PragmaClangRelroSectionAttrKind
    290. | PragmaClangRodataSectionAttrKind
    291. | PragmaClangTextSectionAttrKind
    292. | PreferredNameAttrKind
    293. | PreferredTypeAttrKind
    294. | PtGuardedByAttrKind
    295. | PtGuardedVarAttrKind
    296. | PureAttrKind
    297. | RISCVInterruptAttrKind
    298. | RandomizeLayoutAttrKind
    299. | ReadOnlyPlacementAttrKind
    300. | ReinitializesAttrKind
    301. | ReleaseCapabilityAttrKind
    302. | ReqdWorkGroupSizeAttrKind
    303. | RequiresCapabilityAttrKind
    304. | RestrictAttrKind
    305. | RetainAttrKind
    306. | ReturnTypestateAttrKind
    307. | ReturnsNonNullAttrKind
    308. | ReturnsTwiceAttrKind
    309. | SYCLKernelAttrKind
    310. | SYCLSpecialClassAttrKind
    311. | ScopedLockableAttrKind
    312. | SectionAttrKind
    313. | SelectAnyAttrKind
    314. | SentinelAttrKind
    315. | SetTypestateAttrKind
    316. | SharedTrylockFunctionAttrKind
    317. | SpeculativeLoadHardeningAttrKind
    318. | StandaloneDebugAttrKind
    319. | StrictFPAttrKind
    320. | StrictGuardStackCheckAttrKind
    321. | SwiftAsyncAttrKind
    322. | SwiftAsyncErrorAttrKind
    323. | SwiftAsyncNameAttrKind
    324. | SwiftAttrAttrKind
    325. | SwiftBridgeAttrKind
    326. | SwiftBridgedTypedefAttrKind
    327. | SwiftErrorAttrKind
    328. | SwiftImportAsNonGenericAttrKind
    329. | SwiftImportPropertyAsAccessorsAttrKind
    330. | SwiftNameAttrKind
    331. | SwiftNewTypeAttrKind
    332. | SwiftPrivateAttrKind
    333. | TLSModelAttrKind
    334. | TargetAttrKind
    335. | TargetClonesAttrKind
    336. | TargetVersionAttrKind
    337. | TestTypestateAttrKind
    338. | TransparentUnionAttrKind
    339. | TrivialABIAttrKind
    340. | TryAcquireCapabilityAttrKind
    341. | TypeTagForDatatypeAttrKind
    342. | TypeVisibilityAttrKind
    343. | UnavailableAttrKind
    344. | UninitializedAttrKind
    345. | UnsafeBufferUsageAttrKind
    346. | UnusedAttrKind
    347. | UsedAttrKind
    348. | UsingIfExistsAttrKind
    349. | UuidAttrKind
    350. | VecReturnAttrKind
    351. | VecTypeHintAttrKind
    352. | VisibilityAttrKind
    353. | WarnUnusedAttrKind
    354. | WarnUnusedResultAttrKind
    355. | WeakAttrKind
    356. | WeakImportAttrKind
    357. | WeakRefAttrKind
    358. | WebAssemblyExportNameAttrKind
    359. | WebAssemblyImportModuleAttrKind
    360. | WebAssemblyImportNameAttrKind
    361. | WorkGroupSizeHintAttrKind
    362. | X86ForceAlignArgPointerAttrKind
    363. | XRayInstrumentAttrKind
    364. | XRayLogArgsAttrKind
    365. | ZeroCallUsedRegsAttrKind
    366. | AbiTagAttrKind
    367. | AliasAttrKind
    368. | AlignValueAttrKind
    369. | BuiltinAliasAttrKind
    370. | CalledOnceAttrKind
    371. | IFuncAttrKind
    372. | InitSegAttrKind
    373. | LoaderUninitializedAttrKind
    374. | LoopHintAttrKind
    375. | ModeAttrKind
    376. | NoBuiltinAttrKind
    377. | NoEscapeAttrKind
    378. | OMPCaptureKindAttrKind
    379. | OMPDeclareSimdDeclAttrKind
    380. | OMPReferencedVarAttrKind
    381. | ObjCBoxableAttrKind
    382. | ObjCClassStubAttrKind
    383. | ObjCDesignatedInitializerAttrKind
    384. | ObjCDirectAttrKind
    385. | ObjCDirectMembersAttrKind
    386. | ObjCNonLazyClassAttrKind
    387. | ObjCNonRuntimeProtocolAttrKind
    388. | ObjCRuntimeNameAttrKind
    389. | ObjCRuntimeVisibleAttrKind
    390. | OpenCLAccessAttrKind
    391. | OverloadableAttrKind
    392. | RenderScriptKernelAttrKind
    393. | SwiftObjCMembersAttrKind
    394. | SwiftVersionedAdditionAttrKind
    395. | SwiftVersionedRemovalAttrKind
    396. | ThreadAttrKind
    type binary_operator_kind = Clang_ast_t.binary_operator_kind
    type binary_operator_info = Clang_ast_t.binary_operator_info = {
    1. boi_kind : binary_operator_kind;
    }
    type builtin_type_kind = Clang_ast_t.builtin_type_kind
    type cast_kind = Clang_ast_t.cast_kind
    type cxx_base_specifier = Clang_ast_t.cxx_base_specifier = {
    1. xbs_name : string;
    2. xbs_virtual : bool;
    }
    type cast_expr_info = Clang_ast_t.cast_expr_info = {
    1. cei_cast_kind : cast_kind;
    2. cei_base_path : cxx_base_specifier list;
    }
    type cxx_noexcept_expr_info = Clang_ast_t.cxx_noexcept_expr_info = {
    1. xnee_value : bool;
    }
    type decl_context_info = Clang_ast_t.decl_context_info = {
    1. dci_has_external_lexical_storage : bool;
    2. dci_has_external_visible_storage : bool;
    }
    type decl_kind = Clang_ast_t.decl_kind
    type declaration_name_kind = Clang_ast_t.declaration_name_kind
    type declaration_name = Clang_ast_t.declaration_name = {
    1. dn_kind : declaration_name_kind;
    2. dn_name : string;
    }
    type enum_decl_scope = Clang_ast_t.enum_decl_scope
    type enum_decl_info = Clang_ast_t.enum_decl_info = {
    1. edi_scope : enum_decl_scope option;
    2. edi_is_module_private : bool;
    }
    type input_kind = Clang_ast_t.input_kind
    type integer_literal_info = Clang_ast_t.integer_literal_info = {
    1. ili_is_signed : bool;
    2. ili_bitwidth : int;
    3. ili_value : string;
    }
    type integer_type_widths = Clang_ast_t.integer_type_widths = {
    1. itw_char_type : int;
    2. itw_short_type : int;
    3. itw_int_type : int;
    4. itw_long_type : int;
    5. itw_longlong_type : int;
    }
    type lambda_capture_kind = Clang_ast_t.lambda_capture_kind
    type named_decl_info = Clang_ast_t.named_decl_info = {
    1. ni_name : string;
    2. ni_qual_name : string list;
    }
    type obj_c_access_control = Clang_ast_t.obj_c_access_control
    type obj_c_availability_check_expr_info = +Clang_ast_j (infer.ATDGenerated.Clang_ast_j)

    Module ATDGenerated.Clang_ast_j

    type access_specifier = Clang_ast_t.access_specifier
    type atomic_expr_kind = Clang_ast_t.atomic_expr_kind
    type atomic_expr_info = Clang_ast_t.atomic_expr_info = {
    1. aei_kind : atomic_expr_kind;
    }
    type attribute_kind = Clang_ast_t.attribute_kind =
    1. | AddressSpaceAttrKind
    2. | AllocatingAttrKind
    3. | AnnotateTypeAttrKind
    4. | ArmInAttrKind
    5. | ArmInOutAttrKind
    6. | ArmMveStrictPolymorphismAttrKind
    7. | ArmOutAttrKind
    8. | ArmPreservesAttrKind
    9. | ArmStreamingAttrKind
    10. | ArmStreamingCompatibleAttrKind
    11. | BTFTypeTagAttrKind
    12. | BlockingAttrKind
    13. | CmseNSCallAttrKind
    14. | HLSLGroupSharedAddressSpaceAttrKind
    15. | HLSLParamModifierAttrKind
    16. | NoDerefAttrKind
    17. | NonAllocatingAttrKind
    18. | NonBlockingAttrKind
    19. | ObjCGCAttrKind
    20. | ObjCInertUnsafeUnretainedAttrKind
    21. | ObjCKindOfAttrKind
    22. | OpenCLConstantAddressSpaceAttrKind
    23. | OpenCLGenericAddressSpaceAttrKind
    24. | OpenCLGlobalAddressSpaceAttrKind
    25. | OpenCLGlobalDeviceAddressSpaceAttrKind
    26. | OpenCLGlobalHostAddressSpaceAttrKind
    27. | OpenCLLocalAddressSpaceAttrKind
    28. | OpenCLPrivateAddressSpaceAttrKind
    29. | Ptr32AttrKind
    30. | Ptr64AttrKind
    31. | SPtrAttrKind
    32. | TypeNonNullAttrKind
    33. | TypeNullUnspecifiedAttrKind
    34. | TypeNullableResultAttrKind
    35. | UPtrAttrKind
    36. | WebAssemblyFuncrefAttrKind
    37. | CXXAssumeAttrKind
    38. | CodeAlignAttrKind
    39. | FallThroughAttrKind
    40. | HLSLLoopHintAttrKind
    41. | LikelyAttrKind
    42. | MustTailAttrKind
    43. | OpenCLUnrollHintAttrKind
    44. | UnlikelyAttrKind
    45. | AlwaysInlineAttrKind
    46. | NoInlineAttrKind
    47. | NoMergeAttrKind
    48. | SuppressAttrKind
    49. | AArch64SVEPcsAttrKind
    50. | AArch64VectorPcsAttrKind
    51. | AMDGPUKernelCallAttrKind
    52. | AcquireHandleAttrKind
    53. | AnyX86NoCfCheckAttrKind
    54. | CDeclAttrKind
    55. | CountedByAttrKind
    56. | CountedByOrNullAttrKind
    57. | FastCallAttrKind
    58. | IntelOclBiccAttrKind
    59. | LifetimeBoundAttrKind
    60. | M68kRTDAttrKind
    61. | MSABIAttrKind
    62. | NSReturnsRetainedAttrKind
    63. | ObjCOwnershipAttrKind
    64. | PascalAttrKind
    65. | PcsAttrKind
    66. | PreserveAllAttrKind
    67. | PreserveMostAttrKind
    68. | PreserveNoneAttrKind
    69. | RISCVVectorCCAttrKind
    70. | RegCallAttrKind
    71. | SizedByAttrKind
    72. | SizedByOrNullAttrKind
    73. | StdCallAttrKind
    74. | SwiftAsyncCallAttrKind
    75. | SwiftCallAttrKind
    76. | SysVABIAttrKind
    77. | ThisCallAttrKind
    78. | TypeNullableAttrKind
    79. | VectorCallAttrKind
    80. | SwiftAsyncContextAttrKind
    81. | SwiftContextAttrKind
    82. | SwiftErrorResultAttrKind
    83. | SwiftIndirectResultAttrKind
    84. | AnnotateAttrKind
    85. | CFConsumedAttrKind
    86. | CarriesDependencyAttrKind
    87. | NSConsumedAttrKind
    88. | NonNullAttrKind
    89. | OSConsumedAttrKind
    90. | PassObjectSizeAttrKind
    91. | ReleaseHandleAttrKind
    92. | UseHandleAttrKind
    93. | HLSLPackOffsetAttrKind
    94. | HLSLSV_DispatchThreadIDAttrKind
    95. | HLSLSV_GroupIndexAttrKind
    96. | AMDGPUFlatWorkGroupSizeAttrKind
    97. | AMDGPUMaxNumWorkGroupsAttrKind
    98. | AMDGPUNumSGPRAttrKind
    99. | AMDGPUNumVGPRAttrKind
    100. | AMDGPUWavesPerEUAttrKind
    101. | ARMInterruptAttrKind
    102. | AVRInterruptAttrKind
    103. | AVRSignalAttrKind
    104. | AcquireCapabilityAttrKind
    105. | AcquiredAfterAttrKind
    106. | AcquiredBeforeAttrKind
    107. | AlignMac68kAttrKind
    108. | AlignNaturalAttrKind
    109. | AlignedAttrKind
    110. | AllocAlignAttrKind
    111. | AllocSizeAttrKind
    112. | AlwaysDestroyAttrKind
    113. | AnalyzerNoReturnAttrKind
    114. | AnyX86InterruptAttrKind
    115. | AnyX86NoCallerSavedRegistersAttrKind
    116. | ArcWeakrefUnavailableAttrKind
    117. | ArgumentWithTypeTagAttrKind
    118. | ArmBuiltinAliasAttrKind
    119. | ArmLocallyStreamingAttrKind
    120. | ArmNewAttrKind
    121. | ArtificialAttrKind
    122. | AsmLabelAttrKind
    123. | AssertCapabilityAttrKind
    124. | AssertExclusiveLockAttrKind
    125. | AssertSharedLockAttrKind
    126. | AssumeAlignedAttrKind
    127. | AvailabilityAttrKind
    128. | AvailableOnlyInDefaultEvalMethodAttrKind
    129. | BPFPreserveAccessIndexAttrKind
    130. | BPFPreserveStaticOffsetAttrKind
    131. | BTFDeclTagAttrKind
    132. | BlocksAttrKind
    133. | BuiltinAttrKind
    134. | C11NoReturnAttrKind
    135. | CFAuditedTransferAttrKind
    136. | CFGuardAttrKind
    137. | CFICanonicalJumpTableAttrKind
    138. | CFReturnsNotRetainedAttrKind
    139. | CFReturnsRetainedAttrKind
    140. | CFUnknownTransferAttrKind
    141. | CPUDispatchAttrKind
    142. | CPUSpecificAttrKind
    143. | CUDAConstantAttrKind
    144. | CUDADeviceAttrKind
    145. | CUDADeviceBuiltinSurfaceTypeAttrKind
    146. | CUDADeviceBuiltinTextureTypeAttrKind
    147. | CUDAGlobalAttrKind
    148. | CUDAHostAttrKind
    149. | CUDAInvalidTargetAttrKind
    150. | CUDALaunchBoundsAttrKind
    151. | CUDASharedAttrKind
    152. | CXX11NoReturnAttrKind
    153. | CallableWhenAttrKind
    154. | CallbackAttrKind
    155. | CapabilityAttrKind
    156. | CapturedRecordAttrKind
    157. | CleanupAttrKind
    158. | ClspvLibclcBuiltinAttrKind
    159. | CmseNSEntryAttrKind
    160. | CodeModelAttrKind
    161. | CodeSegAttrKind
    162. | ColdAttrKind
    163. | CommonAttrKind
    164. | ConstAttrKind
    165. | ConstInitAttrKind
    166. | ConstructorAttrKind
    167. | ConsumableAttrKind
    168. | ConsumableAutoCastAttrKind
    169. | ConsumableSetOnReadAttrKind
    170. | ConvergentAttrKind
    171. | CoroDisableLifetimeBoundAttrKind
    172. | CoroLifetimeBoundAttrKind
    173. | CoroOnlyDestroyWhenCompleteAttrKind
    174. | CoroReturnTypeAttrKind
    175. | CoroWrapperAttrKind
    176. | DLLExportAttrKind
    177. | DLLExportStaticLocalAttrKind
    178. | DLLImportAttrKind
    179. | DLLImportStaticLocalAttrKind
    180. | DeprecatedAttrKind
    181. | DestructorAttrKind
    182. | DiagnoseAsBuiltinAttrKind
    183. | DiagnoseIfAttrKind
    184. | DisableSanitizerInstrumentationAttrKind
    185. | DisableTailCallsAttrKind
    186. | EmptyBasesAttrKind
    187. | EnableIfAttrKind
    188. | EnforceTCBAttrKind
    189. | EnforceTCBLeafAttrKind
    190. | EnumExtensibilityAttrKind
    191. | ErrorAttrKind
    192. | ExcludeFromExplicitInstantiationAttrKind
    193. | ExclusiveTrylockFunctionAttrKind
    194. | ExternalSourceSymbolAttrKind
    195. | FinalAttrKind
    196. | FlagEnumAttrKind
    197. | FlattenAttrKind
    198. | FormatAttrKind
    199. | FormatArgAttrKind
    200. | FunctionReturnThunksAttrKind
    201. | GNUInlineAttrKind
    202. | GuardedByAttrKind
    203. | GuardedVarAttrKind
    204. | HIPManagedAttrKind
    205. | HLSLNumThreadsAttrKind
    206. | HLSLResourceAttrKind
    207. | HLSLResourceBindingAttrKind
    208. | HLSLResourceClassAttrKind
    209. | HLSLShaderAttrKind
    210. | HotAttrKind
    211. | HybridPatchableAttrKind
    212. | IBActionAttrKind
    213. | IBOutletAttrKind
    214. | IBOutletCollectionAttrKind
    215. | InitPriorityAttrKind
    216. | InternalLinkageAttrKind
    217. | LTOVisibilityPublicAttrKind
    218. | LayoutVersionAttrKind
    219. | LeafAttrKind
    220. | LockReturnedAttrKind
    221. | LocksExcludedAttrKind
    222. | M68kInterruptAttrKind
    223. | MIGServerRoutineAttrKind
    224. | MSAllocatorAttrKind
    225. | MSConstexprAttrKind
    226. | MSInheritanceAttrKind
    227. | MSNoVTableAttrKind
    228. | MSP430InterruptAttrKind
    229. | MSStructAttrKind
    230. | MSVtorDispAttrKind
    231. | MaxFieldAlignmentAttrKind
    232. | MayAliasAttrKind
    233. | MaybeUndefAttrKind
    234. | MicroMipsAttrKind
    235. | MinSizeAttrKind
    236. | MinVectorWidthAttrKind
    237. | Mips16AttrKind
    238. | MipsInterruptAttrKind
    239. | MipsLongCallAttrKind
    240. | MipsShortCallAttrKind
    241. | NSConsumesSelfAttrKind
    242. | NSErrorDomainAttrKind
    243. | NSReturnsAutoreleasedAttrKind
    244. | NSReturnsNotRetainedAttrKind
    245. | NVPTXKernelAttrKind
    246. | NakedAttrKind
    247. | NoAliasAttrKind
    248. | NoCommonAttrKind
    249. | NoDebugAttrKind
    250. | NoDestroyAttrKind
    251. | NoDuplicateAttrKind
    252. | NoInstrumentFunctionAttrKind
    253. | NoMicroMipsAttrKind
    254. | NoMips16AttrKind
    255. | NoProfileFunctionAttrKind
    256. | NoRandomizeLayoutAttrKind
    257. | NoReturnAttrKind
    258. | NoSanitizeAttrKind
    259. | NoSpeculativeLoadHardeningAttrKind
    260. | NoSplitStackAttrKind
    261. | NoStackProtectorAttrKind
    262. | NoThreadSafetyAnalysisAttrKind
    263. | NoThrowAttrKind
    264. | NoUniqueAddressAttrKind
    265. | NoUwtableAttrKind
    266. | NotTailCalledAttrKind
    267. | OMPAllocateDeclAttrKind
    268. | OMPAssumeAttrKind
    269. | OMPCaptureNoInitAttrKind
    270. | OMPDeclareTargetDeclAttrKind
    271. | OMPDeclareVariantAttrKind
    272. | OMPThreadPrivateDeclAttrKind
    273. | OSConsumesThisAttrKind
    274. | OSReturnsNotRetainedAttrKind
    275. | OSReturnsRetainedAttrKind
    276. | OSReturnsRetainedOnNonZeroAttrKind
    277. | OSReturnsRetainedOnZeroAttrKind
    278. | ObjCBridgeAttrKind
    279. | ObjCBridgeMutableAttrKind
    280. | ObjCBridgeRelatedAttrKind
    281. | ObjCExceptionAttrKind
    282. | ObjCExplicitProtocolImplAttrKind
    283. | ObjCExternallyRetainedAttrKind
    284. | ObjCIndependentClassAttrKind
    285. | ObjCMethodFamilyAttrKind
    286. | ObjCNSObjectAttrKind
    287. | ObjCPreciseLifetimeAttrKind
    288. | ObjCRequiresPropertyDefsAttrKind
    289. | ObjCRequiresSuperAttrKind
    290. | ObjCReturnsInnerPointerAttrKind
    291. | ObjCRootClassAttrKind
    292. | ObjCSubclassingRestrictedAttrKind
    293. | OpenCLIntelReqdSubGroupSizeAttrKind
    294. | OpenCLKernelAttrKind
    295. | OptimizeNoneAttrKind
    296. | OverrideAttrKind
    297. | OwnerAttrKind
    298. | OwnershipAttrKind
    299. | PackedAttrKind
    300. | ParamTypestateAttrKind
    301. | PatchableFunctionEntryAttrKind
    302. | PointerAttrKind
    303. | PragmaClangBSSSectionAttrKind
    304. | PragmaClangDataSectionAttrKind
    305. | PragmaClangRelroSectionAttrKind
    306. | PragmaClangRodataSectionAttrKind
    307. | PragmaClangTextSectionAttrKind
    308. | PreferredNameAttrKind
    309. | PreferredTypeAttrKind
    310. | PtGuardedByAttrKind
    311. | PtGuardedVarAttrKind
    312. | PureAttrKind
    313. | RISCVInterruptAttrKind
    314. | RandomizeLayoutAttrKind
    315. | ReadOnlyPlacementAttrKind
    316. | ReinitializesAttrKind
    317. | ReleaseCapabilityAttrKind
    318. | ReqdWorkGroupSizeAttrKind
    319. | RequiresCapabilityAttrKind
    320. | RestrictAttrKind
    321. | RetainAttrKind
    322. | ReturnTypestateAttrKind
    323. | ReturnsNonNullAttrKind
    324. | ReturnsTwiceAttrKind
    325. | SYCLKernelAttrKind
    326. | SYCLSpecialClassAttrKind
    327. | ScopedLockableAttrKind
    328. | SectionAttrKind
    329. | SelectAnyAttrKind
    330. | SentinelAttrKind
    331. | SetTypestateAttrKind
    332. | SharedTrylockFunctionAttrKind
    333. | SpeculativeLoadHardeningAttrKind
    334. | StandaloneDebugAttrKind
    335. | StrictFPAttrKind
    336. | StrictGuardStackCheckAttrKind
    337. | SwiftAsyncAttrKind
    338. | SwiftAsyncErrorAttrKind
    339. | SwiftAsyncNameAttrKind
    340. | SwiftAttrAttrKind
    341. | SwiftBridgeAttrKind
    342. | SwiftBridgedTypedefAttrKind
    343. | SwiftErrorAttrKind
    344. | SwiftImportAsNonGenericAttrKind
    345. | SwiftImportPropertyAsAccessorsAttrKind
    346. | SwiftNameAttrKind
    347. | SwiftNewTypeAttrKind
    348. | SwiftPrivateAttrKind
    349. | TLSModelAttrKind
    350. | TargetAttrKind
    351. | TargetClonesAttrKind
    352. | TargetVersionAttrKind
    353. | TestTypestateAttrKind
    354. | TransparentUnionAttrKind
    355. | TrivialABIAttrKind
    356. | TryAcquireCapabilityAttrKind
    357. | TypeTagForDatatypeAttrKind
    358. | TypeVisibilityAttrKind
    359. | UnavailableAttrKind
    360. | UninitializedAttrKind
    361. | UnsafeBufferUsageAttrKind
    362. | UnusedAttrKind
    363. | UsedAttrKind
    364. | UsingIfExistsAttrKind
    365. | UuidAttrKind
    366. | VTablePointerAuthenticationAttrKind
    367. | VecReturnAttrKind
    368. | VecTypeHintAttrKind
    369. | VisibilityAttrKind
    370. | WarnUnusedAttrKind
    371. | WarnUnusedResultAttrKind
    372. | WeakAttrKind
    373. | WeakImportAttrKind
    374. | WeakRefAttrKind
    375. | WebAssemblyExportNameAttrKind
    376. | WebAssemblyImportModuleAttrKind
    377. | WebAssemblyImportNameAttrKind
    378. | WorkGroupSizeHintAttrKind
    379. | X86ForceAlignArgPointerAttrKind
    380. | XRayInstrumentAttrKind
    381. | XRayLogArgsAttrKind
    382. | ZeroCallUsedRegsAttrKind
    383. | AbiTagAttrKind
    384. | AliasAttrKind
    385. | AlignValueAttrKind
    386. | BuiltinAliasAttrKind
    387. | CalledOnceAttrKind
    388. | IFuncAttrKind
    389. | InitSegAttrKind
    390. | LoaderUninitializedAttrKind
    391. | LoopHintAttrKind
    392. | ModeAttrKind
    393. | NoBuiltinAttrKind
    394. | NoEscapeAttrKind
    395. | OMPCaptureKindAttrKind
    396. | OMPDeclareSimdDeclAttrKind
    397. | OMPReferencedVarAttrKind
    398. | ObjCBoxableAttrKind
    399. | ObjCClassStubAttrKind
    400. | ObjCDesignatedInitializerAttrKind
    401. | ObjCDirectAttrKind
    402. | ObjCDirectMembersAttrKind
    403. | ObjCNonLazyClassAttrKind
    404. | ObjCNonRuntimeProtocolAttrKind
    405. | ObjCRuntimeNameAttrKind
    406. | ObjCRuntimeVisibleAttrKind
    407. | OpenCLAccessAttrKind
    408. | OverloadableAttrKind
    409. | RenderScriptKernelAttrKind
    410. | SwiftObjCMembersAttrKind
    411. | SwiftVersionedAdditionAttrKind
    412. | SwiftVersionedRemovalAttrKind
    413. | ThreadAttrKind
    type binary_operator_kind = Clang_ast_t.binary_operator_kind
    type binary_operator_info = Clang_ast_t.binary_operator_info = {
    1. boi_kind : binary_operator_kind;
    }
    type builtin_type_kind = Clang_ast_t.builtin_type_kind
    type cast_kind = Clang_ast_t.cast_kind
    type cxx_base_specifier = Clang_ast_t.cxx_base_specifier = {
    1. xbs_name : string;
    2. xbs_virtual : bool;
    }
    type cast_expr_info = Clang_ast_t.cast_expr_info = {
    1. cei_cast_kind : cast_kind;
    2. cei_base_path : cxx_base_specifier list;
    }
    type cxx_noexcept_expr_info = Clang_ast_t.cxx_noexcept_expr_info = {
    1. xnee_value : bool;
    }
    type decl_context_info = Clang_ast_t.decl_context_info = {
    1. dci_has_external_lexical_storage : bool;
    2. dci_has_external_visible_storage : bool;
    }
    type decl_kind = Clang_ast_t.decl_kind
    type declaration_name_kind = Clang_ast_t.declaration_name_kind
    type declaration_name = Clang_ast_t.declaration_name = {
    1. dn_kind : declaration_name_kind;
    2. dn_name : string;
    }
    type enum_decl_scope = Clang_ast_t.enum_decl_scope
    type enum_decl_info = Clang_ast_t.enum_decl_info = {
    1. edi_scope : enum_decl_scope option;
    2. edi_is_module_private : bool;
    }
    type input_kind = Clang_ast_t.input_kind
    type integer_literal_info = Clang_ast_t.integer_literal_info = {
    1. ili_is_signed : bool;
    2. ili_bitwidth : int;
    3. ili_value : string;
    }
    type integer_type_widths = Clang_ast_t.integer_type_widths = {
    1. itw_char_type : int;
    2. itw_short_type : int;
    3. itw_int_type : int;
    4. itw_long_type : int;
    5. itw_longlong_type : int;
    }
    type lambda_capture_kind = Clang_ast_t.lambda_capture_kind
    type named_decl_info = Clang_ast_t.named_decl_info = {
    1. ni_name : string;
    2. ni_qual_name : string list;
    }
    type namespace_decl_info = Clang_ast_t.namespace_decl_info = {
    1. ndi_is_inline : bool;
    }
    type obj_c_access_control = Clang_ast_t.obj_c_access_control
    type obj_c_availability_check_expr_info = Clang_ast_t.obj_c_availability_check_expr_info = {
    1. oacei_version : string option;
    }
    type obj_c_bridge_cast_kind = Clang_ast_t.obj_c_bridge_cast_kind
    type obj_c_bridged_cast_expr_info = Clang_ast_t.obj_c_bridged_cast_expr_info = {
    1. obcei_cast_kind : obj_c_bridge_cast_kind;
    }
    type obj_c_ivar_decl_info = Clang_ast_t.obj_c_ivar_decl_info = {
    1. ovdi_is_synthesize : bool;
    2. ovdi_access_control : obj_c_access_control;
    }
    type obj_c_property_control = Clang_ast_t.obj_c_property_control
    type obj_c_subscript_kind = Clang_ast_t.obj_c_subscript_kind
    type objc_lifetime_attr = Clang_ast_t.objc_lifetime_attr
    type attr_type_info = Clang_ast_t.attr_type_info = {
    1. ati_attr_kind : attribute_kind;
    2. ati_lifetime : objc_lifetime_attr;
    }
    type object_kind = Clang_ast_t.object_kind
    type offset_of_expr_info = Clang_ast_t.offset_of_expr_info = {
    1. ooe_literal : integer_literal_info option;
    }
    type pointer = Clang_ast_t.pointer
    type addr_label_expr_info = Clang_ast_t.addr_label_expr_info = {
    1. alei_label : string;
    2. alei_pointer : pointer;
    }
    type cxx_new_expr_info = Clang_ast_t.cxx_new_expr_info = {
    1. xnei_is_array : bool;
    2. xnei_array_size_expr : pointer option;
    3. xnei_initializer_expr : pointer option;
    4. xnei_placement_args : pointer list;
    }
    type cxx_temporary = Clang_ast_t.cxx_temporary
    type cxx_bind_temporary_expr_info = Clang_ast_t.cxx_bind_temporary_expr_info = {
    1. xbtei_cxx_temporary : cxx_temporary;
    }
    type goto_stmt_info = Clang_ast_t.goto_stmt_info = {
    1. gsi_label : string;
    2. gsi_pointer : pointer;
    }
    type obj_c_array_literal_expr_info = Clang_ast_t.obj_c_array_literal_expr_info = {
    1. oalei_array_method : pointer option;
    }
    type obj_c_dictionary_literal_expr_info = @@ -8,17 +8,17 @@ {
    1. osrei_kind : obj_c_subscript_kind;
    2. osrei_getter : selector option;
    3. osrei_setter : selector option;
    }
    type objc_boxed_expr_info = Clang_ast_t.objc_boxed_expr_info = {
    1. obei_boxing_method : selector option;
    }
    type sentinel_attr_info = Clang_ast_t.sentinel_attr_info = {
    1. sai_sentinel : int;
    2. sai_null_pos : int;
    }
    type source_file = Clang_ast_t.source_file
    type source_location = Clang_ast_t.source_location = {
    1. mutable sl_file : source_file option;
    2. mutable sl_line : int option;
    3. mutable sl_column : int option;
    4. sl_is_macro : bool;
    5. mutable sl_macro_file : source_file option;
    6. mutable sl_macro_line : int option;
    }
    type source_range = Clang_ast_t.source_range
    type attribute_info = Clang_ast_t.attribute_info = {
    1. ai_pointer : pointer;
    2. ai_source_range : source_range;
    }
    type attr_tuple = Clang_ast_t.attr_tuple
    type comment_info = Clang_ast_t.comment_info = {
    1. ci_parent_pointer : pointer;
    2. ci_source_range : source_range;
    }
    type specifier_kind = Clang_ast_t.specifier_kind
    type stmt_info = Clang_ast_t.stmt_info = {
    1. si_pointer : pointer;
    2. si_source_range : source_range;
    }
    type tag_kind = Clang_ast_t.tag_kind
    type type_ptr = Clang_ast_t.type_ptr
    type qual_type = Clang_ast_t.qual_type = {
    1. qt_type_ptr : type_ptr;
    2. qt_is_const : bool;
    3. qt_is_restrict : bool;
    4. qt_is_volatile : bool;
    }
    type array_type_info = Clang_ast_t.array_type_info = {
    1. arti_element_type : qual_type;
    2. arti_stride : int option;
    }
    type compound_assign_operator_info = Clang_ast_t.compound_assign_operator_info = {
    1. caoi_lhs_type : qual_type;
    2. caoi_result_type : qual_type;
    }
    type cxx_delete_expr_info = Clang_ast_t.cxx_delete_expr_info = {
    1. xdei_is_array : bool;
    2. xdei_destroyed_type : qual_type;
    }
    type decl_ref = Clang_ast_t.decl_ref = {
    1. dr_kind : decl_kind;
    2. dr_decl_pointer : pointer;
    3. dr_name : named_decl_info option;
    4. dr_is_hidden : bool;
    5. dr_qual_type : qual_type option;
    }
    type cxx_construct_expr_info = Clang_ast_t.cxx_construct_expr_info = {
    1. xcei_decl_ref : decl_ref;
    2. xcei_is_elidable : bool;
    3. xcei_requires_zero_initialization : bool;
    4. xcei_is_copy_constructor : bool;
    }
    type cxx_ctor_initializer_subject = Clang_ast_t.cxx_ctor_initializer_subject
    type decl_ref_expr_info = Clang_ast_t.decl_ref_expr_info = {
    1. drti_decl_ref : decl_ref option;
    }
    type expr_with_cleanups_info = Clang_ast_t.expr_with_cleanups_info = {
    1. ewci_decl_refs : decl_ref list;
    }
    type function_type_info = Clang_ast_t.function_type_info = {
    1. fti_return_type : qual_type;
    }
    type materialize_temporary_expr_info = Clang_ast_t.materialize_temporary_expr_info = - {
    1. mtei_decl_ref : decl_ref option;
    }
    type member_expr_info = Clang_ast_t.member_expr_info = {
    1. mei_is_arrow : bool;
    2. mei_performs_virtual_dispatch : bool;
    3. mei_name : named_decl_info;
    4. mei_decl_ref : decl_ref;
    }
    type namespace_decl_info = Clang_ast_t.namespace_decl_info = {
    1. ndi_is_inline : bool;
    2. ndi_original_namespace : decl_ref option;
    }
    type nested_name_specifier_loc = Clang_ast_t.nested_name_specifier_loc = {
    1. nnsl_kind : specifier_kind;
    2. nnsl_ref : decl_ref option;
    }
    type namespace_alias_decl_info = Clang_ast_t.namespace_alias_decl_info = {
    1. nadi_namespace_loc : source_location;
    2. nadi_target_name_loc : source_location;
    3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. nadi_namespace : decl_ref;
    }
    type obj_c_category_decl_info = Clang_ast_t.obj_c_category_decl_info = {
    1. odi_class_interface : decl_ref option;
    2. odi_implementation : decl_ref option;
    3. odi_protocols : decl_ref list;
    }
    type obj_c_category_impl_decl_info = Clang_ast_t.obj_c_category_impl_decl_info = + {
    1. mtei_decl_ref : decl_ref option;
    }
    type member_expr_info = Clang_ast_t.member_expr_info = {
    1. mei_is_arrow : bool;
    2. mei_performs_virtual_dispatch : bool;
    3. mei_name : named_decl_info;
    4. mei_decl_ref : decl_ref;
    }
    type nested_name_specifier_loc = Clang_ast_t.nested_name_specifier_loc = {
    1. nnsl_kind : specifier_kind;
    2. nnsl_ref : decl_ref option;
    }
    type namespace_alias_decl_info = Clang_ast_t.namespace_alias_decl_info = {
    1. nadi_namespace_loc : source_location;
    2. nadi_target_name_loc : source_location;
    3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. nadi_namespace : decl_ref;
    }
    type obj_c_category_decl_info = Clang_ast_t.obj_c_category_decl_info = {
    1. odi_class_interface : decl_ref option;
    2. odi_implementation : decl_ref option;
    3. odi_protocols : decl_ref list;
    }
    type obj_c_category_impl_decl_info = Clang_ast_t.obj_c_category_impl_decl_info = {
    1. ocidi_class_interface : decl_ref option;
    2. ocidi_category_decl : decl_ref option;
    }
    type obj_c_compatible_alias_decl_info = Clang_ast_t.obj_c_compatible_alias_decl_info = {
    1. ocadi_class_interface : decl_ref option;
    }
    type obj_c_interface_decl_info = Clang_ast_t.obj_c_interface_decl_info = {
    1. otdi_super : decl_ref option;
    2. otdi_implementation : decl_ref option;
    3. otdi_protocols : decl_ref list;
    4. otdi_known_categories : decl_ref list;
    }
    type obj_c_ivar_ref_expr_info = Clang_ast_t.obj_c_ivar_ref_expr_info = {
    1. ovrei_decl_ref : decl_ref;
    2. ovrei_pointer : pointer;
    3. ovrei_is_free_ivar : bool;
    }
    type obj_c_property_decl_info = Clang_ast_t.obj_c_property_decl_info = {
    1. opdi_qual_type : qual_type;
    2. opdi_getter_method : decl_ref option;
    3. opdi_setter_method : decl_ref option;
    4. opdi_ivar_decl : decl_ref option;
    5. opdi_property_control : obj_c_property_control;
    6. opdi_property_attributes : property_attribute list;
    }
    type obj_c_property_impl_decl_info = Clang_ast_t.obj_c_property_impl_decl_info = - {
    1. opidi_implementation : property_implementation;
    2. opidi_property_decl : decl_ref option;
    3. opidi_ivar_decl : decl_ref option;
    }
    type obj_c_protocol_decl_info = Clang_ast_t.obj_c_protocol_decl_info = {
    1. opcdi_protocols : decl_ref list;
    }
    type objc_encode_expr_info = Clang_ast_t.objc_encode_expr_info = {
    1. oeei_qual_type : qual_type;
    2. oeei_raw : string;
    }
    type objc_object_type_info = Clang_ast_t.objc_object_type_info = {
    1. ooti_base_type : type_ptr;
    2. ooti_protocol_decls_ptr : pointer list;
    3. ooti_type_args : qual_type list;
    }
    type overload_expr_info = Clang_ast_t.overload_expr_info = {
    1. oei_decls : decl_ref list;
    2. oei_name : declaration_name;
    }
    type params_type_info = Clang_ast_t.params_type_info = {
    1. pti_params_type : qual_type list;
    }
    type property_ref_kind = Clang_ast_t.property_ref_kind
    type obj_c_property_ref_expr_info = Clang_ast_t.obj_c_property_ref_expr_info = {
    1. oprei_kind : property_ref_kind;
    2. oprei_is_super_receiver : bool;
    3. oprei_is_messaging_getter : bool;
    4. oprei_is_messaging_setter : bool;
    }
    type receiver_kind = Clang_ast_t.receiver_kind
    type obj_c_message_expr_info = Clang_ast_t.obj_c_message_expr_info = {
    1. omei_selector : string;
    2. omei_is_definition_found : bool;
    3. omei_decl_pointer : pointer option;
    4. omei_receiver_kind : receiver_kind;
    }
    type type_info = Clang_ast_t.type_info = {
    1. ti_pointer : pointer;
    2. ti_desugared_type : type_ptr option;
    }
    type type_trait_info = Clang_ast_t.type_trait_info = {
    1. xtti_value : bool;
    }
    type typedef_decl_info = Clang_ast_t.typedef_decl_info = {
    1. tdi_is_module_private : bool;
    }
    type typedef_type_info = Clang_ast_t.typedef_type_info = {
    1. tti_child_type : qual_type;
    2. tti_decl_ptr : pointer;
    }
    type c_type = Clang_ast_t.c_type =
    1. | NoneType of type_info
    2. | AdjustedType of type_info * qual_type
    3. | DecayedType of type_info * qual_type
    4. | ConstantArrayType of type_info * array_type_info * int
    5. | DependentSizedArrayType of type_info * array_type_info
    6. | IncompleteArrayType of type_info * array_type_info
    7. | VariableArrayType of type_info * array_type_info * pointer
    8. | AtomicType of type_info * qual_type
    9. | AttributedType of type_info * attr_type_info
    10. | BTFTagAttributedType of type_info
    11. | BitIntType of type_info
    12. | BlockPointerType of type_info * qual_type
    13. | BuiltinType of type_info * builtin_type_kind
    14. | ComplexType of type_info
    15. | DecltypeType of type_info * qual_type
    16. | AutoType of type_info
    17. | DeducedTemplateSpecializationType of type_info
    18. | DependentAddressSpaceType of type_info
    19. | DependentBitIntType of type_info
    20. | DependentNameType of type_info
    21. | DependentSizedExtVectorType of type_info
    22. | DependentTemplateSpecializationType of type_info
    23. | DependentVectorType of type_info
    24. | ElaboratedType of type_info
    25. | FunctionNoProtoType of type_info * function_type_info
    26. | FunctionProtoType of type_info * function_type_info * params_type_info
    27. | InjectedClassNameType of type_info
    28. | MacroQualifiedType of type_info
    29. | ConstantMatrixType of type_info
    30. | DependentSizedMatrixType of type_info
    31. | MemberPointerType of type_info * qual_type
    32. | ObjCObjectPointerType of type_info * qual_type
    33. | ObjCObjectType of type_info * objc_object_type_info
    34. | ObjCInterfaceType of type_info * pointer
    35. | ObjCTypeParamType of type_info
    36. | PackExpansionType of type_info
    37. | ParenType of type_info * qual_type
    38. | PipeType of type_info
    39. | PointerType of type_info * qual_type
    40. | LValueReferenceType of type_info * qual_type
    41. | RValueReferenceType of type_info * qual_type
    42. | SubstTemplateTypeParmPackType of type_info
    43. | SubstTemplateTypeParmType of type_info
    44. | EnumType of type_info * pointer
    45. | RecordType of type_info * pointer
    46. | TemplateSpecializationType of type_info
    47. | TemplateTypeParmType of type_info
    48. | TypeOfExprType of type_info
    49. | TypeOfType of type_info
    50. | TypedefType of type_info * typedef_type_info
    51. | UnaryTransformType of type_info
    52. | UnresolvedUsingType of type_info
    53. | UsingType of type_info
    54. | VectorType of type_info
    55. | ExtVectorType of type_info
    type translation_unit_decl_info = Clang_ast_t.translation_unit_decl_info = {
    1. tudi_input_path : source_file;
    2. tudi_input_kind : input_kind;
    3. tudi_integer_type_widths : integer_type_widths;
    4. tudi_is_objc_arc_on : bool;
    5. tudi_types : c_type list;
    }
    type unary_expr_or_type_trait_kind = Clang_ast_t.unary_expr_or_type_trait_kind
    type unary_expr_or_type_trait_expr_info = + {
    1. opidi_implementation : property_implementation;
    2. opidi_property_decl : decl_ref option;
    3. opidi_ivar_decl : decl_ref option;
    }
    type obj_c_protocol_decl_info = Clang_ast_t.obj_c_protocol_decl_info = {
    1. opcdi_protocols : decl_ref list;
    }
    type objc_encode_expr_info = Clang_ast_t.objc_encode_expr_info = {
    1. oeei_qual_type : qual_type;
    2. oeei_raw : string;
    }
    type objc_object_type_info = Clang_ast_t.objc_object_type_info = {
    1. ooti_base_type : type_ptr;
    2. ooti_protocol_decls_ptr : pointer list;
    3. ooti_type_args : qual_type list;
    }
    type overload_expr_info = Clang_ast_t.overload_expr_info = {
    1. oei_decls : decl_ref list;
    2. oei_name : declaration_name;
    }
    type params_type_info = Clang_ast_t.params_type_info = {
    1. pti_params_type : qual_type list;
    }
    type property_ref_kind = Clang_ast_t.property_ref_kind
    type obj_c_property_ref_expr_info = Clang_ast_t.obj_c_property_ref_expr_info = {
    1. oprei_kind : property_ref_kind;
    2. oprei_is_super_receiver : bool;
    3. oprei_is_messaging_getter : bool;
    4. oprei_is_messaging_setter : bool;
    }
    type receiver_kind = Clang_ast_t.receiver_kind
    type obj_c_message_expr_info = Clang_ast_t.obj_c_message_expr_info = {
    1. omei_selector : string;
    2. omei_is_definition_found : bool;
    3. omei_decl_pointer : pointer option;
    4. omei_receiver_kind : receiver_kind;
    }
    type type_info = Clang_ast_t.type_info = {
    1. ti_pointer : pointer;
    2. ti_desugared_type : type_ptr option;
    }
    type type_trait_info = Clang_ast_t.type_trait_info = {
    1. xtti_value : bool;
    }
    type typedef_decl_info = Clang_ast_t.typedef_decl_info = {
    1. tdi_is_module_private : bool;
    }
    type typedef_type_info = Clang_ast_t.typedef_type_info = {
    1. tti_child_type : qual_type;
    2. tti_decl_ptr : pointer;
    }
    type c_type = Clang_ast_t.c_type =
    1. | NoneType of type_info
    2. | AdjustedType of type_info * qual_type
    3. | DecayedType of type_info * qual_type
    4. | ConstantArrayType of type_info * array_type_info * int
    5. | ArrayParameterType of type_info * array_type_info * int
    6. | DependentSizedArrayType of type_info * array_type_info
    7. | IncompleteArrayType of type_info * array_type_info
    8. | VariableArrayType of type_info * array_type_info * pointer
    9. | AtomicType of type_info * qual_type
    10. | AttributedType of type_info * attr_type_info
    11. | BTFTagAttributedType of type_info
    12. | BitIntType of type_info
    13. | BlockPointerType of type_info * qual_type
    14. | CountAttributedType of type_info
    15. | BuiltinType of type_info * builtin_type_kind
    16. | ComplexType of type_info
    17. | DecltypeType of type_info * qual_type
    18. | AutoType of type_info
    19. | DeducedTemplateSpecializationType of type_info
    20. | DependentAddressSpaceType of type_info
    21. | DependentBitIntType of type_info
    22. | DependentNameType of type_info
    23. | DependentSizedExtVectorType of type_info
    24. | DependentTemplateSpecializationType of type_info
    25. | DependentVectorType of type_info
    26. | ElaboratedType of type_info
    27. | FunctionNoProtoType of type_info * function_type_info
    28. | FunctionProtoType of type_info * function_type_info * params_type_info
    29. | InjectedClassNameType of type_info
    30. | MacroQualifiedType of type_info
    31. | ConstantMatrixType of type_info
    32. | DependentSizedMatrixType of type_info
    33. | MemberPointerType of type_info * qual_type
    34. | ObjCObjectPointerType of type_info * qual_type
    35. | ObjCObjectType of type_info * objc_object_type_info
    36. | ObjCInterfaceType of type_info * pointer
    37. | ObjCTypeParamType of type_info
    38. | PackExpansionType of type_info
    39. | PackIndexingType of type_info
    40. | ParenType of type_info * qual_type
    41. | PipeType of type_info
    42. | PointerType of type_info * qual_type
    43. | LValueReferenceType of type_info * qual_type
    44. | RValueReferenceType of type_info * qual_type
    45. | SubstTemplateTypeParmPackType of type_info
    46. | SubstTemplateTypeParmType of type_info
    47. | EnumType of type_info * pointer
    48. | RecordType of type_info * pointer
    49. | TemplateSpecializationType of type_info
    50. | TemplateTypeParmType of type_info
    51. | TypeOfExprType of type_info
    52. | TypeOfType of type_info
    53. | TypedefType of type_info * typedef_type_info
    54. | UnaryTransformType of type_info
    55. | UnresolvedUsingType of type_info
    56. | UsingType of type_info
    57. | VectorType of type_info
    58. | ExtVectorType of type_info
    type translation_unit_decl_info = Clang_ast_t.translation_unit_decl_info = {
    1. tudi_input_path : source_file;
    2. tudi_input_kind : input_kind;
    3. tudi_integer_type_widths : integer_type_widths;
    4. tudi_is_objc_arc_on : bool;
    5. tudi_types : c_type list;
    }
    type unary_expr_or_type_trait_kind = Clang_ast_t.unary_expr_or_type_trait_kind
    type unary_expr_or_type_trait_expr_info = Clang_ast_t.unary_expr_or_type_trait_expr_info = - {
    1. uttei_kind : unary_expr_or_type_trait_kind;
    2. uttei_qual_type : qual_type;
    }
    type unary_operator_kind = Clang_ast_t.unary_operator_kind
    type unary_operator_info = Clang_ast_t.unary_operator_info = {
    1. uoi_kind : unary_operator_kind;
    2. uoi_is_postfix : bool;
    }
    type unresolved_lookup_expr_info = Clang_ast_t.unresolved_lookup_expr_info = {
    1. ulei_requires_ADL : bool;
    2. ulei_is_overloaded : bool;
    3. ulei_naming_class : decl_ref option;
    }
    type using_directive_decl_info = Clang_ast_t.using_directive_decl_info = {
    1. uddi_using_location : source_location;
    2. uddi_namespace_key_location : source_location;
    3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. uddi_nominated_namespace : decl_ref option;
    }
    type value_kind = Clang_ast_t.value_kind
    type expr_info = Clang_ast_t.expr_info = {
    1. ei_qual_type : qual_type;
    2. ei_value_kind : value_kind;
    3. ei_object_kind : object_kind;
    }
    type version_tuple = Clang_ast_t.version_tuple = {
    1. vt_major : int;
    2. vt_minor : int option;
    3. vt_subminor : int option;
    4. vt_build : int option;
    }
    type availability_attr_info = Clang_ast_t.availability_attr_info = {
    1. aai_platform : string option;
    2. aai_introduced : version_tuple;
    }
    type visibility_attr = Clang_ast_t.visibility_attr =
    1. | DefaultVisibility
    2. | HiddenVisibility
    3. | ProtectedVisibility
    type attribute = Clang_ast_t.attribute
    type template_instantiation_arg_info = + {
    1. uttei_kind : unary_expr_or_type_trait_kind;
    2. uttei_qual_type : qual_type;
    }
    type unary_operator_kind = Clang_ast_t.unary_operator_kind
    type unary_operator_info = Clang_ast_t.unary_operator_info = {
    1. uoi_kind : unary_operator_kind;
    2. uoi_is_postfix : bool;
    }
    type unresolved_lookup_expr_info = Clang_ast_t.unresolved_lookup_expr_info = {
    1. ulei_requires_ADL : bool;
    2. ulei_naming_class : decl_ref option;
    }
    type using_directive_decl_info = Clang_ast_t.using_directive_decl_info = {
    1. uddi_using_location : source_location;
    2. uddi_namespace_key_location : source_location;
    3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. uddi_nominated_namespace : decl_ref option;
    }
    type value_kind = Clang_ast_t.value_kind
    type expr_info = Clang_ast_t.expr_info = {
    1. ei_qual_type : qual_type;
    2. ei_value_kind : value_kind;
    3. ei_object_kind : object_kind;
    }
    type version_tuple = Clang_ast_t.version_tuple = {
    1. vt_major : int;
    2. vt_minor : int option;
    3. vt_subminor : int option;
    4. vt_build : int option;
    }
    type availability_attr_info = Clang_ast_t.availability_attr_info = {
    1. aai_platform : string option;
    2. aai_introduced : version_tuple;
    }
    type visibility_attr = Clang_ast_t.visibility_attr =
    1. | DefaultVisibility
    2. | HiddenVisibility
    3. | ProtectedVisibility
    type attribute = Clang_ast_t.attribute
    type template_instantiation_arg_info = Clang_ast_t.template_instantiation_arg_info
    type comment = Clang_ast_t.comment =
    1. | VerbatimBlockLineComment of comment_info * comment list
    2. | TextComment of comment_info * comment list
    3. | InlineCommandComment of comment_info * comment list
    4. | HTMLStartTagComment of comment_info * comment list
    5. | HTMLEndTagComment of comment_info * comment list
    6. | FullComment of comment_info * comment list
    7. | ParagraphComment of comment_info * comment list
    8. | BlockCommandComment of comment_info * comment list
    9. | VerbatimLineComment of comment_info * comment list
    10. | VerbatimBlockComment of comment_info * comment list
    11. | TParamCommandComment of comment_info * comment list
    12. | ParamCommandComment of comment_info * comment list
    type template_specialization_info = Clang_ast_t.template_specialization_info = {
    1. tsi_template_decl : pointer;
    2. tsi_specialization_args : template_instantiation_arg_info list;
    }
    type decl_info = Clang_ast_t.decl_info = {
    1. di_pointer : pointer;
    2. di_parent_pointer : pointer option;
    3. di_source_range : source_range;
    4. di_owning_module : string option;
    5. di_is_hidden : bool;
    6. di_is_implicit : bool;
    7. di_is_used : bool;
    8. di_is_this_declaration_referenced : bool;
    9. di_is_invalid_decl : bool;
    10. di_attributes : attribute list;
    11. di_full_comment : comment option;
    12. di_access : access_specifier;
    }
    type binding_decl_info = Clang_ast_t.binding_decl_info = {
    1. binding_var : var_decl_info option;
    2. bound_decl_type : qual_type option;
    }
    and block_captured_variable = Clang_ast_t.block_captured_variable = {
    1. bcv_is_by_ref : bool;
    2. bcv_is_nested : bool;
    3. bcv_variable : decl_ref option;
    4. bcv_copy_expr : stmt option;
    }
    and block_decl_info = Clang_ast_t.block_decl_info = {
    1. bdi_parameters : decl list;
    2. bdi_is_variadic : bool;
    3. bdi_captures_cxx_this : bool;
    4. bdi_captured_variables : block_captured_variable list;
    5. bdi_body : stmt option;
    6. bdi_mangled_name : string;
    }
    and coreturn_stmt_info = Clang_ast_t.coreturn_stmt_info = {
    1. coret_operand : stmt option;
    2. coret_promise_call : stmt option;
    }
    and coro_body_stmt_info = Clang_ast_t.coro_body_stmt_info = {
    1. cbs_body : pointer;
    2. cbs_promise_decl_stmt : pointer;
    3. cbs_return_value : stmt;
    }
    and cxx_catch_stmt_info = Clang_ast_t.cxx_catch_stmt_info = {
    1. xcsi_variable : decl option;
    }
    and cxx_ctor_initializer = Clang_ast_t.cxx_ctor_initializer = {
    1. xci_subject : cxx_ctor_initializer_subject;
    2. xci_source_range : source_range;
    3. xci_init_expr : stmt option;
    }
    and cxx_default_expr_info = Clang_ast_t.cxx_default_expr_info = {
    1. xdaei_init_expr : stmt option;
    }
    and cxx_method_decl_info = Clang_ast_t.cxx_method_decl_info = {
    1. xmdi_is_virtual : bool;
    2. xmdi_is_static : bool;
    3. xmdi_is_const : bool;
    4. xmdi_is_copy_assignment : bool;
    5. xmdi_is_copy_constructor : bool;
    6. xmdi_is_move_constructor : bool;
    7. xmdi_cxx_ctor_initializers : cxx_ctor_initializer list;
    8. xmdi_overriden_methods : decl_ref list;
    }
    and cxx_record_decl_info = Clang_ast_t.cxx_record_decl_info = {
    1. xrdi_bases : type_ptr list;
    2. xrdi_vbases : type_ptr list;
    3. xrdi_transitive_vbases : type_ptr list;
    4. xrdi_is_pod : bool;
    5. xrdi_is_trivially_copyable : bool;
    6. xrdi_destructor : decl_ref option;
    7. xrdi_lambda_call_operator : decl_ref option;
    8. xrdi_lambda_captures : lambda_capture_info list;
    }
    and decl = Clang_ast_t.decl =
    1. | TranslationUnitDecl of decl_info * decl list * decl_context_info - * translation_unit_decl_info
    2. | RequiresExprBodyDecl of decl_info
    3. | LinkageSpecDecl of decl_info * decl list * decl_context_info
    4. | ExternCContextDecl of decl_info
    5. | ExportDecl of decl_info
    6. | CapturedDecl of decl_info * decl list * decl_context_info
    7. | BlockDecl of decl_info * block_decl_info
    8. | TopLevelStmtDecl of decl_info
    9. | StaticAssertDecl of decl_info
    10. | PragmaDetectMismatchDecl of decl_info
    11. | PragmaCommentDecl of decl_info
    12. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
    13. | OMPThreadPrivateDecl of decl_info
    14. | OMPRequiresDecl of decl_info
    15. | OMPAllocateDecl of decl_info
    16. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
    17. | ObjCProtocolDecl of decl_info + * translation_unit_decl_info
    18. | TopLevelStmtDecl of decl_info
    19. | RequiresExprBodyDecl of decl_info
    20. | LinkageSpecDecl of decl_info * decl list * decl_context_info
    21. | ExternCContextDecl of decl_info
    22. | ExportDecl of decl_info
    23. | CapturedDecl of decl_info * decl list * decl_context_info
    24. | BlockDecl of decl_info * block_decl_info
    25. | StaticAssertDecl of decl_info
    26. | PragmaDetectMismatchDecl of decl_info
    27. | PragmaCommentDecl of decl_info
    28. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
    29. | OMPThreadPrivateDecl of decl_info
    30. | OMPRequiresDecl of decl_info
    31. | OMPAllocateDecl of decl_info
    32. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
    33. | ObjCProtocolDecl of decl_info * named_decl_info * decl list * decl_context_info @@ -128,7 +128,7 @@ {
      1. oidi_super : decl_ref option;
      2. oidi_class_interface : decl_ref option;
      3. oidi_ivar_initializers : cxx_ctor_initializer list;
      }
    and obj_c_message_expr_kind = Clang_ast_t.obj_c_message_expr_kind
    and obj_c_method_decl_info = Clang_ast_t.obj_c_method_decl_info = {
    1. omdi_is_instance_method : bool;
    2. omdi_result_type : qual_type;
    3. omdi_is_property_accessor : bool;
    4. omdi_property_decl : decl_ref option;
    5. omdi_parameters : decl list;
    6. omdi_implicit_parameters : decl list;
    7. omdi_is_variadic : bool;
    8. omdi_is_overriding : bool;
    9. omdi_is_optional : bool;
    10. omdi_body : stmt option;
    11. omdi_mangled_name : string;
    }
    and opaque_value_expr_info = Clang_ast_t.opaque_value_expr_info = {
    1. ovei_source_expr : stmt option;
    }
    and stmt = Clang_ast_t.stmt =
    1. | WhileStmt of stmt_info * stmt list
    2. | LabelStmt of stmt_info * stmt list * string
    3. | VAArgExpr of stmt_info * stmt list * expr_info
    4. | UnaryOperator of stmt_info * stmt list * expr_info * unary_operator_info
    5. | UnaryExprOrTypeTraitExpr of stmt_info * stmt list * expr_info - * unary_expr_or_type_trait_expr_info
    6. | TypoExpr of stmt_info * stmt list * expr_info
    7. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
    8. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
    9. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
    10. | StringLiteral of stmt_info * stmt list * expr_info * string list
    11. | StmtExpr of stmt_info * stmt list * expr_info
    12. | SourceLocExpr of stmt_info * stmt list * expr_info
    13. | SizeOfPackExpr of stmt_info * stmt list * expr_info
    14. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
    15. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
    16. | RequiresExpr of stmt_info * stmt list * expr_info
    17. | RecoveryExpr of stmt_info * stmt list * expr_info
    18. | PseudoObjectExpr of stmt_info * stmt list * expr_info
    19. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
    20. | ParenListExpr of stmt_info * stmt list * expr_info
    21. | ParenExpr of stmt_info * stmt list * expr_info
    22. | PackExpansionExpr of stmt_info * stmt list * expr_info
    23. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
    24. | UnresolvedLookupExpr of stmt_info + * unary_expr_or_type_trait_expr_info
    25. | TypoExpr of stmt_info * stmt list * expr_info
    26. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
    27. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
    28. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
    29. | StringLiteral of stmt_info * stmt list * expr_info * string list
    30. | StmtExpr of stmt_info * stmt list * expr_info
    31. | SourceLocExpr of stmt_info * stmt list * expr_info
    32. | SizeOfPackExpr of stmt_info * stmt list * expr_info
    33. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
    34. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
    35. | RequiresExpr of stmt_info * stmt list * expr_info
    36. | RecoveryExpr of stmt_info * stmt list * expr_info
    37. | PseudoObjectExpr of stmt_info * stmt list * expr_info
    38. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
    39. | ParenListExpr of stmt_info * stmt list * expr_info
    40. | ParenExpr of stmt_info * stmt list * expr_info
    41. | PackIndexingExpr of stmt_info * stmt list * expr_info
    42. | PackExpansionExpr of stmt_info * stmt list * expr_info
    43. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
    44. | UnresolvedLookupExpr of stmt_info * stmt list * expr_info * overload_expr_info @@ -147,13 +147,13 @@ * obj_c_availability_check_expr_info
    45. | ObjCArrayLiteral of stmt_info * stmt list * expr_info - * obj_c_array_literal_expr_info
    46. | OMPIteratorExpr of stmt_info * stmt list * expr_info
    47. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
    48. | OMPArraySectionExpr of stmt_info * stmt list * expr_info
    49. | NoInitExpr of stmt_info * stmt list * expr_info
    50. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
    51. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
    52. | MaterializeTemporaryExpr of stmt_info + * obj_c_array_literal_expr_info
    53. | OMPIteratorExpr of stmt_info * stmt list * expr_info
    54. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
    55. | NoInitExpr of stmt_info * stmt list * expr_info
    56. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
    57. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
    58. | MaterializeTemporaryExpr of stmt_info * stmt list * expr_info * materialize_temporary_expr_info
    59. | MSPropertySubscriptExpr of stmt_info * stmt list * expr_info
    60. | MSPropertyRefExpr of stmt_info * stmt list * expr_info
    61. | LambdaExpr of stmt_info * stmt list * expr_info * lambda_expr_info
    62. | IntegerLiteral of stmt_info * stmt list * expr_info * integer_literal_info
    63. | InitListExpr of stmt_info * stmt list * expr_info
    64. | ImplicitValueInitExpr of stmt_info * stmt list * expr_info
    65. | ImaginaryLiteral of stmt_info * stmt list * expr_info
    66. | GenericSelectionExpr of stmt_info * stmt list * expr_info - * generic_selection_info
    67. | GNUNullExpr of stmt_info * stmt list * expr_info
    68. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
    69. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
    70. | ConstantExpr of stmt_info * stmt list * expr_info
    71. | FloatingLiteral of stmt_info * stmt list * expr_info * string
    72. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
    73. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
    74. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
    75. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
    76. | DesignatedInitExpr of stmt_info * stmt list * expr_info
    77. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
    78. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
    79. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
    80. | CoyieldExpr of stmt_info * stmt list * expr_info
    81. | CoawaitExpr of stmt_info * stmt list * expr_info
    82. | ConvertVectorExpr of stmt_info * stmt list * expr_info
    83. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
    84. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
    85. | ChooseExpr of stmt_info * stmt list * expr_info
    86. | CharacterLiteral of stmt_info * stmt list * expr_info * int
    87. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
    88. | ObjCBridgedCastExpr of stmt_info + * generic_selection_info
    89. | GNUNullExpr of stmt_info * stmt list * expr_info
    90. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
    91. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
    92. | ConstantExpr of stmt_info * stmt list * expr_info
    93. | FloatingLiteral of stmt_info * stmt list * expr_info * string
    94. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
    95. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
    96. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
    97. | EmbedExpr of stmt_info * stmt list * expr_info
    98. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
    99. | DesignatedInitExpr of stmt_info * stmt list * expr_info
    100. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
    101. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
    102. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
    103. | CoyieldExpr of stmt_info * stmt list * expr_info
    104. | CoawaitExpr of stmt_info * stmt list * expr_info
    105. | ConvertVectorExpr of stmt_info * stmt list * expr_info
    106. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
    107. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
    108. | ChooseExpr of stmt_info * stmt list * expr_info
    109. | CharacterLiteral of stmt_info * stmt list * expr_info * int
    110. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
    111. | ObjCBridgedCastExpr of stmt_info * stmt list * expr_info * cast_expr_info @@ -208,7 +208,7 @@ * stmt list * expr_info * binary_operator_info - * compound_assign_operator_info
    112. | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
    113. | AsTypeExpr of stmt_info * stmt list * expr_info
    114. | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
    115. | ArraySubscriptExpr of stmt_info * stmt list * expr_info
    116. | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
    117. | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
    118. | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
    119. | ConditionalOperator of stmt_info * stmt list * expr_info
    120. | BinaryConditionalOperator of stmt_info * stmt list * expr_info
    121. | AttributedStmt of stmt_info * stmt list * attribute list
    122. | SwitchStmt of stmt_info * stmt list * switch_stmt_info
    123. | DefaultStmt of stmt_info * stmt list
    124. | CaseStmt of stmt_info * stmt list
    125. | SEHTryStmt of stmt_info * stmt list
    126. | SEHLeaveStmt of stmt_info * stmt list
    127. | SEHFinallyStmt of stmt_info * stmt list
    128. | SEHExceptStmt of stmt_info * stmt list
    129. | ReturnStmt of stmt_info * stmt list
    130. | ObjCForCollectionStmt of stmt_info * stmt list
    131. | ObjCAutoreleasePoolStmt of stmt_info * stmt list
    132. | ObjCAtTryStmt of stmt_info * stmt list
    133. | ObjCAtThrowStmt of stmt_info * stmt list
    134. | ObjCAtSynchronizedStmt of stmt_info * stmt list
    135. | ObjCAtFinallyStmt of stmt_info * stmt list
    136. | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
    137. | OMPTeamsDirective of stmt_info * stmt list
    138. | OMPTaskyieldDirective of stmt_info * stmt list
    139. | OMPTaskwaitDirective of stmt_info * stmt list
    140. | OMPTaskgroupDirective of stmt_info * stmt list
    141. | OMPTaskDirective of stmt_info * stmt list
    142. | OMPTargetUpdateDirective of stmt_info * stmt list
    143. | OMPTargetTeamsDirective of stmt_info * stmt list
    144. | OMPTargetParallelForDirective of stmt_info * stmt list
    145. | OMPTargetParallelDirective of stmt_info * stmt list
    146. | OMPTargetExitDataDirective of stmt_info * stmt list
    147. | OMPTargetEnterDataDirective of stmt_info * stmt list
    148. | OMPTargetDirective of stmt_info * stmt list
    149. | OMPTargetDataDirective of stmt_info * stmt list
    150. | OMPSingleDirective of stmt_info * stmt list
    151. | OMPSectionsDirective of stmt_info * stmt list
    152. | OMPSectionDirective of stmt_info * stmt list
    153. | OMPScopeDirective of stmt_info * stmt list
    154. | OMPScanDirective of stmt_info * stmt list
    155. | OMPParallelSectionsDirective of stmt_info * stmt list
    156. | OMPParallelMasterDirective of stmt_info * stmt list
    157. | OMPParallelMaskedDirective of stmt_info * stmt list
    158. | OMPParallelDirective of stmt_info * stmt list
    159. | OMPOrderedDirective of stmt_info * stmt list
    160. | OMPMetaDirective of stmt_info * stmt list
    161. | OMPMasterDirective of stmt_info * stmt list
    162. | OMPMaskedDirective of stmt_info * stmt list
    163. | OMPUnrollDirective of stmt_info * stmt list
    164. | OMPTileDirective of stmt_info * stmt list
    165. | OMPTeamsGenericLoopDirective of stmt_info * stmt list
    166. | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
    167. | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
    168. | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
    169. | OMPTeamsDistributeDirective of stmt_info * stmt list
    170. | OMPTaskLoopSimdDirective of stmt_info * stmt list
    171. | OMPTaskLoopDirective of stmt_info * stmt list
    172. | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
    173. | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
    174. | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
    175. | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
    176. | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
    177. | OMPTargetSimdDirective of stmt_info * stmt list
    178. | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
    179. | OMPTargetParallelForSimdDirective of stmt_info * stmt list
    180. | OMPSimdDirective of stmt_info * stmt list
    181. | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
    182. | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
    183. | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
    184. | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
    185. | OMPParallelGenericLoopDirective of stmt_info * stmt list
    186. | OMPParallelForSimdDirective of stmt_info * stmt list
    187. | OMPParallelForDirective of stmt_info * stmt list
    188. | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
    189. | OMPMasterTaskLoopDirective of stmt_info * stmt list
    190. | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
    191. | OMPMaskedTaskLoopDirective of stmt_info * stmt list
    192. | OMPGenericLoopDirective of stmt_info * stmt list
    193. | OMPForSimdDirective of stmt_info * stmt list
    194. | OMPForDirective of stmt_info * stmt list
    195. | OMPDistributeSimdDirective of stmt_info * stmt list
    196. | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
    197. | OMPDistributeParallelForDirective of stmt_info * stmt list
    198. | OMPDistributeDirective of stmt_info * stmt list
    199. | OMPInteropDirective of stmt_info * stmt list
    200. | OMPFlushDirective of stmt_info * stmt list
    201. | OMPErrorDirective of stmt_info * stmt list
    202. | OMPDispatchDirective of stmt_info * stmt list
    203. | OMPDepobjDirective of stmt_info * stmt list
    204. | OMPCriticalDirective of stmt_info * stmt list
    205. | OMPCancellationPointDirective of stmt_info * stmt list
    206. | OMPCancelDirective of stmt_info * stmt list
    207. | OMPBarrierDirective of stmt_info * stmt list
    208. | OMPAtomicDirective of stmt_info * stmt list
    209. | OMPCanonicalLoop of stmt_info * stmt list
    210. | NullStmt of stmt_info * stmt list
    211. | MSDependentExistsStmt of stmt_info * stmt list
    212. | IndirectGotoStmt of stmt_info * stmt list
    213. | IfStmt of stmt_info * stmt list * if_stmt_info
    214. | GotoStmt of stmt_info * stmt list * goto_stmt_info
    215. | ForStmt of stmt_info * stmt list
    216. | DoStmt of stmt_info * stmt list
    217. | DeclStmt of stmt_info * stmt list * decl list
    218. | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
    219. | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
    220. | ContinueStmt of stmt_info * stmt list
    221. | CompoundStmt of stmt_info * stmt list
    222. | CapturedStmt of stmt_info * stmt list
    223. | CXXTryStmt of stmt_info * stmt list
    224. | CXXForRangeStmt of stmt_info * stmt list
    225. | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
    226. | BreakStmt of stmt_info * stmt list
    227. | MSAsmStmt of stmt_info * stmt list
    228. | GCCAsmStmt of stmt_info * stmt list
    and switch_stmt_info = Clang_ast_t.switch_stmt_info = {
    1. ssi_init : pointer option;
    2. ssi_cond_var : stmt option;
    3. ssi_cond : pointer;
    4. ssi_body : pointer;
    5. ssi_is_all_enum_cases_covered : bool;
    }
    and template_decl_info = Clang_ast_t.template_decl_info = {
    1. tdi_specializations : decl list;
    }
    and var_decl_info = Clang_ast_t.var_decl_info = {
    1. vdi_is_global : bool;
    2. vdi_is_extern : bool;
    3. vdi_is_static : bool;
    4. vdi_is_static_local : bool;
    5. vdi_is_static_data_member : bool;
    6. vdi_is_constexpr : bool;
    7. vdi_is_init_ice : bool;
    8. vdi_init_expr : stmt option;
    9. vdi_is_init_expr_cxx11_constant : bool;
    10. vdi_parm_index_in_function : int option;
    }
    type lookup = Clang_ast_t.lookup = {
    1. lup_decl_name : string;
    2. lup_decl_refs : decl_ref list;
    }
    type lookups = Clang_ast_t.lookups = {
    1. lups_decl_ref : decl_ref;
    2. lups_primary_context_pointer : pointer option;
    3. lups_lookups : lookup list;
    4. lups_has_undeserialized_decls : bool;
    }
    val write_access_specifier : Stdlib.Buffer.t -> access_specifier -> unit

    Output a JSON value of type access_specifier.

    val string_of_access_specifier : ?len:int -> access_specifier -> string

    Serialize a value of type access_specifier into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_access_specifier : + * compound_assign_operator_info
  • | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
  • | AsTypeExpr of stmt_info * stmt list * expr_info
  • | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
  • | ArraySubscriptExpr of stmt_info * stmt list * expr_info
  • | ArraySectionExpr of stmt_info * stmt list * expr_info
  • | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
  • | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
  • | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
  • | ConditionalOperator of stmt_info * stmt list * expr_info
  • | BinaryConditionalOperator of stmt_info * stmt list * expr_info
  • | AttributedStmt of stmt_info * stmt list * attribute list
  • | SwitchStmt of stmt_info * stmt list * switch_stmt_info
  • | DefaultStmt of stmt_info * stmt list
  • | CaseStmt of stmt_info * stmt list
  • | SEHTryStmt of stmt_info * stmt list
  • | SEHLeaveStmt of stmt_info * stmt list
  • | SEHFinallyStmt of stmt_info * stmt list
  • | SEHExceptStmt of stmt_info * stmt list
  • | ReturnStmt of stmt_info * stmt list
  • | OpenACCLoopConstruct of stmt_info * stmt list
  • | OpenACCComputeConstruct of stmt_info * stmt list
  • | ObjCForCollectionStmt of stmt_info * stmt list
  • | ObjCAutoreleasePoolStmt of stmt_info * stmt list
  • | ObjCAtTryStmt of stmt_info * stmt list
  • | ObjCAtThrowStmt of stmt_info * stmt list
  • | ObjCAtSynchronizedStmt of stmt_info * stmt list
  • | ObjCAtFinallyStmt of stmt_info * stmt list
  • | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
  • | OMPTeamsDirective of stmt_info * stmt list
  • | OMPTaskyieldDirective of stmt_info * stmt list
  • | OMPTaskwaitDirective of stmt_info * stmt list
  • | OMPTaskgroupDirective of stmt_info * stmt list
  • | OMPTaskDirective of stmt_info * stmt list
  • | OMPTargetUpdateDirective of stmt_info * stmt list
  • | OMPTargetTeamsDirective of stmt_info * stmt list
  • | OMPTargetParallelForDirective of stmt_info * stmt list
  • | OMPTargetParallelDirective of stmt_info * stmt list
  • | OMPTargetExitDataDirective of stmt_info * stmt list
  • | OMPTargetEnterDataDirective of stmt_info * stmt list
  • | OMPTargetDirective of stmt_info * stmt list
  • | OMPTargetDataDirective of stmt_info * stmt list
  • | OMPSingleDirective of stmt_info * stmt list
  • | OMPSectionsDirective of stmt_info * stmt list
  • | OMPSectionDirective of stmt_info * stmt list
  • | OMPScopeDirective of stmt_info * stmt list
  • | OMPScanDirective of stmt_info * stmt list
  • | OMPParallelSectionsDirective of stmt_info * stmt list
  • | OMPParallelMasterDirective of stmt_info * stmt list
  • | OMPParallelMaskedDirective of stmt_info * stmt list
  • | OMPParallelDirective of stmt_info * stmt list
  • | OMPOrderedDirective of stmt_info * stmt list
  • | OMPMetaDirective of stmt_info * stmt list
  • | OMPMasterDirective of stmt_info * stmt list
  • | OMPMaskedDirective of stmt_info * stmt list
  • | OMPUnrollDirective of stmt_info * stmt list
  • | OMPTileDirective of stmt_info * stmt list
  • | OMPReverseDirective of stmt_info * stmt list
  • | OMPInterchangeDirective of stmt_info * stmt list
  • | OMPTeamsGenericLoopDirective of stmt_info * stmt list
  • | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
  • | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
  • | OMPTeamsDistributeDirective of stmt_info * stmt list
  • | OMPTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPTaskLoopDirective of stmt_info * stmt list
  • | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
  • | OMPTargetSimdDirective of stmt_info * stmt list
  • | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
  • | OMPTargetParallelForSimdDirective of stmt_info * stmt list
  • | OMPSimdDirective of stmt_info * stmt list
  • | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
  • | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
  • | OMPParallelGenericLoopDirective of stmt_info * stmt list
  • | OMPParallelForSimdDirective of stmt_info * stmt list
  • | OMPParallelForDirective of stmt_info * stmt list
  • | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPMasterTaskLoopDirective of stmt_info * stmt list
  • | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPMaskedTaskLoopDirective of stmt_info * stmt list
  • | OMPGenericLoopDirective of stmt_info * stmt list
  • | OMPForSimdDirective of stmt_info * stmt list
  • | OMPForDirective of stmt_info * stmt list
  • | OMPDistributeSimdDirective of stmt_info * stmt list
  • | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPDistributeParallelForDirective of stmt_info * stmt list
  • | OMPDistributeDirective of stmt_info * stmt list
  • | OMPInteropDirective of stmt_info * stmt list
  • | OMPFlushDirective of stmt_info * stmt list
  • | OMPErrorDirective of stmt_info * stmt list
  • | OMPDispatchDirective of stmt_info * stmt list
  • | OMPDepobjDirective of stmt_info * stmt list
  • | OMPCriticalDirective of stmt_info * stmt list
  • | OMPCancellationPointDirective of stmt_info * stmt list
  • | OMPCancelDirective of stmt_info * stmt list
  • | OMPBarrierDirective of stmt_info * stmt list
  • | OMPAtomicDirective of stmt_info * stmt list
  • | OMPCanonicalLoop of stmt_info * stmt list
  • | NullStmt of stmt_info * stmt list
  • | MSDependentExistsStmt of stmt_info * stmt list
  • | IndirectGotoStmt of stmt_info * stmt list
  • | IfStmt of stmt_info * stmt list * if_stmt_info
  • | GotoStmt of stmt_info * stmt list * goto_stmt_info
  • | ForStmt of stmt_info * stmt list
  • | DoStmt of stmt_info * stmt list
  • | DeclStmt of stmt_info * stmt list * decl list
  • | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
  • | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
  • | ContinueStmt of stmt_info * stmt list
  • | CompoundStmt of stmt_info * stmt list
  • | CapturedStmt of stmt_info * stmt list
  • | CXXTryStmt of stmt_info * stmt list
  • | CXXForRangeStmt of stmt_info * stmt list
  • | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
  • | BreakStmt of stmt_info * stmt list
  • | MSAsmStmt of stmt_info * stmt list
  • | GCCAsmStmt of stmt_info * stmt list
  • and switch_stmt_info = Clang_ast_t.switch_stmt_info = {
    1. ssi_init : pointer option;
    2. ssi_cond_var : stmt option;
    3. ssi_cond : pointer;
    4. ssi_body : pointer;
    5. ssi_is_all_enum_cases_covered : bool;
    }
    and template_decl_info = Clang_ast_t.template_decl_info = {
    1. tdi_specializations : decl list;
    }
    and var_decl_info = Clang_ast_t.var_decl_info = {
    1. vdi_is_global : bool;
    2. vdi_is_extern : bool;
    3. vdi_is_static : bool;
    4. vdi_is_static_local : bool;
    5. vdi_is_static_data_member : bool;
    6. vdi_is_constexpr : bool;
    7. vdi_is_init_ice : bool;
    8. vdi_init_expr : stmt option;
    9. vdi_is_init_expr_cxx11_constant : bool;
    10. vdi_parm_index_in_function : int option;
    }
    type lookup = Clang_ast_t.lookup = {
    1. lup_decl_name : string;
    2. lup_decl_refs : decl_ref list;
    }
    type lookups = Clang_ast_t.lookups = {
    1. lups_decl_ref : decl_ref;
    2. lups_primary_context_pointer : pointer option;
    3. lups_lookups : lookup list;
    4. lups_has_undeserialized_decls : bool;
    }
    val write_access_specifier : Stdlib.Buffer.t -> access_specifier -> unit

    Output a JSON value of type access_specifier.

    val string_of_access_specifier : ?len:int -> access_specifier -> string

    Serialize a value of type access_specifier into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_access_specifier : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> access_specifier

    Input JSON data of type access_specifier.

    val access_specifier_of_string : string -> access_specifier

    Deserialize JSON data of type access_specifier.

    val write_atomic_expr_kind : Stdlib.Buffer.t -> atomic_expr_kind -> unit

    Output a JSON value of type atomic_expr_kind.

    val string_of_atomic_expr_kind : ?len:int -> atomic_expr_kind -> string

    Serialize a value of type atomic_expr_kind into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_atomic_expr_kind : @@ -295,7 +295,10 @@ lambda_capture_kind

    Input JSON data of type lambda_capture_kind.

    val lambda_capture_kind_of_string : string -> lambda_capture_kind

    Deserialize JSON data of type lambda_capture_kind.

    val write_named_decl_info : Stdlib.Buffer.t -> named_decl_info -> unit

    Output a JSON value of type named_decl_info.

    val string_of_named_decl_info : ?len:int -> named_decl_info -> string

    Serialize a value of type named_decl_info into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_named_decl_info : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> - named_decl_info

    Input JSON data of type named_decl_info.

    val named_decl_info_of_string : string -> named_decl_info

    Deserialize JSON data of type named_decl_info.

    val write_obj_c_access_control : + named_decl_info

    Input JSON data of type named_decl_info.

    val named_decl_info_of_string : string -> named_decl_info

    Deserialize JSON data of type named_decl_info.

    val write_namespace_decl_info : Stdlib.Buffer.t -> namespace_decl_info -> unit

    Output a JSON value of type namespace_decl_info.

    val string_of_namespace_decl_info : ?len:int -> namespace_decl_info -> string

    Serialize a value of type namespace_decl_info into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_namespace_decl_info : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + namespace_decl_info

    Input JSON data of type namespace_decl_info.

    val namespace_decl_info_of_string : string -> namespace_decl_info

    Deserialize JSON data of type namespace_decl_info.

    val write_obj_c_access_control : Stdlib.Buffer.t -> obj_c_access_control -> unit

    Output a JSON value of type obj_c_access_control.

    val string_of_obj_c_access_control : ?len:int -> obj_c_access_control -> string

    Serialize a value of type obj_c_access_control into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_obj_c_access_control : @@ -559,10 +562,7 @@ materialize_temporary_expr_info

    Deserialize JSON data of type materialize_temporary_expr_info.

    val write_member_expr_info : Stdlib.Buffer.t -> member_expr_info -> unit

    Output a JSON value of type member_expr_info.

    val string_of_member_expr_info : ?len:int -> member_expr_info -> string

    Serialize a value of type member_expr_info into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_member_expr_info : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> - member_expr_info

    Input JSON data of type member_expr_info.

    val member_expr_info_of_string : string -> member_expr_info

    Deserialize JSON data of type member_expr_info.

    val write_namespace_decl_info : Stdlib.Buffer.t -> namespace_decl_info -> unit

    Output a JSON value of type namespace_decl_info.

    val string_of_namespace_decl_info : ?len:int -> namespace_decl_info -> string

    Serialize a value of type namespace_decl_info into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_namespace_decl_info : - Yojson.Safe.lexer_state -> - Stdlib.Lexing.lexbuf -> - namespace_decl_info

    Input JSON data of type namespace_decl_info.

    val namespace_decl_info_of_string : string -> namespace_decl_info

    Deserialize JSON data of type namespace_decl_info.

    val write_nested_name_specifier_loc : + member_expr_info

    Input JSON data of type member_expr_info.

    val member_expr_info_of_string : string -> member_expr_info

    Deserialize JSON data of type member_expr_info.

    val write_nested_name_specifier_loc : Stdlib.Buffer.t -> nested_name_specifier_loc -> unit

    Output a JSON value of type nested_name_specifier_loc.

    val string_of_nested_name_specifier_loc : diff --git a/website/static/odoc/next/infer/ATDGenerated/Clang_ast_t/index.html b/website/static/odoc/next/infer/ATDGenerated/Clang_ast_t/index.html index 525f63688f6..5a7db56a184 100644 --- a/website/static/odoc/next/infer/ATDGenerated/Clang_ast_t/index.html +++ b/website/static/odoc/next/infer/ATDGenerated/Clang_ast_t/index.html @@ -1,8 +1,8 @@ -Clang_ast_t (infer.ATDGenerated.Clang_ast_t)

    Module ATDGenerated.Clang_ast_t

    type access_specifier = [
    1. | `None
    2. | `Public
    3. | `Protected
    4. | `Private
    ]
    type atomic_expr_kind = [
    1. | `AO__c11_atomic_init
    2. | `AO__c11_atomic_load
    3. | `AO__c11_atomic_store
    4. | `AO__c11_atomic_exchange
    5. | `AO__c11_atomic_compare_exchange_strong
    6. | `AO__c11_atomic_compare_exchange_weak
    7. | `AO__c11_atomic_fetch_add
    8. | `AO__c11_atomic_fetch_sub
    9. | `AO__c11_atomic_fetch_and
    10. | `AO__c11_atomic_fetch_or
    11. | `AO__c11_atomic_fetch_xor
    12. | `AO__c11_atomic_fetch_nand
    13. | `AO__c11_atomic_fetch_max
    14. | `AO__c11_atomic_fetch_min
    15. | `AO__atomic_load
    16. | `AO__atomic_load_n
    17. | `AO__atomic_store
    18. | `AO__atomic_store_n
    19. | `AO__atomic_exchange
    20. | `AO__atomic_exchange_n
    21. | `AO__atomic_compare_exchange
    22. | `AO__atomic_compare_exchange_n
    23. | `AO__atomic_fetch_add
    24. | `AO__atomic_fetch_sub
    25. | `AO__atomic_fetch_and
    26. | `AO__atomic_fetch_or
    27. | `AO__atomic_fetch_xor
    28. | `AO__atomic_fetch_nand
    29. | `AO__atomic_add_fetch
    30. | `AO__atomic_sub_fetch
    31. | `AO__atomic_and_fetch
    32. | `AO__atomic_or_fetch
    33. | `AO__atomic_xor_fetch
    34. | `AO__atomic_max_fetch
    35. | `AO__atomic_min_fetch
    36. | `AO__atomic_nand_fetch
    37. | `AO__scoped_atomic_load
    38. | `AO__scoped_atomic_load_n
    39. | `AO__scoped_atomic_store
    40. | `AO__scoped_atomic_store_n
    41. | `AO__scoped_atomic_exchange
    42. | `AO__scoped_atomic_exchange_n
    43. | `AO__scoped_atomic_compare_exchange
    44. | `AO__scoped_atomic_compare_exchange_n
    45. | `AO__scoped_atomic_fetch_add
    46. | `AO__scoped_atomic_fetch_sub
    47. | `AO__scoped_atomic_fetch_and
    48. | `AO__scoped_atomic_fetch_or
    49. | `AO__scoped_atomic_fetch_xor
    50. | `AO__scoped_atomic_fetch_nand
    51. | `AO__scoped_atomic_add_fetch
    52. | `AO__scoped_atomic_sub_fetch
    53. | `AO__scoped_atomic_and_fetch
    54. | `AO__scoped_atomic_or_fetch
    55. | `AO__scoped_atomic_xor_fetch
    56. | `AO__scoped_atomic_max_fetch
    57. | `AO__scoped_atomic_min_fetch
    58. | `AO__scoped_atomic_nand_fetch
    59. | `AO__scoped_atomic_fetch_min
    60. | `AO__scoped_atomic_fetch_max
    61. | `AO__opencl_atomic_init
    62. | `AO__opencl_atomic_load
    63. | `AO__opencl_atomic_store
    64. | `AO__opencl_atomic_exchange
    65. | `AO__opencl_atomic_compare_exchange_strong
    66. | `AO__opencl_atomic_compare_exchange_weak
    67. | `AO__opencl_atomic_fetch_add
    68. | `AO__opencl_atomic_fetch_sub
    69. | `AO__opencl_atomic_fetch_and
    70. | `AO__opencl_atomic_fetch_or
    71. | `AO__opencl_atomic_fetch_xor
    72. | `AO__opencl_atomic_fetch_min
    73. | `AO__opencl_atomic_fetch_max
    74. | `AO__atomic_fetch_min
    75. | `AO__atomic_fetch_max
    76. | `AO__hip_atomic_load
    77. | `AO__hip_atomic_store
    78. | `AO__hip_atomic_compare_exchange_weak
    79. | `AO__hip_atomic_compare_exchange_strong
    80. | `AO__hip_atomic_exchange
    81. | `AO__hip_atomic_fetch_add
    82. | `AO__hip_atomic_fetch_sub
    83. | `AO__hip_atomic_fetch_and
    84. | `AO__hip_atomic_fetch_or
    85. | `AO__hip_atomic_fetch_xor
    86. | `AO__hip_atomic_fetch_min
    87. | `AO__hip_atomic_fetch_max
    ]
    type atomic_expr_info = {
    1. aei_kind : atomic_expr_kind;
    }
    type attribute_kind =
    1. | AddressSpaceAttrKind
    2. | AnnotateTypeAttrKind
    3. | ArmInAttrKind
    4. | ArmInOutAttrKind
    5. | ArmMveStrictPolymorphismAttrKind
    6. | ArmOutAttrKind
    7. | ArmPreservesAttrKind
    8. | ArmStreamingAttrKind
    9. | ArmStreamingCompatibleAttrKind
    10. | BTFTypeTagAttrKind
    11. | CmseNSCallAttrKind
    12. | HLSLGroupSharedAddressSpaceAttrKind
    13. | HLSLParamModifierAttrKind
    14. | NoDerefAttrKind
    15. | ObjCGCAttrKind
    16. | ObjCInertUnsafeUnretainedAttrKind
    17. | ObjCKindOfAttrKind
    18. | OpenCLConstantAddressSpaceAttrKind
    19. | OpenCLGenericAddressSpaceAttrKind
    20. | OpenCLGlobalAddressSpaceAttrKind
    21. | OpenCLGlobalDeviceAddressSpaceAttrKind
    22. | OpenCLGlobalHostAddressSpaceAttrKind
    23. | OpenCLLocalAddressSpaceAttrKind
    24. | OpenCLPrivateAddressSpaceAttrKind
    25. | Ptr32AttrKind
    26. | Ptr64AttrKind
    27. | SPtrAttrKind
    28. | TypeNonNullAttrKind
    29. | TypeNullUnspecifiedAttrKind
    30. | TypeNullableAttrKind
    31. | TypeNullableResultAttrKind
    32. | UPtrAttrKind
    33. | WebAssemblyFuncrefAttrKind
    34. | CodeAlignAttrKind
    35. | FallThroughAttrKind
    36. | LikelyAttrKind
    37. | MustTailAttrKind
    38. | OpenCLUnrollHintAttrKind
    39. | UnlikelyAttrKind
    40. | AlwaysInlineAttrKind
    41. | NoInlineAttrKind
    42. | NoMergeAttrKind
    43. | SuppressAttrKind
    44. | AArch64SVEPcsAttrKind
    45. | AArch64VectorPcsAttrKind
    46. | AMDGPUKernelCallAttrKind
    47. | AcquireHandleAttrKind
    48. | AnyX86NoCfCheckAttrKind
    49. | CDeclAttrKind
    50. | FastCallAttrKind
    51. | IntelOclBiccAttrKind
    52. | LifetimeBoundAttrKind
    53. | M68kRTDAttrKind
    54. | MSABIAttrKind
    55. | NSReturnsRetainedAttrKind
    56. | ObjCOwnershipAttrKind
    57. | PascalAttrKind
    58. | PcsAttrKind
    59. | PreserveAllAttrKind
    60. | PreserveMostAttrKind
    61. | RegCallAttrKind
    62. | StdCallAttrKind
    63. | SwiftAsyncCallAttrKind
    64. | SwiftCallAttrKind
    65. | SysVABIAttrKind
    66. | ThisCallAttrKind
    67. | VectorCallAttrKind
    68. | SwiftAsyncContextAttrKind
    69. | SwiftContextAttrKind
    70. | SwiftErrorResultAttrKind
    71. | SwiftIndirectResultAttrKind
    72. | AnnotateAttrKind
    73. | CFConsumedAttrKind
    74. | CarriesDependencyAttrKind
    75. | NSConsumedAttrKind
    76. | NonNullAttrKind
    77. | OSConsumedAttrKind
    78. | PassObjectSizeAttrKind
    79. | ReleaseHandleAttrKind
    80. | UseHandleAttrKind
    81. | HLSLSV_DispatchThreadIDAttrKind
    82. | HLSLSV_GroupIndexAttrKind
    83. | AMDGPUFlatWorkGroupSizeAttrKind
    84. | AMDGPUNumSGPRAttrKind
    85. | AMDGPUNumVGPRAttrKind
    86. | AMDGPUWavesPerEUAttrKind
    87. | ARMInterruptAttrKind
    88. | AVRInterruptAttrKind
    89. | AVRSignalAttrKind
    90. | AcquireCapabilityAttrKind
    91. | AcquiredAfterAttrKind
    92. | AcquiredBeforeAttrKind
    93. | AlignMac68kAttrKind
    94. | AlignNaturalAttrKind
    95. | AlignedAttrKind
    96. | AllocAlignAttrKind
    97. | AllocSizeAttrKind
    98. | AlwaysDestroyAttrKind
    99. | AnalyzerNoReturnAttrKind
    100. | AnyX86InterruptAttrKind
    101. | AnyX86NoCallerSavedRegistersAttrKind
    102. | ArcWeakrefUnavailableAttrKind
    103. | ArgumentWithTypeTagAttrKind
    104. | ArmBuiltinAliasAttrKind
    105. | ArmLocallyStreamingAttrKind
    106. | ArmNewAttrKind
    107. | ArtificialAttrKind
    108. | AsmLabelAttrKind
    109. | AssertCapabilityAttrKind
    110. | AssertExclusiveLockAttrKind
    111. | AssertSharedLockAttrKind
    112. | AssumeAlignedAttrKind
    113. | AssumptionAttrKind
    114. | AvailabilityAttrKind
    115. | AvailableOnlyInDefaultEvalMethodAttrKind
    116. | BPFPreserveAccessIndexAttrKind
    117. | BPFPreserveStaticOffsetAttrKind
    118. | BTFDeclTagAttrKind
    119. | BlocksAttrKind
    120. | BuiltinAttrKind
    121. | C11NoReturnAttrKind
    122. | CFAuditedTransferAttrKind
    123. | CFGuardAttrKind
    124. | CFICanonicalJumpTableAttrKind
    125. | CFReturnsNotRetainedAttrKind
    126. | CFReturnsRetainedAttrKind
    127. | CFUnknownTransferAttrKind
    128. | CPUDispatchAttrKind
    129. | CPUSpecificAttrKind
    130. | CUDAConstantAttrKind
    131. | CUDADeviceAttrKind
    132. | CUDADeviceBuiltinSurfaceTypeAttrKind
    133. | CUDADeviceBuiltinTextureTypeAttrKind
    134. | CUDAGlobalAttrKind
    135. | CUDAHostAttrKind
    136. | CUDAInvalidTargetAttrKind
    137. | CUDALaunchBoundsAttrKind
    138. | CUDASharedAttrKind
    139. | CXX11NoReturnAttrKind
    140. | CallableWhenAttrKind
    141. | CallbackAttrKind
    142. | CapabilityAttrKind
    143. | CapturedRecordAttrKind
    144. | CleanupAttrKind
    145. | CmseNSEntryAttrKind
    146. | CodeModelAttrKind
    147. | CodeSegAttrKind
    148. | ColdAttrKind
    149. | CommonAttrKind
    150. | ConstAttrKind
    151. | ConstInitAttrKind
    152. | ConstructorAttrKind
    153. | ConsumableAttrKind
    154. | ConsumableAutoCastAttrKind
    155. | ConsumableSetOnReadAttrKind
    156. | ConvergentAttrKind
    157. | CoroDisableLifetimeBoundAttrKind
    158. | CoroLifetimeBoundAttrKind
    159. | CoroOnlyDestroyWhenCompleteAttrKind
    160. | CoroReturnTypeAttrKind
    161. | CoroWrapperAttrKind
    162. | CountedByAttrKind
    163. | DLLExportAttrKind
    164. | DLLExportStaticLocalAttrKind
    165. | DLLImportAttrKind
    166. | DLLImportStaticLocalAttrKind
    167. | DeprecatedAttrKind
    168. | DestructorAttrKind
    169. | DiagnoseAsBuiltinAttrKind
    170. | DiagnoseIfAttrKind
    171. | DisableSanitizerInstrumentationAttrKind
    172. | DisableTailCallsAttrKind
    173. | EmptyBasesAttrKind
    174. | EnableIfAttrKind
    175. | EnforceTCBAttrKind
    176. | EnforceTCBLeafAttrKind
    177. | EnumExtensibilityAttrKind
    178. | ErrorAttrKind
    179. | ExcludeFromExplicitInstantiationAttrKind
    180. | ExclusiveTrylockFunctionAttrKind
    181. | ExternalSourceSymbolAttrKind
    182. | FinalAttrKind
    183. | FlagEnumAttrKind
    184. | FlattenAttrKind
    185. | FormatAttrKind
    186. | FormatArgAttrKind
    187. | FunctionReturnThunksAttrKind
    188. | GNUInlineAttrKind
    189. | GuardedByAttrKind
    190. | GuardedVarAttrKind
    191. | HIPManagedAttrKind
    192. | HLSLNumThreadsAttrKind
    193. | HLSLResourceAttrKind
    194. | HLSLResourceBindingAttrKind
    195. | HLSLShaderAttrKind
    196. | HotAttrKind
    197. | IBActionAttrKind
    198. | IBOutletAttrKind
    199. | IBOutletCollectionAttrKind
    200. | InitPriorityAttrKind
    201. | InternalLinkageAttrKind
    202. | LTOVisibilityPublicAttrKind
    203. | LayoutVersionAttrKind
    204. | LeafAttrKind
    205. | LockReturnedAttrKind
    206. | LocksExcludedAttrKind
    207. | M68kInterruptAttrKind
    208. | MIGServerRoutineAttrKind
    209. | MSAllocatorAttrKind
    210. | MSConstexprAttrKind
    211. | MSInheritanceAttrKind
    212. | MSNoVTableAttrKind
    213. | MSP430InterruptAttrKind
    214. | MSStructAttrKind
    215. | MSVtorDispAttrKind
    216. | MaxFieldAlignmentAttrKind
    217. | MayAliasAttrKind
    218. | MaybeUndefAttrKind
    219. | MicroMipsAttrKind
    220. | MinSizeAttrKind
    221. | MinVectorWidthAttrKind
    222. | Mips16AttrKind
    223. | MipsInterruptAttrKind
    224. | MipsLongCallAttrKind
    225. | MipsShortCallAttrKind
    226. | NSConsumesSelfAttrKind
    227. | NSErrorDomainAttrKind
    228. | NSReturnsAutoreleasedAttrKind
    229. | NSReturnsNotRetainedAttrKind
    230. | NVPTXKernelAttrKind
    231. | NakedAttrKind
    232. | NoAliasAttrKind
    233. | NoCommonAttrKind
    234. | NoDebugAttrKind
    235. | NoDestroyAttrKind
    236. | NoDuplicateAttrKind
    237. | NoInstrumentFunctionAttrKind
    238. | NoMicroMipsAttrKind
    239. | NoMips16AttrKind
    240. | NoProfileFunctionAttrKind
    241. | NoRandomizeLayoutAttrKind
    242. | NoReturnAttrKind
    243. | NoSanitizeAttrKind
    244. | NoSpeculativeLoadHardeningAttrKind
    245. | NoSplitStackAttrKind
    246. | NoStackProtectorAttrKind
    247. | NoThreadSafetyAnalysisAttrKind
    248. | NoThrowAttrKind
    249. | NoUniqueAddressAttrKind
    250. | NoUwtableAttrKind
    251. | NotTailCalledAttrKind
    252. | OMPAllocateDeclAttrKind
    253. | OMPCaptureNoInitAttrKind
    254. | OMPDeclareTargetDeclAttrKind
    255. | OMPDeclareVariantAttrKind
    256. | OMPThreadPrivateDeclAttrKind
    257. | OSConsumesThisAttrKind
    258. | OSReturnsNotRetainedAttrKind
    259. | OSReturnsRetainedAttrKind
    260. | OSReturnsRetainedOnNonZeroAttrKind
    261. | OSReturnsRetainedOnZeroAttrKind
    262. | ObjCBridgeAttrKind
    263. | ObjCBridgeMutableAttrKind
    264. | ObjCBridgeRelatedAttrKind
    265. | ObjCExceptionAttrKind
    266. | ObjCExplicitProtocolImplAttrKind
    267. | ObjCExternallyRetainedAttrKind
    268. | ObjCIndependentClassAttrKind
    269. | ObjCMethodFamilyAttrKind
    270. | ObjCNSObjectAttrKind
    271. | ObjCPreciseLifetimeAttrKind
    272. | ObjCRequiresPropertyDefsAttrKind
    273. | ObjCRequiresSuperAttrKind
    274. | ObjCReturnsInnerPointerAttrKind
    275. | ObjCRootClassAttrKind
    276. | ObjCSubclassingRestrictedAttrKind
    277. | OpenCLIntelReqdSubGroupSizeAttrKind
    278. | OpenCLKernelAttrKind
    279. | OptimizeNoneAttrKind
    280. | OverrideAttrKind
    281. | OwnerAttrKind
    282. | OwnershipAttrKind
    283. | PackedAttrKind
    284. | ParamTypestateAttrKind
    285. | PatchableFunctionEntryAttrKind
    286. | PointerAttrKind
    287. | PragmaClangBSSSectionAttrKind
    288. | PragmaClangDataSectionAttrKind
    289. | PragmaClangRelroSectionAttrKind
    290. | PragmaClangRodataSectionAttrKind
    291. | PragmaClangTextSectionAttrKind
    292. | PreferredNameAttrKind
    293. | PreferredTypeAttrKind
    294. | PtGuardedByAttrKind
    295. | PtGuardedVarAttrKind
    296. | PureAttrKind
    297. | RISCVInterruptAttrKind
    298. | RandomizeLayoutAttrKind
    299. | ReadOnlyPlacementAttrKind
    300. | ReinitializesAttrKind
    301. | ReleaseCapabilityAttrKind
    302. | ReqdWorkGroupSizeAttrKind
    303. | RequiresCapabilityAttrKind
    304. | RestrictAttrKind
    305. | RetainAttrKind
    306. | ReturnTypestateAttrKind
    307. | ReturnsNonNullAttrKind
    308. | ReturnsTwiceAttrKind
    309. | SYCLKernelAttrKind
    310. | SYCLSpecialClassAttrKind
    311. | ScopedLockableAttrKind
    312. | SectionAttrKind
    313. | SelectAnyAttrKind
    314. | SentinelAttrKind
    315. | SetTypestateAttrKind
    316. | SharedTrylockFunctionAttrKind
    317. | SpeculativeLoadHardeningAttrKind
    318. | StandaloneDebugAttrKind
    319. | StrictFPAttrKind
    320. | StrictGuardStackCheckAttrKind
    321. | SwiftAsyncAttrKind
    322. | SwiftAsyncErrorAttrKind
    323. | SwiftAsyncNameAttrKind
    324. | SwiftAttrAttrKind
    325. | SwiftBridgeAttrKind
    326. | SwiftBridgedTypedefAttrKind
    327. | SwiftErrorAttrKind
    328. | SwiftImportAsNonGenericAttrKind
    329. | SwiftImportPropertyAsAccessorsAttrKind
    330. | SwiftNameAttrKind
    331. | SwiftNewTypeAttrKind
    332. | SwiftPrivateAttrKind
    333. | TLSModelAttrKind
    334. | TargetAttrKind
    335. | TargetClonesAttrKind
    336. | TargetVersionAttrKind
    337. | TestTypestateAttrKind
    338. | TransparentUnionAttrKind
    339. | TrivialABIAttrKind
    340. | TryAcquireCapabilityAttrKind
    341. | TypeTagForDatatypeAttrKind
    342. | TypeVisibilityAttrKind
    343. | UnavailableAttrKind
    344. | UninitializedAttrKind
    345. | UnsafeBufferUsageAttrKind
    346. | UnusedAttrKind
    347. | UsedAttrKind
    348. | UsingIfExistsAttrKind
    349. | UuidAttrKind
    350. | VecReturnAttrKind
    351. | VecTypeHintAttrKind
    352. | VisibilityAttrKind
    353. | WarnUnusedAttrKind
    354. | WarnUnusedResultAttrKind
    355. | WeakAttrKind
    356. | WeakImportAttrKind
    357. | WeakRefAttrKind
    358. | WebAssemblyExportNameAttrKind
    359. | WebAssemblyImportModuleAttrKind
    360. | WebAssemblyImportNameAttrKind
    361. | WorkGroupSizeHintAttrKind
    362. | X86ForceAlignArgPointerAttrKind
    363. | XRayInstrumentAttrKind
    364. | XRayLogArgsAttrKind
    365. | ZeroCallUsedRegsAttrKind
    366. | AbiTagAttrKind
    367. | AliasAttrKind
    368. | AlignValueAttrKind
    369. | BuiltinAliasAttrKind
    370. | CalledOnceAttrKind
    371. | IFuncAttrKind
    372. | InitSegAttrKind
    373. | LoaderUninitializedAttrKind
    374. | LoopHintAttrKind
    375. | ModeAttrKind
    376. | NoBuiltinAttrKind
    377. | NoEscapeAttrKind
    378. | OMPCaptureKindAttrKind
    379. | OMPDeclareSimdDeclAttrKind
    380. | OMPReferencedVarAttrKind
    381. | ObjCBoxableAttrKind
    382. | ObjCClassStubAttrKind
    383. | ObjCDesignatedInitializerAttrKind
    384. | ObjCDirectAttrKind
    385. | ObjCDirectMembersAttrKind
    386. | ObjCNonLazyClassAttrKind
    387. | ObjCNonRuntimeProtocolAttrKind
    388. | ObjCRuntimeNameAttrKind
    389. | ObjCRuntimeVisibleAttrKind
    390. | OpenCLAccessAttrKind
    391. | OverloadableAttrKind
    392. | RenderScriptKernelAttrKind
    393. | SwiftObjCMembersAttrKind
    394. | SwiftVersionedAdditionAttrKind
    395. | SwiftVersionedRemovalAttrKind
    396. | ThreadAttrKind
    type binary_operator_kind = [
    1. | `PtrMemD
    2. | `PtrMemI
    3. | `Mul
    4. | `Div
    5. | `Rem
    6. | `Add
    7. | `Sub
    8. | `Shl
    9. | `Shr
    10. | `Cmp
    11. | `LT
    12. | `GT
    13. | `LE
    14. | `GE
    15. | `EQ
    16. | `NE
    17. | `And
    18. | `Xor
    19. | `Or
    20. | `LAnd
    21. | `LOr
    22. | `Assign
    23. | `MulAssign
    24. | `DivAssign
    25. | `RemAssign
    26. | `AddAssign
    27. | `SubAssign
    28. | `ShlAssign
    29. | `ShrAssign
    30. | `AndAssign
    31. | `XorAssign
    32. | `OrAssign
    33. | `Comma
    ]
    type binary_operator_info = {
    1. boi_kind : binary_operator_kind;
    }
    type builtin_type_kind = [
    1. | `Void
    2. | `Bool
    3. | `Char_U
    4. | `UChar
    5. | `WChar_U
    6. | `Char8
    7. | `Char16
    8. | `Char32
    9. | `UShort
    10. | `UInt
    11. | `ULong
    12. | `ULongLong
    13. | `UInt128
    14. | `Char_S
    15. | `SChar
    16. | `WChar_S
    17. | `Short
    18. | `Int
    19. | `Long
    20. | `LongLong
    21. | `Int128
    22. | `ShortAccum
    23. | `Accum
    24. | `LongAccum
    25. | `UShortAccum
    26. | `UAccum
    27. | `ULongAccum
    28. | `ShortFract
    29. | `Fract
    30. | `LongFract
    31. | `UShortFract
    32. | `UFract
    33. | `ULongFract
    34. | `SatShortAccum
    35. | `SatAccum
    36. | `SatLongAccum
    37. | `SatUShortAccum
    38. | `SatUAccum
    39. | `SatULongAccum
    40. | `SatShortFract
    41. | `SatFract
    42. | `SatLongFract
    43. | `SatUShortFract
    44. | `SatUFract
    45. | `SatULongFract
    46. | `Half
    47. | `Float
    48. | `Double
    49. | `LongDouble
    50. | `Float16
    51. | `BFloat16
    52. | `Float128
    53. | `Ibm128
    54. | `NullPtr
    55. | `ObjCId
    56. | `ObjCClass
    57. | `ObjCSel
    58. | `OCLSampler
    59. | `OCLEvent
    60. | `OCLClkEvent
    61. | `OCLQueue
    62. | `OCLReserveID
    63. | `Dependent
    64. | `Overload
    65. | `BoundMember
    66. | `PseudoObject
    67. | `UnknownAny
    68. | `BuiltinFn
    69. | `ARCUnbridgedCast
    70. | `IncompleteMatrixIdx
    71. | `OMPArraySection
    72. | `OMPArrayShaping
    73. | `OMPIterator
    74. | `SveInt8
    75. | `SveInt16
    76. | `SveInt32
    77. | `SveInt64
    78. | `SveUint8
    79. | `SveUint16
    80. | `SveUint32
    81. | `SveUint64
    82. | `SveFloat16
    83. | `SveFloat32
    84. | `SveFloat64
    85. | `SveBFloat16
    86. | `SveInt8x2
    87. | `SveInt16x2
    88. | `SveInt32x2
    89. | `SveInt64x2
    90. | `SveUint8x2
    91. | `SveUint16x2
    92. | `SveUint32x2
    93. | `SveUint64x2
    94. | `SveFloat16x2
    95. | `SveFloat32x2
    96. | `SveFloat64x2
    97. | `SveBFloat16x2
    98. | `SveInt8x3
    99. | `SveInt16x3
    100. | `SveInt32x3
    101. | `SveInt64x3
    102. | `SveUint8x3
    103. | `SveUint16x3
    104. | `SveUint32x3
    105. | `SveUint64x3
    106. | `SveFloat16x3
    107. | `SveFloat32x3
    108. | `SveFloat64x3
    109. | `SveBFloat16x3
    110. | `SveInt8x4
    111. | `SveInt16x4
    112. | `SveInt32x4
    113. | `SveInt64x4
    114. | `SveUint8x4
    115. | `SveUint16x4
    116. | `SveUint32x4
    117. | `SveUint64x4
    118. | `SveFloat16x4
    119. | `SveFloat32x4
    120. | `SveFloat64x4
    121. | `SveBFloat16x4
    122. | `SveBool
    123. | `SveBoolx2
    124. | `SveBoolx4
    125. | `SveCount
    ]
    type cast_kind = [
    1. | `Dependent
    2. | `BitCast
    3. | `LValueBitCast
    4. | `LValueToRValueBitCast
    5. | `LValueToRValue
    6. | `NoOp
    7. | `BaseToDerived
    8. | `DerivedToBase
    9. | `UncheckedDerivedToBase
    10. | `Dynamic
    11. | `ToUnion
    12. | `ArrayToPointerDecay
    13. | `FunctionToPointerDecay
    14. | `NullToPointer
    15. | `NullToMemberPointer
    16. | `BaseToDerivedMemberPointer
    17. | `DerivedToBaseMemberPointer
    18. | `MemberPointerToBoolean
    19. | `ReinterpretMemberPointer
    20. | `UserDefinedConversion
    21. | `ConstructorConversion
    22. | `IntegralToPointer
    23. | `PointerToIntegral
    24. | `PointerToBoolean
    25. | `ToVoid
    26. | `MatrixCast
    27. | `VectorSplat
    28. | `IntegralCast
    29. | `IntegralToBoolean
    30. | `IntegralToFloating
    31. | `FloatingToFixedPoint
    32. | `FixedPointToFloating
    33. | `FixedPointCast
    34. | `FixedPointToIntegral
    35. | `IntegralToFixedPoint
    36. | `FixedPointToBoolean
    37. | `FloatingToIntegral
    38. | `FloatingToBoolean
    39. | `BooleanToSignedIntegral
    40. | `FloatingCast
    41. | `CPointerToObjCPointerCast
    42. | `BlockPointerToObjCPointerCast
    43. | `AnyPointerToBlockPointerCast
    44. | `ObjCObjectLValueCast
    45. | `FloatingRealToComplex
    46. | `FloatingComplexToReal
    47. | `FloatingComplexToBoolean
    48. | `FloatingComplexCast
    49. | `FloatingComplexToIntegralComplex
    50. | `IntegralRealToComplex
    51. | `IntegralComplexToReal
    52. | `IntegralComplexToBoolean
    53. | `IntegralComplexCast
    54. | `IntegralComplexToFloatingComplex
    55. | `ARCProduceObject
    56. | `ARCConsumeObject
    57. | `ARCReclaimReturnedObject
    58. | `ARCExtendBlockObject
    59. | `AtomicToNonAtomic
    60. | `NonAtomicToAtomic
    61. | `CopyAndAutoreleaseBlockObject
    62. | `BuiltinFnToFnPtr
    63. | `ZeroToOCLOpaqueType
    64. | `AddressSpaceConversion
    65. | `IntToOCLSampler
    ]
    type cxx_base_specifier = {
    1. xbs_name : string;
    2. xbs_virtual : bool;
    }
    type cast_expr_info = {
    1. cei_cast_kind : cast_kind;
    2. cei_base_path : cxx_base_specifier list;
    }
    type cxx_noexcept_expr_info = {
    1. xnee_value : bool;
    }
    type decl_context_info = {
    1. dci_has_external_lexical_storage : bool;
    2. dci_has_external_visible_storage : bool;
    }
    type decl_kind = [
    1. | `TranslationUnit
    2. | `RequiresExprBody
    3. | `LinkageSpec
    4. | `ExternCContext
    5. | `Export
    6. | `Captured
    7. | `Block
    8. | `TopLevelStmt
    9. | `StaticAssert
    10. | `PragmaDetectMismatch
    11. | `PragmaComment
    12. | `ObjCPropertyImpl
    13. | `OMPThreadPrivate
    14. | `OMPRequires
    15. | `OMPAllocate
    16. | `Named
    17. | `ObjCMethod
    18. | `ObjCContainer
    19. | `ObjCProtocol
    20. | `ObjCInterface
    21. | `ObjCImpl
    22. | `ObjCImplementation
    23. | `ObjCCategoryImpl
    24. | `ObjCCategory
    25. | `Namespace
    26. | `HLSLBuffer
    27. | `Value
    28. | `OMPDeclareReduction
    29. | `OMPDeclareMapper
    30. | `UnresolvedUsingValue
    31. | `UnnamedGlobalConstant
    32. | `TemplateParamObject
    33. | `MSGuid
    34. | `IndirectField
    35. | `EnumConstant
    36. | `Declarator
    37. | `Function
    38. | `CXXMethod
    39. | `CXXDestructor
    40. | `CXXConversion
    41. | `CXXConstructor
    42. | `CXXDeductionGuide
    43. | `Var
    44. | `VarTemplateSpecialization
    45. | `VarTemplatePartialSpecialization
    46. | `ParmVar
    47. | `OMPCapturedExpr
    48. | `ImplicitParam
    49. | `Decomposition
    50. | `NonTypeTemplateParm
    51. | `MSProperty
    52. | `Field
    53. | `ObjCIvar
    54. | `ObjCAtDefsField
    55. | `Binding
    56. | `UsingShadow
    57. | `ConstructorUsingShadow
    58. | `UsingPack
    59. | `UsingDirective
    60. | `UnresolvedUsingIfExists
    61. | `Type
    62. | `Tag
    63. | `Record
    64. | `CXXRecord
    65. | `ClassTemplateSpecialization
    66. | `ClassTemplatePartialSpecialization
    67. | `Enum
    68. | `UnresolvedUsingTypename
    69. | `TypedefName
    70. | `Typedef
    71. | `TypeAlias
    72. | `ObjCTypeParam
    73. | `TemplateTypeParm
    74. | `Template
    75. | `TemplateTemplateParm
    76. | `RedeclarableTemplate
    77. | `VarTemplate
    78. | `TypeAliasTemplate
    79. | `FunctionTemplate
    80. | `ClassTemplate
    81. | `Concept
    82. | `BuiltinTemplate
    83. | `ObjCProperty
    84. | `ObjCCompatibleAlias
    85. | `NamespaceAlias
    86. | `Label
    87. | `BaseUsing
    88. | `UsingEnum
    89. | `Using
    90. | `LifetimeExtendedTemporary
    91. | `Import
    92. | `ImplicitConceptSpecialization
    93. | `FriendTemplate
    94. | `Friend
    95. | `FileScopeAsm
    96. | `Empty
    97. | `AccessSpec
    ]
    type declaration_name_kind = [
    1. | `Identifier
    2. | `ObjCZeroArgSelector
    3. | `ObjCOneArgSelector
    4. | `ObjCMultiArgSelector
    5. | `CXXConstructorName
    6. | `CXXDestructorName
    7. | `CXXConversionFunctionName
    8. | `CXXOperatorName
    9. | `CXXLiteralOperatorName
    10. | `CXXUsingDirective
    11. | `CXXDeductionGuideName
    ]
    type declaration_name = {
    1. dn_kind : declaration_name_kind;
    2. dn_name : string;
    }
    type enum_decl_scope = [
    1. | `Class
    2. | `Struct
    ]
    type enum_decl_info = {
    1. edi_scope : enum_decl_scope option;
    2. edi_is_module_private : bool;
    }
    type input_kind = [
    1. | `IK_None
    2. | `IK_Asm
    3. | `IK_C
    4. | `IK_CXX
    5. | `IK_ObjC
    6. | `IK_ObjCXX
    7. | `IK_OpenCL
    8. | `IK_CUDA
    9. | `IK_HIP
    10. | `IK_RenderScript
    11. | `IK_LLVM_IR
    12. | `IK_HLSL
    ]
    type integer_literal_info = {
    1. ili_is_signed : bool;
    2. ili_bitwidth : int;
    3. ili_value : string;
    }
    type integer_type_widths = {
    1. itw_char_type : int;
    2. itw_short_type : int;
    3. itw_int_type : int;
    4. itw_long_type : int;
    5. itw_longlong_type : int;
    }
    type lambda_capture_kind = [
    1. | `LCK_This
    2. | `LCK_ByCopy
    3. | `LCK_ByRef
    4. | `LCK_VLAType
    5. | `LCK_StarThis
    ]
    type named_decl_info = {
    1. ni_name : string;
    2. ni_qual_name : string list;
    }
    type obj_c_access_control = [
    1. | `None
    2. | `Private
    3. | `Protected
    4. | `Public
    5. | `Package
    ]
    type obj_c_availability_check_expr_info = {
    1. oacei_version : string option;
    }
    type obj_c_bridge_cast_kind = [
    1. | `OBC_BridgeRetained
    2. | `OBC_Bridge
    3. | `OBC_BridgeTransfer
    ]
    type obj_c_bridged_cast_expr_info = {
    1. obcei_cast_kind : obj_c_bridge_cast_kind;
    }
    type obj_c_ivar_decl_info = {
    1. ovdi_is_synthesize : bool;
    2. ovdi_access_control : obj_c_access_control;
    }
    type obj_c_property_control = [
    1. | `None
    2. | `Required
    3. | `Optional
    ]
    type obj_c_subscript_kind = [
    1. | `ArraySubscript
    2. | `DictionarySubscript
    ]
    type objc_lifetime_attr = [
    1. | `OCL_None
    2. | `OCL_ExplicitNone
    3. | `OCL_Strong
    4. | `OCL_Weak
    5. | `OCL_Autoreleasing
    ]
    type attr_type_info = {
    1. ati_attr_kind : attribute_kind;
    2. ati_lifetime : objc_lifetime_attr;
    }
    type object_kind = [
    1. | `Ordinary
    2. | `BitField
    3. | `ObjCProperty
    4. | `ObjCSubscript
    5. | `VectorComponent
    ]
    type offset_of_expr_info = {
    1. ooe_literal : integer_literal_info option;
    }
    type pointer = int
    type addr_label_expr_info = {
    1. alei_label : string;
    2. alei_pointer : pointer;
    }
    type cxx_new_expr_info = {
    1. xnei_is_array : bool;
    2. xnei_array_size_expr : pointer option;
    3. xnei_initializer_expr : pointer option;
    4. xnei_placement_args : pointer list;
    }
    type cxx_temporary = pointer
    type cxx_bind_temporary_expr_info = {
    1. xbtei_cxx_temporary : cxx_temporary;
    }
    type goto_stmt_info = {
    1. gsi_label : string;
    2. gsi_pointer : pointer;
    }
    type obj_c_array_literal_expr_info = {
    1. oalei_array_method : pointer option;
    }
    type obj_c_dictionary_literal_expr_info = {
    1. odlei_dict_method : pointer option;
    }
    type predefined_expr_type = [
    1. | `Func
    2. | `Function
    3. | `LFunction
    4. | `FuncDName
    5. | `FuncSig
    6. | `LFuncSig
    7. | `PrettyFunction
    8. | `PrettyFunctionNoVirtual
    ]
    type property_attribute = [
    1. | `Readonly
    2. | `Assign
    3. | `Readwrite
    4. | `Retain
    5. | `Copy
    6. | `Nonatomic
    7. | `Atomic
    8. | `Weak
    9. | `Strong
    10. | `Unsafe_unretained
    11. | `ExplicitGetter
    12. | `ExplicitSetter
    ]
    type property_implementation = [
    1. | `Synthesize
    2. | `Dynamic
    ]
    type record_decl_info = {
    1. rdi_definition_ptr : pointer;
    2. rdi_is_module_private : bool;
    3. rdi_is_complete_definition : bool;
    4. rdi_is_dependent_type : bool;
    }
    type selector = string
    type obj_c_method_ref_info = {
    1. mri_getter : selector option;
    2. mri_setter : selector option;
    }
    type obj_c_subscript_ref_expr_info = {
    1. osrei_kind : obj_c_subscript_kind;
    2. osrei_getter : selector option;
    3. osrei_setter : selector option;
    }
    type objc_boxed_expr_info = {
    1. obei_boxing_method : selector option;
    }
    type sentinel_attr_info = {
    1. sai_sentinel : int;
    2. sai_null_pos : int;
    }
    type source_file = string
    type source_location = {
    1. mutable sl_file : source_file option;
    2. mutable sl_line : int option;
    3. mutable sl_column : int option;
    4. sl_is_macro : bool;
    5. mutable sl_macro_file : source_file option;
    6. mutable sl_macro_line : int option;
    }
    type source_range = source_location * source_location
    type attribute_info = {
    1. ai_pointer : pointer;
    2. ai_source_range : source_range;
    }
    type attr_tuple = attribute_info
    type comment_info = {
    1. ci_parent_pointer : pointer;
    2. ci_source_range : source_range;
    }
    type specifier_kind = [
    1. | `Identifier
    2. | `Namespace
    3. | `NamespaceAlias
    4. | `TypeSpec
    5. | `TypeSpecWithTemplate
    6. | `Global
    7. | `Super
    ]
    type stmt_info = {
    1. si_pointer : pointer;
    2. si_source_range : source_range;
    }
    type tag_kind = [
    1. | `TTK_Struct
    2. | `TTK_Interface
    3. | `TTK_Union
    4. | `TTK_Class
    5. | `TTK_Enum
    ]
    type qual_type = {
    1. qt_type_ptr : type_ptr;
    2. qt_is_const : bool;
    3. qt_is_restrict : bool;
    4. qt_is_volatile : bool;
    }
    type array_type_info = {
    1. arti_element_type : qual_type;
    2. arti_stride : int option;
    }
    type compound_assign_operator_info = {
    1. caoi_lhs_type : qual_type;
    2. caoi_result_type : qual_type;
    }
    type cxx_delete_expr_info = {
    1. xdei_is_array : bool;
    2. xdei_destroyed_type : qual_type;
    }
    type decl_ref = {
    1. dr_kind : decl_kind;
    2. dr_decl_pointer : pointer;
    3. dr_name : named_decl_info option;
    4. dr_is_hidden : bool;
    5. dr_qual_type : qual_type option;
    }
    type cxx_construct_expr_info = {
    1. xcei_decl_ref : decl_ref;
    2. xcei_is_elidable : bool;
    3. xcei_requires_zero_initialization : bool;
    4. xcei_is_copy_constructor : bool;
    }
    type cxx_ctor_initializer_subject = [
    1. | `Member of decl_ref
    2. | `Delegating of type_ptr
    3. | `BaseClass of type_ptr * bool
    ]
    type decl_ref_expr_info = {
    1. drti_decl_ref : decl_ref option;
    }
    type expr_with_cleanups_info = {
    1. ewci_decl_refs : decl_ref list;
    }
    type function_type_info = {
    1. fti_return_type : qual_type;
    }
    type materialize_temporary_expr_info = {
    1. mtei_decl_ref : decl_ref option;
    }
    type member_expr_info = {
    1. mei_is_arrow : bool;
    2. mei_performs_virtual_dispatch : bool;
    3. mei_name : named_decl_info;
    4. mei_decl_ref : decl_ref;
    }
    type namespace_decl_info = {
    1. ndi_is_inline : bool;
    2. ndi_original_namespace : decl_ref option;
    }
    type nested_name_specifier_loc = {
    1. nnsl_kind : specifier_kind;
    2. nnsl_ref : decl_ref option;
    }
    type namespace_alias_decl_info = {
    1. nadi_namespace_loc : source_location;
    2. nadi_target_name_loc : source_location;
    3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. nadi_namespace : decl_ref;
    }
    type obj_c_category_decl_info = {
    1. odi_class_interface : decl_ref option;
    2. odi_implementation : decl_ref option;
    3. odi_protocols : decl_ref list;
    }
    type obj_c_category_impl_decl_info = {
    1. ocidi_class_interface : decl_ref option;
    2. ocidi_category_decl : decl_ref option;
    }
    type obj_c_compatible_alias_decl_info = {
    1. ocadi_class_interface : decl_ref option;
    }
    type obj_c_interface_decl_info = {
    1. otdi_super : decl_ref option;
    2. otdi_implementation : decl_ref option;
    3. otdi_protocols : decl_ref list;
    4. otdi_known_categories : decl_ref list;
    }
    type obj_c_ivar_ref_expr_info = {
    1. ovrei_decl_ref : decl_ref;
    2. ovrei_pointer : pointer;
    3. ovrei_is_free_ivar : bool;
    }
    type obj_c_property_decl_info = {
    1. opdi_qual_type : qual_type;
    2. opdi_getter_method : decl_ref option;
    3. opdi_setter_method : decl_ref option;
    4. opdi_ivar_decl : decl_ref option;
    5. opdi_property_control : obj_c_property_control;
    6. opdi_property_attributes : property_attribute list;
    }
    type obj_c_property_impl_decl_info = {
    1. opidi_implementation : property_implementation;
    2. opidi_property_decl : decl_ref option;
    3. opidi_ivar_decl : decl_ref option;
    }
    type obj_c_protocol_decl_info = {
    1. opcdi_protocols : decl_ref list;
    }
    type objc_encode_expr_info = {
    1. oeei_qual_type : qual_type;
    2. oeei_raw : string;
    }
    type objc_object_type_info = {
    1. ooti_base_type : type_ptr;
    2. ooti_protocol_decls_ptr : pointer list;
    3. ooti_type_args : qual_type list;
    }
    type overload_expr_info = {
    1. oei_decls : decl_ref list;
    2. oei_name : declaration_name;
    }
    type params_type_info = {
    1. pti_params_type : qual_type list;
    }
    type property_ref_kind = [
    1. | `MethodRef of obj_c_method_ref_info
    2. | `PropertyRef of decl_ref
    ]
    type obj_c_property_ref_expr_info = {
    1. oprei_kind : property_ref_kind;
    2. oprei_is_super_receiver : bool;
    3. oprei_is_messaging_getter : bool;
    4. oprei_is_messaging_setter : bool;
    }
    type receiver_kind = [
    1. | `Instance
    2. | `Class of qual_type
    3. | `SuperInstance
    4. | `SuperClass
    ]
    type obj_c_message_expr_info = {
    1. omei_selector : string;
    2. omei_is_definition_found : bool;
    3. omei_decl_pointer : pointer option;
    4. omei_receiver_kind : receiver_kind;
    }
    type type_info = {
    1. ti_pointer : pointer;
    2. ti_desugared_type : type_ptr option;
    }
    type type_trait_info = {
    1. xtti_value : bool;
    }
    type typedef_decl_info = {
    1. tdi_is_module_private : bool;
    }
    type typedef_type_info = {
    1. tti_child_type : qual_type;
    2. tti_decl_ptr : pointer;
    }
    type c_type =
    1. | NoneType of type_info
    2. | AdjustedType of type_info * qual_type
    3. | DecayedType of type_info * qual_type
    4. | ConstantArrayType of type_info * array_type_info * int
    5. | DependentSizedArrayType of type_info * array_type_info
    6. | IncompleteArrayType of type_info * array_type_info
    7. | VariableArrayType of type_info * array_type_info * pointer
    8. | AtomicType of type_info * qual_type
    9. | AttributedType of type_info * attr_type_info
    10. | BTFTagAttributedType of type_info
    11. | BitIntType of type_info
    12. | BlockPointerType of type_info * qual_type
    13. | BuiltinType of type_info * builtin_type_kind
    14. | ComplexType of type_info
    15. | DecltypeType of type_info * qual_type
    16. | AutoType of type_info
    17. | DeducedTemplateSpecializationType of type_info
    18. | DependentAddressSpaceType of type_info
    19. | DependentBitIntType of type_info
    20. | DependentNameType of type_info
    21. | DependentSizedExtVectorType of type_info
    22. | DependentTemplateSpecializationType of type_info
    23. | DependentVectorType of type_info
    24. | ElaboratedType of type_info
    25. | FunctionNoProtoType of type_info * function_type_info
    26. | FunctionProtoType of type_info * function_type_info * params_type_info
    27. | InjectedClassNameType of type_info
    28. | MacroQualifiedType of type_info
    29. | ConstantMatrixType of type_info
    30. | DependentSizedMatrixType of type_info
    31. | MemberPointerType of type_info * qual_type
    32. | ObjCObjectPointerType of type_info * qual_type
    33. | ObjCObjectType of type_info * objc_object_type_info
    34. | ObjCInterfaceType of type_info * pointer
    35. | ObjCTypeParamType of type_info
    36. | PackExpansionType of type_info
    37. | ParenType of type_info * qual_type
    38. | PipeType of type_info
    39. | PointerType of type_info * qual_type
    40. | LValueReferenceType of type_info * qual_type
    41. | RValueReferenceType of type_info * qual_type
    42. | SubstTemplateTypeParmPackType of type_info
    43. | SubstTemplateTypeParmType of type_info
    44. | EnumType of type_info * pointer
    45. | RecordType of type_info * pointer
    46. | TemplateSpecializationType of type_info
    47. | TemplateTypeParmType of type_info
    48. | TypeOfExprType of type_info
    49. | TypeOfType of type_info
    50. | TypedefType of type_info * typedef_type_info
    51. | UnaryTransformType of type_info
    52. | UnresolvedUsingType of type_info
    53. | UsingType of type_info
    54. | VectorType of type_info
    55. | ExtVectorType of type_info
    type translation_unit_decl_info = {
    1. tudi_input_path : source_file;
    2. tudi_input_kind : input_kind;
    3. tudi_integer_type_widths : integer_type_widths;
    4. tudi_is_objc_arc_on : bool;
    5. tudi_types : c_type list;
    }
    type unary_expr_or_type_trait_kind = [
    1. | `AlignOf
    2. | `OpenMPRequiredSimdAlign
    3. | `PreferredAlignOf
    4. | `SizeOf
    5. | `SizeOfWithSize of int
    6. | `VecStep
    7. | `VectorElements
    ]
    type unary_expr_or_type_trait_expr_info = {
    1. uttei_kind : unary_expr_or_type_trait_kind;
    2. uttei_qual_type : qual_type;
    }
    type unary_operator_kind = [
    1. | `PostInc
    2. | `PostDec
    3. | `PreInc
    4. | `PreDec
    5. | `AddrOf
    6. | `Deref
    7. | `Plus
    8. | `Minus
    9. | `Not
    10. | `LNot
    11. | `Real
    12. | `Imag
    13. | `Extension
    14. | `Coawait
    ]
    type unary_operator_info = {
    1. uoi_kind : unary_operator_kind;
    2. uoi_is_postfix : bool;
    }
    type unresolved_lookup_expr_info = {
    1. ulei_requires_ADL : bool;
    2. ulei_is_overloaded : bool;
    3. ulei_naming_class : decl_ref option;
    }
    type using_directive_decl_info = {
    1. uddi_using_location : source_location;
    2. uddi_namespace_key_location : source_location;
    3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. uddi_nominated_namespace : decl_ref option;
    }
    type value_kind = [
    1. | `RValue
    2. | `LValue
    3. | `XValue
    ]
    type expr_info = {
    1. ei_qual_type : qual_type;
    2. ei_value_kind : value_kind;
    3. ei_object_kind : object_kind;
    }
    type version_tuple = {
    1. vt_major : int;
    2. vt_minor : int option;
    3. vt_subminor : int option;
    4. vt_build : int option;
    }
    type availability_attr_info = {
    1. aai_platform : string option;
    2. aai_introduced : version_tuple;
    }
    type visibility_attr =
    1. | DefaultVisibility
    2. | HiddenVisibility
    3. | ProtectedVisibility
    type attribute = [
    1. | `AddressSpaceAttr of attribute_info
    2. | `AnnotateTypeAttr of attribute_info
    3. | `ArmInAttr of attribute_info
    4. | `ArmInOutAttr of attribute_info
    5. | `ArmMveStrictPolymorphismAttr of attribute_info
    6. | `ArmOutAttr of attribute_info
    7. | `ArmPreservesAttr of attribute_info
    8. | `ArmStreamingAttr of attribute_info
    9. | `ArmStreamingCompatibleAttr of attribute_info
    10. | `BTFTypeTagAttr of attribute_info
    11. | `CmseNSCallAttr of attribute_info
    12. | `HLSLGroupSharedAddressSpaceAttr of attribute_info
    13. | `HLSLParamModifierAttr of attribute_info
    14. | `NoDerefAttr of attribute_info
    15. | `ObjCGCAttr of attribute_info
    16. | `ObjCInertUnsafeUnretainedAttr of attribute_info
    17. | `ObjCKindOfAttr of attribute_info
    18. | `OpenCLConstantAddressSpaceAttr of attribute_info
    19. | `OpenCLGenericAddressSpaceAttr of attribute_info
    20. | `OpenCLGlobalAddressSpaceAttr of attribute_info
    21. | `OpenCLGlobalDeviceAddressSpaceAttr of attribute_info
    22. | `OpenCLGlobalHostAddressSpaceAttr of attribute_info
    23. | `OpenCLLocalAddressSpaceAttr of attribute_info
    24. | `OpenCLPrivateAddressSpaceAttr of attribute_info
    25. | `Ptr32Attr of attribute_info
    26. | `Ptr64Attr of attribute_info
    27. | `SPtrAttr of attribute_info
    28. | `TypeNonNullAttr of attribute_info
    29. | `TypeNullUnspecifiedAttr of attribute_info
    30. | `TypeNullableAttr of attribute_info
    31. | `TypeNullableResultAttr of attribute_info
    32. | `UPtrAttr of attribute_info
    33. | `WebAssemblyFuncrefAttr of attribute_info
    34. | `CodeAlignAttr of attribute_info
    35. | `FallThroughAttr of attribute_info
    36. | `LikelyAttr of attribute_info
    37. | `MustTailAttr of attribute_info
    38. | `OpenCLUnrollHintAttr of attribute_info
    39. | `UnlikelyAttr of attribute_info
    40. | `AlwaysInlineAttr of attribute_info
    41. | `NoInlineAttr of attribute_info
    42. | `NoMergeAttr of attribute_info
    43. | `SuppressAttr of attribute_info
    44. | `AArch64SVEPcsAttr of attribute_info
    45. | `AArch64VectorPcsAttr of attribute_info
    46. | `AMDGPUKernelCallAttr of attribute_info
    47. | `AcquireHandleAttr of attribute_info
    48. | `AnyX86NoCfCheckAttr of attribute_info
    49. | `CDeclAttr of attribute_info
    50. | `FastCallAttr of attribute_info
    51. | `IntelOclBiccAttr of attribute_info
    52. | `LifetimeBoundAttr of attribute_info
    53. | `M68kRTDAttr of attribute_info
    54. | `MSABIAttr of attribute_info
    55. | `NSReturnsRetainedAttr of attribute_info
    56. | `ObjCOwnershipAttr of attribute_info
    57. | `PascalAttr of attribute_info
    58. | `PcsAttr of attribute_info
    59. | `PreserveAllAttr of attribute_info
    60. | `PreserveMostAttr of attribute_info
    61. | `RegCallAttr of attribute_info
    62. | `StdCallAttr of attribute_info
    63. | `SwiftAsyncCallAttr of attribute_info
    64. | `SwiftCallAttr of attribute_info
    65. | `SysVABIAttr of attribute_info
    66. | `ThisCallAttr of attribute_info
    67. | `VectorCallAttr of attribute_info
    68. | `SwiftAsyncContextAttr of attribute_info
    69. | `SwiftContextAttr of attribute_info
    70. | `SwiftErrorResultAttr of attribute_info
    71. | `SwiftIndirectResultAttr of attribute_info
    72. | `AnnotateAttr of attr_tuple * string
    73. | `CFConsumedAttr of attribute_info
    74. | `CarriesDependencyAttr of attribute_info
    75. | `NSConsumedAttr of attribute_info
    76. | `NonNullAttr of attribute_info
    77. | `OSConsumedAttr of attribute_info
    78. | `PassObjectSizeAttr of attribute_info
    79. | `ReleaseHandleAttr of attribute_info
    80. | `UseHandleAttr of attribute_info
    81. | `HLSLSV_DispatchThreadIDAttr of attribute_info
    82. | `HLSLSV_GroupIndexAttr of attribute_info
    83. | `AMDGPUFlatWorkGroupSizeAttr of attribute_info
    84. | `AMDGPUNumSGPRAttr of attribute_info
    85. | `AMDGPUNumVGPRAttr of attribute_info
    86. | `AMDGPUWavesPerEUAttr of attribute_info
    87. | `ARMInterruptAttr of attribute_info
    88. | `AVRInterruptAttr of attribute_info
    89. | `AVRSignalAttr of attribute_info
    90. | `AcquireCapabilityAttr of attribute_info
    91. | `AcquiredAfterAttr of attribute_info
    92. | `AcquiredBeforeAttr of attribute_info
    93. | `AlignMac68kAttr of attribute_info
    94. | `AlignNaturalAttr of attribute_info
    95. | `AlignedAttr of attribute_info
    96. | `AllocAlignAttr of attribute_info
    97. | `AllocSizeAttr of attribute_info
    98. | `AlwaysDestroyAttr of attribute_info
    99. | `AnalyzerNoReturnAttr of attribute_info
    100. | `AnyX86InterruptAttr of attribute_info
    101. | `AnyX86NoCallerSavedRegistersAttr of attribute_info
    102. | `ArcWeakrefUnavailableAttr of attribute_info
    103. | `ArgumentWithTypeTagAttr of attribute_info
    104. | `ArmBuiltinAliasAttr of attribute_info
    105. | `ArmLocallyStreamingAttr of attribute_info
    106. | `ArmNewAttr of attribute_info
    107. | `ArtificialAttr of attribute_info
    108. | `AsmLabelAttr of attribute_info
    109. | `AssertCapabilityAttr of attribute_info
    110. | `AssertExclusiveLockAttr of attribute_info
    111. | `AssertSharedLockAttr of attribute_info
    112. | `AssumeAlignedAttr of attribute_info
    113. | `AssumptionAttr of attribute_info
    114. | `AvailabilityAttr of attr_tuple * availability_attr_info
    115. | `AvailableOnlyInDefaultEvalMethodAttr of attribute_info
    116. | `BPFPreserveAccessIndexAttr of attribute_info
    117. | `BPFPreserveStaticOffsetAttr of attribute_info
    118. | `BTFDeclTagAttr of attribute_info
    119. | `BlocksAttr of attribute_info
    120. | `BuiltinAttr of attribute_info
    121. | `C11NoReturnAttr of attribute_info
    122. | `CFAuditedTransferAttr of attribute_info
    123. | `CFGuardAttr of attribute_info
    124. | `CFICanonicalJumpTableAttr of attribute_info
    125. | `CFReturnsNotRetainedAttr of attribute_info
    126. | `CFReturnsRetainedAttr of attribute_info
    127. | `CFUnknownTransferAttr of attribute_info
    128. | `CPUDispatchAttr of attribute_info
    129. | `CPUSpecificAttr of attribute_info
    130. | `CUDAConstantAttr of attribute_info
    131. | `CUDADeviceAttr of attribute_info
    132. | `CUDADeviceBuiltinSurfaceTypeAttr of attribute_info
    133. | `CUDADeviceBuiltinTextureTypeAttr of attribute_info
    134. | `CUDAGlobalAttr of attribute_info
    135. | `CUDAHostAttr of attribute_info
    136. | `CUDAInvalidTargetAttr of attribute_info
    137. | `CUDALaunchBoundsAttr of attribute_info
    138. | `CUDASharedAttr of attribute_info
    139. | `CXX11NoReturnAttr of attribute_info
    140. | `CallableWhenAttr of attribute_info
    141. | `CallbackAttr of attribute_info
    142. | `CapabilityAttr of attribute_info
    143. | `CapturedRecordAttr of attribute_info
    144. | `CleanupAttr of attribute_info
    145. | `CmseNSEntryAttr of attribute_info
    146. | `CodeModelAttr of attribute_info
    147. | `CodeSegAttr of attribute_info
    148. | `ColdAttr of attribute_info
    149. | `CommonAttr of attribute_info
    150. | `ConstAttr of attribute_info
    151. | `ConstInitAttr of attribute_info
    152. | `ConstructorAttr of attribute_info
    153. | `ConsumableAttr of attribute_info
    154. | `ConsumableAutoCastAttr of attribute_info
    155. | `ConsumableSetOnReadAttr of attribute_info
    156. | `ConvergentAttr of attribute_info
    157. | `CoroDisableLifetimeBoundAttr of attribute_info
    158. | `CoroLifetimeBoundAttr of attribute_info
    159. | `CoroOnlyDestroyWhenCompleteAttr of attribute_info
    160. | `CoroReturnTypeAttr of attribute_info
    161. | `CoroWrapperAttr of attribute_info
    162. | `CountedByAttr of attribute_info
    163. | `DLLExportAttr of attribute_info
    164. | `DLLExportStaticLocalAttr of attribute_info
    165. | `DLLImportAttr of attribute_info
    166. | `DLLImportStaticLocalAttr of attribute_info
    167. | `DeprecatedAttr of attribute_info
    168. | `DestructorAttr of attribute_info
    169. | `DiagnoseAsBuiltinAttr of attribute_info
    170. | `DiagnoseIfAttr of attribute_info
    171. | `DisableSanitizerInstrumentationAttr of attribute_info
    172. | `DisableTailCallsAttr of attribute_info
    173. | `EmptyBasesAttr of attribute_info
    174. | `EnableIfAttr of attribute_info
    175. | `EnforceTCBAttr of attribute_info
    176. | `EnforceTCBLeafAttr of attribute_info
    177. | `EnumExtensibilityAttr of attribute_info
    178. | `ErrorAttr of attribute_info
    179. | `ExcludeFromExplicitInstantiationAttr of attribute_info
    180. | `ExclusiveTrylockFunctionAttr of attribute_info
    181. | `ExternalSourceSymbolAttr of attribute_info
    182. | `FinalAttr of attribute_info
    183. | `FlagEnumAttr of attribute_info
    184. | `FlattenAttr of attribute_info
    185. | `FormatAttr of attribute_info
    186. | `FormatArgAttr of attribute_info
    187. | `FunctionReturnThunksAttr of attribute_info
    188. | `GNUInlineAttr of attribute_info
    189. | `GuardedByAttr of attribute_info
    190. | `GuardedVarAttr of attribute_info
    191. | `HIPManagedAttr of attribute_info
    192. | `HLSLNumThreadsAttr of attribute_info
    193. | `HLSLResourceAttr of attribute_info
    194. | `HLSLResourceBindingAttr of attribute_info
    195. | `HLSLShaderAttr of attribute_info
    196. | `HotAttr of attribute_info
    197. | `IBActionAttr of attribute_info
    198. | `IBOutletAttr of attribute_info
    199. | `IBOutletCollectionAttr of attribute_info
    200. | `InitPriorityAttr of attribute_info
    201. | `InternalLinkageAttr of attribute_info
    202. | `LTOVisibilityPublicAttr of attribute_info
    203. | `LayoutVersionAttr of attribute_info
    204. | `LeafAttr of attribute_info
    205. | `LockReturnedAttr of attribute_info
    206. | `LocksExcludedAttr of attribute_info
    207. | `M68kInterruptAttr of attribute_info
    208. | `MIGServerRoutineAttr of attribute_info
    209. | `MSAllocatorAttr of attribute_info
    210. | `MSConstexprAttr of attribute_info
    211. | `MSInheritanceAttr of attribute_info
    212. | `MSNoVTableAttr of attribute_info
    213. | `MSP430InterruptAttr of attribute_info
    214. | `MSStructAttr of attribute_info
    215. | `MSVtorDispAttr of attribute_info
    216. | `MaxFieldAlignmentAttr of attribute_info
    217. | `MayAliasAttr of attribute_info
    218. | `MaybeUndefAttr of attribute_info
    219. | `MicroMipsAttr of attribute_info
    220. | `MinSizeAttr of attribute_info
    221. | `MinVectorWidthAttr of attribute_info
    222. | `Mips16Attr of attribute_info
    223. | `MipsInterruptAttr of attribute_info
    224. | `MipsLongCallAttr of attribute_info
    225. | `MipsShortCallAttr of attribute_info
    226. | `NSConsumesSelfAttr of attribute_info
    227. | `NSErrorDomainAttr of attribute_info
    228. | `NSReturnsAutoreleasedAttr of attribute_info
    229. | `NSReturnsNotRetainedAttr of attribute_info
    230. | `NVPTXKernelAttr of attribute_info
    231. | `NakedAttr of attribute_info
    232. | `NoAliasAttr of attribute_info
    233. | `NoCommonAttr of attribute_info
    234. | `NoDebugAttr of attribute_info
    235. | `NoDestroyAttr of attribute_info
    236. | `NoDuplicateAttr of attribute_info
    237. | `NoInstrumentFunctionAttr of attribute_info
    238. | `NoMicroMipsAttr of attribute_info
    239. | `NoMips16Attr of attribute_info
    240. | `NoProfileFunctionAttr of attribute_info
    241. | `NoRandomizeLayoutAttr of attribute_info
    242. | `NoReturnAttr of attribute_info
    243. | `NoSanitizeAttr of attribute_info
    244. | `NoSpeculativeLoadHardeningAttr of attribute_info
    245. | `NoSplitStackAttr of attribute_info
    246. | `NoStackProtectorAttr of attribute_info
    247. | `NoThreadSafetyAnalysisAttr of attribute_info
    248. | `NoThrowAttr of attribute_info
    249. | `NoUniqueAddressAttr of attribute_info
    250. | `NoUwtableAttr of attribute_info
    251. | `NotTailCalledAttr of attribute_info
    252. | `OMPAllocateDeclAttr of attribute_info
    253. | `OMPCaptureNoInitAttr of attribute_info
    254. | `OMPDeclareTargetDeclAttr of attribute_info
    255. | `OMPDeclareVariantAttr of attribute_info
    256. | `OMPThreadPrivateDeclAttr of attribute_info
    257. | `OSConsumesThisAttr of attribute_info
    258. | `OSReturnsNotRetainedAttr of attribute_info
    259. | `OSReturnsRetainedAttr of attribute_info
    260. | `OSReturnsRetainedOnNonZeroAttr of attribute_info
    261. | `OSReturnsRetainedOnZeroAttr of attribute_info
    262. | `ObjCBridgeAttr of attribute_info
    263. | `ObjCBridgeMutableAttr of attribute_info
    264. | `ObjCBridgeRelatedAttr of attribute_info
    265. | `ObjCExceptionAttr of attribute_info
    266. | `ObjCExplicitProtocolImplAttr of attribute_info
    267. | `ObjCExternallyRetainedAttr of attribute_info
    268. | `ObjCIndependentClassAttr of attribute_info
    269. | `ObjCMethodFamilyAttr of attribute_info
    270. | `ObjCNSObjectAttr of attribute_info
    271. | `ObjCPreciseLifetimeAttr of attribute_info
    272. | `ObjCRequiresPropertyDefsAttr of attribute_info
    273. | `ObjCRequiresSuperAttr of attribute_info
    274. | `ObjCReturnsInnerPointerAttr of attribute_info
    275. | `ObjCRootClassAttr of attribute_info
    276. | `ObjCSubclassingRestrictedAttr of attribute_info
    277. | `OpenCLIntelReqdSubGroupSizeAttr of attribute_info
    278. | `OpenCLKernelAttr of attribute_info
    279. | `OptimizeNoneAttr of attribute_info
    280. | `OverrideAttr of attribute_info
    281. | `OwnerAttr of attribute_info
    282. | `OwnershipAttr of attribute_info
    283. | `PackedAttr of attribute_info
    284. | `ParamTypestateAttr of attribute_info
    285. | `PatchableFunctionEntryAttr of attribute_info
    286. | `PointerAttr of attribute_info
    287. | `PragmaClangBSSSectionAttr of attribute_info
    288. | `PragmaClangDataSectionAttr of attribute_info
    289. | `PragmaClangRelroSectionAttr of attribute_info
    290. | `PragmaClangRodataSectionAttr of attribute_info
    291. | `PragmaClangTextSectionAttr of attribute_info
    292. | `PreferredNameAttr of attribute_info
    293. | `PreferredTypeAttr of attribute_info
    294. | `PtGuardedByAttr of attribute_info
    295. | `PtGuardedVarAttr of attribute_info
    296. | `PureAttr of attribute_info
    297. | `RISCVInterruptAttr of attribute_info
    298. | `RandomizeLayoutAttr of attribute_info
    299. | `ReadOnlyPlacementAttr of attribute_info
    300. | `ReinitializesAttr of attribute_info
    301. | `ReleaseCapabilityAttr of attribute_info
    302. | `ReqdWorkGroupSizeAttr of attribute_info
    303. | `RequiresCapabilityAttr of attribute_info
    304. | `RestrictAttr of attribute_info
    305. | `RetainAttr of attribute_info
    306. | `ReturnTypestateAttr of attribute_info
    307. | `ReturnsNonNullAttr of attribute_info
    308. | `ReturnsTwiceAttr of attribute_info
    309. | `SYCLKernelAttr of attribute_info
    310. | `SYCLSpecialClassAttr of attribute_info
    311. | `ScopedLockableAttr of attribute_info
    312. | `SectionAttr of attribute_info
    313. | `SelectAnyAttr of attribute_info
    314. | `SentinelAttr of attr_tuple * sentinel_attr_info
    315. | `SetTypestateAttr of attribute_info
    316. | `SharedTrylockFunctionAttr of attribute_info
    317. | `SpeculativeLoadHardeningAttr of attribute_info
    318. | `StandaloneDebugAttr of attribute_info
    319. | `StrictFPAttr of attribute_info
    320. | `StrictGuardStackCheckAttr of attribute_info
    321. | `SwiftAsyncAttr of attribute_info
    322. | `SwiftAsyncErrorAttr of attribute_info
    323. | `SwiftAsyncNameAttr of attribute_info
    324. | `SwiftAttrAttr of attribute_info
    325. | `SwiftBridgeAttr of attribute_info
    326. | `SwiftBridgedTypedefAttr of attribute_info
    327. | `SwiftErrorAttr of attribute_info
    328. | `SwiftImportAsNonGenericAttr of attribute_info
    329. | `SwiftImportPropertyAsAccessorsAttr of attribute_info
    330. | `SwiftNameAttr of attribute_info
    331. | `SwiftNewTypeAttr of attribute_info
    332. | `SwiftPrivateAttr of attribute_info
    333. | `TLSModelAttr of attribute_info
    334. | `TargetAttr of attribute_info
    335. | `TargetClonesAttr of attribute_info
    336. | `TargetVersionAttr of attribute_info
    337. | `TestTypestateAttr of attribute_info
    338. | `TransparentUnionAttr of attribute_info
    339. | `TrivialABIAttr of attribute_info
    340. | `TryAcquireCapabilityAttr of attribute_info
    341. | `TypeTagForDatatypeAttr of attribute_info
    342. | `TypeVisibilityAttr of attribute_info
    343. | `UnavailableAttr of attribute_info
    344. | `UninitializedAttr of attribute_info
    345. | `UnsafeBufferUsageAttr of attribute_info
    346. | `UnusedAttr of attribute_info
    347. | `UsedAttr of attribute_info
    348. | `UsingIfExistsAttr of attribute_info
    349. | `UuidAttr of attribute_info
    350. | `VecReturnAttr of attribute_info
    351. | `VecTypeHintAttr of attribute_info
    352. | `VisibilityAttr of attr_tuple * visibility_attr
    353. | `WarnUnusedAttr of attribute_info
    354. | `WarnUnusedResultAttr of attribute_info
    355. | `WeakAttr of attribute_info
    356. | `WeakImportAttr of attribute_info
    357. | `WeakRefAttr of attribute_info
    358. | `WebAssemblyExportNameAttr of attribute_info
    359. | `WebAssemblyImportModuleAttr of attribute_info
    360. | `WebAssemblyImportNameAttr of attribute_info
    361. | `WorkGroupSizeHintAttr of attribute_info
    362. | `X86ForceAlignArgPointerAttr of attribute_info
    363. | `XRayInstrumentAttr of attribute_info
    364. | `XRayLogArgsAttr of attribute_info
    365. | `ZeroCallUsedRegsAttr of attribute_info
    366. | `AbiTagAttr of attribute_info
    367. | `AliasAttr of attribute_info
    368. | `AlignValueAttr of attribute_info
    369. | `BuiltinAliasAttr of attribute_info
    370. | `CalledOnceAttr of attribute_info
    371. | `IFuncAttr of attribute_info
    372. | `InitSegAttr of attribute_info
    373. | `LoaderUninitializedAttr of attribute_info
    374. | `LoopHintAttr of attribute_info
    375. | `ModeAttr of attribute_info
    376. | `NoBuiltinAttr of attribute_info
    377. | `NoEscapeAttr of attribute_info
    378. | `OMPCaptureKindAttr of attribute_info
    379. | `OMPDeclareSimdDeclAttr of attribute_info
    380. | `OMPReferencedVarAttr of attribute_info
    381. | `ObjCBoxableAttr of attribute_info
    382. | `ObjCClassStubAttr of attribute_info
    383. | `ObjCDesignatedInitializerAttr of attribute_info
    384. | `ObjCDirectAttr of attribute_info
    385. | `ObjCDirectMembersAttr of attribute_info
    386. | `ObjCNonLazyClassAttr of attribute_info
    387. | `ObjCNonRuntimeProtocolAttr of attribute_info
    388. | `ObjCRuntimeNameAttr of attribute_info
    389. | `ObjCRuntimeVisibleAttr of attribute_info
    390. | `OpenCLAccessAttr of attribute_info
    391. | `OverloadableAttr of attribute_info
    392. | `RenderScriptKernelAttr of attribute_info
    393. | `SwiftObjCMembersAttr of attribute_info
    394. | `SwiftVersionedAdditionAttr of attribute_info
    395. | `SwiftVersionedRemovalAttr of attribute_info
    396. | `ThreadAttr of attribute_info
    ]
    type template_instantiation_arg_info = [
    1. | `Null
    2. | `Type of qual_type
    3. | `Declaration of pointer
    4. | `NullPtr
    5. | `Integral of string
    6. | `Template
    7. | `TemplateExpansion
    8. | `Expression
    9. | `Pack of template_instantiation_arg_info list
    ]
    type comment =
    1. | VerbatimBlockLineComment of comment_info * comment list
    2. | TextComment of comment_info * comment list
    3. | InlineCommandComment of comment_info * comment list
    4. | HTMLStartTagComment of comment_info * comment list
    5. | HTMLEndTagComment of comment_info * comment list
    6. | FullComment of comment_info * comment list
    7. | ParagraphComment of comment_info * comment list
    8. | BlockCommandComment of comment_info * comment list
    9. | VerbatimLineComment of comment_info * comment list
    10. | VerbatimBlockComment of comment_info * comment list
    11. | TParamCommandComment of comment_info * comment list
    12. | ParamCommandComment of comment_info * comment list
    type template_specialization_info = {
    1. tsi_template_decl : pointer;
    2. tsi_specialization_args : template_instantiation_arg_info list;
    }
    type decl_info = {
    1. di_pointer : pointer;
    2. di_parent_pointer : pointer option;
    3. di_source_range : source_range;
    4. di_owning_module : string option;
    5. di_is_hidden : bool;
    6. di_is_implicit : bool;
    7. di_is_used : bool;
    8. di_is_this_declaration_referenced : bool;
    9. di_is_invalid_decl : bool;
    10. di_attributes : attribute list;
    11. di_full_comment : comment option;
    12. di_access : access_specifier;
    }
    type binding_decl_info = {
    1. binding_var : var_decl_info option;
    2. bound_decl_type : qual_type option;
    }
    and block_captured_variable = {
    1. bcv_is_by_ref : bool;
    2. bcv_is_nested : bool;
    3. bcv_variable : decl_ref option;
    4. bcv_copy_expr : stmt option;
    }
    and block_decl_info = {
    1. bdi_parameters : decl list;
    2. bdi_is_variadic : bool;
    3. bdi_captures_cxx_this : bool;
    4. bdi_captured_variables : block_captured_variable list;
    5. bdi_body : stmt option;
    6. bdi_mangled_name : string;
    }
    and coreturn_stmt_info = {
    1. coret_operand : stmt option;
    2. coret_promise_call : stmt option;
    }
    and coro_body_stmt_info = {
    1. cbs_body : pointer;
    2. cbs_promise_decl_stmt : pointer;
    3. cbs_return_value : stmt;
    }
    and cxx_catch_stmt_info = {
    1. xcsi_variable : decl option;
    }
    and cxx_ctor_initializer = {
    1. xci_subject : cxx_ctor_initializer_subject;
    2. xci_source_range : source_range;
    3. xci_init_expr : stmt option;
    }
    and cxx_default_expr_info = {
    1. xdaei_init_expr : stmt option;
    }
    and cxx_method_decl_info = {
    1. xmdi_is_virtual : bool;
    2. xmdi_is_static : bool;
    3. xmdi_is_const : bool;
    4. xmdi_is_copy_assignment : bool;
    5. xmdi_is_copy_constructor : bool;
    6. xmdi_is_move_constructor : bool;
    7. xmdi_cxx_ctor_initializers : cxx_ctor_initializer list;
    8. xmdi_overriden_methods : decl_ref list;
    }
    and cxx_record_decl_info = {
    1. xrdi_bases : type_ptr list;
    2. xrdi_vbases : type_ptr list;
    3. xrdi_transitive_vbases : type_ptr list;
    4. xrdi_is_pod : bool;
    5. xrdi_is_trivially_copyable : bool;
    6. xrdi_destructor : decl_ref option;
    7. xrdi_lambda_call_operator : decl_ref option;
    8. xrdi_lambda_captures : lambda_capture_info list;
    }
    and decl =
    1. | TranslationUnitDecl of decl_info +Clang_ast_t (infer.ATDGenerated.Clang_ast_t)

      Module ATDGenerated.Clang_ast_t

      type access_specifier = [
      1. | `None
      2. | `Public
      3. | `Protected
      4. | `Private
      ]
      type atomic_expr_kind = [
      1. | `AO__atomic_add_fetch
      2. | `AO__atomic_and_fetch
      3. | `AO__atomic_compare_exchange
      4. | `AO__atomic_compare_exchange_n
      5. | `AO__atomic_exchange
      6. | `AO__atomic_exchange_n
      7. | `AO__atomic_fetch_add
      8. | `AO__atomic_fetch_and
      9. | `AO__atomic_fetch_max
      10. | `AO__atomic_fetch_min
      11. | `AO__atomic_fetch_nand
      12. | `AO__atomic_fetch_or
      13. | `AO__atomic_fetch_sub
      14. | `AO__atomic_fetch_xor
      15. | `AO__atomic_load
      16. | `AO__atomic_load_n
      17. | `AO__atomic_max_fetch
      18. | `AO__atomic_min_fetch
      19. | `AO__atomic_nand_fetch
      20. | `AO__atomic_or_fetch
      21. | `AO__atomic_store
      22. | `AO__atomic_store_n
      23. | `AO__atomic_sub_fetch
      24. | `AO__atomic_xor_fetch
      25. | `AO__c11_atomic_compare_exchange_strong
      26. | `AO__c11_atomic_compare_exchange_weak
      27. | `AO__c11_atomic_exchange
      28. | `AO__c11_atomic_fetch_add
      29. | `AO__c11_atomic_fetch_and
      30. | `AO__c11_atomic_fetch_max
      31. | `AO__c11_atomic_fetch_min
      32. | `AO__c11_atomic_fetch_nand
      33. | `AO__c11_atomic_fetch_or
      34. | `AO__c11_atomic_fetch_sub
      35. | `AO__c11_atomic_fetch_xor
      36. | `AO__c11_atomic_init
      37. | `AO__c11_atomic_load
      38. | `AO__c11_atomic_store
      39. | `AO__hip_atomic_compare_exchange_strong
      40. | `AO__hip_atomic_compare_exchange_weak
      41. | `AO__hip_atomic_exchange
      42. | `AO__hip_atomic_fetch_add
      43. | `AO__hip_atomic_fetch_and
      44. | `AO__hip_atomic_fetch_max
      45. | `AO__hip_atomic_fetch_min
      46. | `AO__hip_atomic_fetch_or
      47. | `AO__hip_atomic_fetch_sub
      48. | `AO__hip_atomic_fetch_xor
      49. | `AO__hip_atomic_load
      50. | `AO__hip_atomic_store
      51. | `AO__opencl_atomic_compare_exchange_strong
      52. | `AO__opencl_atomic_compare_exchange_weak
      53. | `AO__opencl_atomic_exchange
      54. | `AO__opencl_atomic_fetch_add
      55. | `AO__opencl_atomic_fetch_and
      56. | `AO__opencl_atomic_fetch_max
      57. | `AO__opencl_atomic_fetch_min
      58. | `AO__opencl_atomic_fetch_or
      59. | `AO__opencl_atomic_fetch_sub
      60. | `AO__opencl_atomic_fetch_xor
      61. | `AO__opencl_atomic_init
      62. | `AO__opencl_atomic_load
      63. | `AO__opencl_atomic_store
      64. | `AO__scoped_atomic_add_fetch
      65. | `AO__scoped_atomic_and_fetch
      66. | `AO__scoped_atomic_compare_exchange
      67. | `AO__scoped_atomic_compare_exchange_n
      68. | `AO__scoped_atomic_exchange
      69. | `AO__scoped_atomic_exchange_n
      70. | `AO__scoped_atomic_fetch_add
      71. | `AO__scoped_atomic_fetch_and
      72. | `AO__scoped_atomic_fetch_max
      73. | `AO__scoped_atomic_fetch_min
      74. | `AO__scoped_atomic_fetch_nand
      75. | `AO__scoped_atomic_fetch_or
      76. | `AO__scoped_atomic_fetch_sub
      77. | `AO__scoped_atomic_fetch_xor
      78. | `AO__scoped_atomic_load
      79. | `AO__scoped_atomic_load_n
      80. | `AO__scoped_atomic_max_fetch
      81. | `AO__scoped_atomic_min_fetch
      82. | `AO__scoped_atomic_nand_fetch
      83. | `AO__scoped_atomic_or_fetch
      84. | `AO__scoped_atomic_store
      85. | `AO__scoped_atomic_store_n
      86. | `AO__scoped_atomic_sub_fetch
      87. | `AO__scoped_atomic_xor_fetch
      ]
      type atomic_expr_info = {
      1. aei_kind : atomic_expr_kind;
      }
      type attribute_kind =
      1. | AddressSpaceAttrKind
      2. | AllocatingAttrKind
      3. | AnnotateTypeAttrKind
      4. | ArmInAttrKind
      5. | ArmInOutAttrKind
      6. | ArmMveStrictPolymorphismAttrKind
      7. | ArmOutAttrKind
      8. | ArmPreservesAttrKind
      9. | ArmStreamingAttrKind
      10. | ArmStreamingCompatibleAttrKind
      11. | BTFTypeTagAttrKind
      12. | BlockingAttrKind
      13. | CmseNSCallAttrKind
      14. | HLSLGroupSharedAddressSpaceAttrKind
      15. | HLSLParamModifierAttrKind
      16. | NoDerefAttrKind
      17. | NonAllocatingAttrKind
      18. | NonBlockingAttrKind
      19. | ObjCGCAttrKind
      20. | ObjCInertUnsafeUnretainedAttrKind
      21. | ObjCKindOfAttrKind
      22. | OpenCLConstantAddressSpaceAttrKind
      23. | OpenCLGenericAddressSpaceAttrKind
      24. | OpenCLGlobalAddressSpaceAttrKind
      25. | OpenCLGlobalDeviceAddressSpaceAttrKind
      26. | OpenCLGlobalHostAddressSpaceAttrKind
      27. | OpenCLLocalAddressSpaceAttrKind
      28. | OpenCLPrivateAddressSpaceAttrKind
      29. | Ptr32AttrKind
      30. | Ptr64AttrKind
      31. | SPtrAttrKind
      32. | TypeNonNullAttrKind
      33. | TypeNullUnspecifiedAttrKind
      34. | TypeNullableResultAttrKind
      35. | UPtrAttrKind
      36. | WebAssemblyFuncrefAttrKind
      37. | CXXAssumeAttrKind
      38. | CodeAlignAttrKind
      39. | FallThroughAttrKind
      40. | HLSLLoopHintAttrKind
      41. | LikelyAttrKind
      42. | MustTailAttrKind
      43. | OpenCLUnrollHintAttrKind
      44. | UnlikelyAttrKind
      45. | AlwaysInlineAttrKind
      46. | NoInlineAttrKind
      47. | NoMergeAttrKind
      48. | SuppressAttrKind
      49. | AArch64SVEPcsAttrKind
      50. | AArch64VectorPcsAttrKind
      51. | AMDGPUKernelCallAttrKind
      52. | AcquireHandleAttrKind
      53. | AnyX86NoCfCheckAttrKind
      54. | CDeclAttrKind
      55. | CountedByAttrKind
      56. | CountedByOrNullAttrKind
      57. | FastCallAttrKind
      58. | IntelOclBiccAttrKind
      59. | LifetimeBoundAttrKind
      60. | M68kRTDAttrKind
      61. | MSABIAttrKind
      62. | NSReturnsRetainedAttrKind
      63. | ObjCOwnershipAttrKind
      64. | PascalAttrKind
      65. | PcsAttrKind
      66. | PreserveAllAttrKind
      67. | PreserveMostAttrKind
      68. | PreserveNoneAttrKind
      69. | RISCVVectorCCAttrKind
      70. | RegCallAttrKind
      71. | SizedByAttrKind
      72. | SizedByOrNullAttrKind
      73. | StdCallAttrKind
      74. | SwiftAsyncCallAttrKind
      75. | SwiftCallAttrKind
      76. | SysVABIAttrKind
      77. | ThisCallAttrKind
      78. | TypeNullableAttrKind
      79. | VectorCallAttrKind
      80. | SwiftAsyncContextAttrKind
      81. | SwiftContextAttrKind
      82. | SwiftErrorResultAttrKind
      83. | SwiftIndirectResultAttrKind
      84. | AnnotateAttrKind
      85. | CFConsumedAttrKind
      86. | CarriesDependencyAttrKind
      87. | NSConsumedAttrKind
      88. | NonNullAttrKind
      89. | OSConsumedAttrKind
      90. | PassObjectSizeAttrKind
      91. | ReleaseHandleAttrKind
      92. | UseHandleAttrKind
      93. | HLSLPackOffsetAttrKind
      94. | HLSLSV_DispatchThreadIDAttrKind
      95. | HLSLSV_GroupIndexAttrKind
      96. | AMDGPUFlatWorkGroupSizeAttrKind
      97. | AMDGPUMaxNumWorkGroupsAttrKind
      98. | AMDGPUNumSGPRAttrKind
      99. | AMDGPUNumVGPRAttrKind
      100. | AMDGPUWavesPerEUAttrKind
      101. | ARMInterruptAttrKind
      102. | AVRInterruptAttrKind
      103. | AVRSignalAttrKind
      104. | AcquireCapabilityAttrKind
      105. | AcquiredAfterAttrKind
      106. | AcquiredBeforeAttrKind
      107. | AlignMac68kAttrKind
      108. | AlignNaturalAttrKind
      109. | AlignedAttrKind
      110. | AllocAlignAttrKind
      111. | AllocSizeAttrKind
      112. | AlwaysDestroyAttrKind
      113. | AnalyzerNoReturnAttrKind
      114. | AnyX86InterruptAttrKind
      115. | AnyX86NoCallerSavedRegistersAttrKind
      116. | ArcWeakrefUnavailableAttrKind
      117. | ArgumentWithTypeTagAttrKind
      118. | ArmBuiltinAliasAttrKind
      119. | ArmLocallyStreamingAttrKind
      120. | ArmNewAttrKind
      121. | ArtificialAttrKind
      122. | AsmLabelAttrKind
      123. | AssertCapabilityAttrKind
      124. | AssertExclusiveLockAttrKind
      125. | AssertSharedLockAttrKind
      126. | AssumeAlignedAttrKind
      127. | AvailabilityAttrKind
      128. | AvailableOnlyInDefaultEvalMethodAttrKind
      129. | BPFPreserveAccessIndexAttrKind
      130. | BPFPreserveStaticOffsetAttrKind
      131. | BTFDeclTagAttrKind
      132. | BlocksAttrKind
      133. | BuiltinAttrKind
      134. | C11NoReturnAttrKind
      135. | CFAuditedTransferAttrKind
      136. | CFGuardAttrKind
      137. | CFICanonicalJumpTableAttrKind
      138. | CFReturnsNotRetainedAttrKind
      139. | CFReturnsRetainedAttrKind
      140. | CFUnknownTransferAttrKind
      141. | CPUDispatchAttrKind
      142. | CPUSpecificAttrKind
      143. | CUDAConstantAttrKind
      144. | CUDADeviceAttrKind
      145. | CUDADeviceBuiltinSurfaceTypeAttrKind
      146. | CUDADeviceBuiltinTextureTypeAttrKind
      147. | CUDAGlobalAttrKind
      148. | CUDAHostAttrKind
      149. | CUDAInvalidTargetAttrKind
      150. | CUDALaunchBoundsAttrKind
      151. | CUDASharedAttrKind
      152. | CXX11NoReturnAttrKind
      153. | CallableWhenAttrKind
      154. | CallbackAttrKind
      155. | CapabilityAttrKind
      156. | CapturedRecordAttrKind
      157. | CleanupAttrKind
      158. | ClspvLibclcBuiltinAttrKind
      159. | CmseNSEntryAttrKind
      160. | CodeModelAttrKind
      161. | CodeSegAttrKind
      162. | ColdAttrKind
      163. | CommonAttrKind
      164. | ConstAttrKind
      165. | ConstInitAttrKind
      166. | ConstructorAttrKind
      167. | ConsumableAttrKind
      168. | ConsumableAutoCastAttrKind
      169. | ConsumableSetOnReadAttrKind
      170. | ConvergentAttrKind
      171. | CoroDisableLifetimeBoundAttrKind
      172. | CoroLifetimeBoundAttrKind
      173. | CoroOnlyDestroyWhenCompleteAttrKind
      174. | CoroReturnTypeAttrKind
      175. | CoroWrapperAttrKind
      176. | DLLExportAttrKind
      177. | DLLExportStaticLocalAttrKind
      178. | DLLImportAttrKind
      179. | DLLImportStaticLocalAttrKind
      180. | DeprecatedAttrKind
      181. | DestructorAttrKind
      182. | DiagnoseAsBuiltinAttrKind
      183. | DiagnoseIfAttrKind
      184. | DisableSanitizerInstrumentationAttrKind
      185. | DisableTailCallsAttrKind
      186. | EmptyBasesAttrKind
      187. | EnableIfAttrKind
      188. | EnforceTCBAttrKind
      189. | EnforceTCBLeafAttrKind
      190. | EnumExtensibilityAttrKind
      191. | ErrorAttrKind
      192. | ExcludeFromExplicitInstantiationAttrKind
      193. | ExclusiveTrylockFunctionAttrKind
      194. | ExternalSourceSymbolAttrKind
      195. | FinalAttrKind
      196. | FlagEnumAttrKind
      197. | FlattenAttrKind
      198. | FormatAttrKind
      199. | FormatArgAttrKind
      200. | FunctionReturnThunksAttrKind
      201. | GNUInlineAttrKind
      202. | GuardedByAttrKind
      203. | GuardedVarAttrKind
      204. | HIPManagedAttrKind
      205. | HLSLNumThreadsAttrKind
      206. | HLSLResourceAttrKind
      207. | HLSLResourceBindingAttrKind
      208. | HLSLResourceClassAttrKind
      209. | HLSLShaderAttrKind
      210. | HotAttrKind
      211. | HybridPatchableAttrKind
      212. | IBActionAttrKind
      213. | IBOutletAttrKind
      214. | IBOutletCollectionAttrKind
      215. | InitPriorityAttrKind
      216. | InternalLinkageAttrKind
      217. | LTOVisibilityPublicAttrKind
      218. | LayoutVersionAttrKind
      219. | LeafAttrKind
      220. | LockReturnedAttrKind
      221. | LocksExcludedAttrKind
      222. | M68kInterruptAttrKind
      223. | MIGServerRoutineAttrKind
      224. | MSAllocatorAttrKind
      225. | MSConstexprAttrKind
      226. | MSInheritanceAttrKind
      227. | MSNoVTableAttrKind
      228. | MSP430InterruptAttrKind
      229. | MSStructAttrKind
      230. | MSVtorDispAttrKind
      231. | MaxFieldAlignmentAttrKind
      232. | MayAliasAttrKind
      233. | MaybeUndefAttrKind
      234. | MicroMipsAttrKind
      235. | MinSizeAttrKind
      236. | MinVectorWidthAttrKind
      237. | Mips16AttrKind
      238. | MipsInterruptAttrKind
      239. | MipsLongCallAttrKind
      240. | MipsShortCallAttrKind
      241. | NSConsumesSelfAttrKind
      242. | NSErrorDomainAttrKind
      243. | NSReturnsAutoreleasedAttrKind
      244. | NSReturnsNotRetainedAttrKind
      245. | NVPTXKernelAttrKind
      246. | NakedAttrKind
      247. | NoAliasAttrKind
      248. | NoCommonAttrKind
      249. | NoDebugAttrKind
      250. | NoDestroyAttrKind
      251. | NoDuplicateAttrKind
      252. | NoInstrumentFunctionAttrKind
      253. | NoMicroMipsAttrKind
      254. | NoMips16AttrKind
      255. | NoProfileFunctionAttrKind
      256. | NoRandomizeLayoutAttrKind
      257. | NoReturnAttrKind
      258. | NoSanitizeAttrKind
      259. | NoSpeculativeLoadHardeningAttrKind
      260. | NoSplitStackAttrKind
      261. | NoStackProtectorAttrKind
      262. | NoThreadSafetyAnalysisAttrKind
      263. | NoThrowAttrKind
      264. | NoUniqueAddressAttrKind
      265. | NoUwtableAttrKind
      266. | NotTailCalledAttrKind
      267. | OMPAllocateDeclAttrKind
      268. | OMPAssumeAttrKind
      269. | OMPCaptureNoInitAttrKind
      270. | OMPDeclareTargetDeclAttrKind
      271. | OMPDeclareVariantAttrKind
      272. | OMPThreadPrivateDeclAttrKind
      273. | OSConsumesThisAttrKind
      274. | OSReturnsNotRetainedAttrKind
      275. | OSReturnsRetainedAttrKind
      276. | OSReturnsRetainedOnNonZeroAttrKind
      277. | OSReturnsRetainedOnZeroAttrKind
      278. | ObjCBridgeAttrKind
      279. | ObjCBridgeMutableAttrKind
      280. | ObjCBridgeRelatedAttrKind
      281. | ObjCExceptionAttrKind
      282. | ObjCExplicitProtocolImplAttrKind
      283. | ObjCExternallyRetainedAttrKind
      284. | ObjCIndependentClassAttrKind
      285. | ObjCMethodFamilyAttrKind
      286. | ObjCNSObjectAttrKind
      287. | ObjCPreciseLifetimeAttrKind
      288. | ObjCRequiresPropertyDefsAttrKind
      289. | ObjCRequiresSuperAttrKind
      290. | ObjCReturnsInnerPointerAttrKind
      291. | ObjCRootClassAttrKind
      292. | ObjCSubclassingRestrictedAttrKind
      293. | OpenCLIntelReqdSubGroupSizeAttrKind
      294. | OpenCLKernelAttrKind
      295. | OptimizeNoneAttrKind
      296. | OverrideAttrKind
      297. | OwnerAttrKind
      298. | OwnershipAttrKind
      299. | PackedAttrKind
      300. | ParamTypestateAttrKind
      301. | PatchableFunctionEntryAttrKind
      302. | PointerAttrKind
      303. | PragmaClangBSSSectionAttrKind
      304. | PragmaClangDataSectionAttrKind
      305. | PragmaClangRelroSectionAttrKind
      306. | PragmaClangRodataSectionAttrKind
      307. | PragmaClangTextSectionAttrKind
      308. | PreferredNameAttrKind
      309. | PreferredTypeAttrKind
      310. | PtGuardedByAttrKind
      311. | PtGuardedVarAttrKind
      312. | PureAttrKind
      313. | RISCVInterruptAttrKind
      314. | RandomizeLayoutAttrKind
      315. | ReadOnlyPlacementAttrKind
      316. | ReinitializesAttrKind
      317. | ReleaseCapabilityAttrKind
      318. | ReqdWorkGroupSizeAttrKind
      319. | RequiresCapabilityAttrKind
      320. | RestrictAttrKind
      321. | RetainAttrKind
      322. | ReturnTypestateAttrKind
      323. | ReturnsNonNullAttrKind
      324. | ReturnsTwiceAttrKind
      325. | SYCLKernelAttrKind
      326. | SYCLSpecialClassAttrKind
      327. | ScopedLockableAttrKind
      328. | SectionAttrKind
      329. | SelectAnyAttrKind
      330. | SentinelAttrKind
      331. | SetTypestateAttrKind
      332. | SharedTrylockFunctionAttrKind
      333. | SpeculativeLoadHardeningAttrKind
      334. | StandaloneDebugAttrKind
      335. | StrictFPAttrKind
      336. | StrictGuardStackCheckAttrKind
      337. | SwiftAsyncAttrKind
      338. | SwiftAsyncErrorAttrKind
      339. | SwiftAsyncNameAttrKind
      340. | SwiftAttrAttrKind
      341. | SwiftBridgeAttrKind
      342. | SwiftBridgedTypedefAttrKind
      343. | SwiftErrorAttrKind
      344. | SwiftImportAsNonGenericAttrKind
      345. | SwiftImportPropertyAsAccessorsAttrKind
      346. | SwiftNameAttrKind
      347. | SwiftNewTypeAttrKind
      348. | SwiftPrivateAttrKind
      349. | TLSModelAttrKind
      350. | TargetAttrKind
      351. | TargetClonesAttrKind
      352. | TargetVersionAttrKind
      353. | TestTypestateAttrKind
      354. | TransparentUnionAttrKind
      355. | TrivialABIAttrKind
      356. | TryAcquireCapabilityAttrKind
      357. | TypeTagForDatatypeAttrKind
      358. | TypeVisibilityAttrKind
      359. | UnavailableAttrKind
      360. | UninitializedAttrKind
      361. | UnsafeBufferUsageAttrKind
      362. | UnusedAttrKind
      363. | UsedAttrKind
      364. | UsingIfExistsAttrKind
      365. | UuidAttrKind
      366. | VTablePointerAuthenticationAttrKind
      367. | VecReturnAttrKind
      368. | VecTypeHintAttrKind
      369. | VisibilityAttrKind
      370. | WarnUnusedAttrKind
      371. | WarnUnusedResultAttrKind
      372. | WeakAttrKind
      373. | WeakImportAttrKind
      374. | WeakRefAttrKind
      375. | WebAssemblyExportNameAttrKind
      376. | WebAssemblyImportModuleAttrKind
      377. | WebAssemblyImportNameAttrKind
      378. | WorkGroupSizeHintAttrKind
      379. | X86ForceAlignArgPointerAttrKind
      380. | XRayInstrumentAttrKind
      381. | XRayLogArgsAttrKind
      382. | ZeroCallUsedRegsAttrKind
      383. | AbiTagAttrKind
      384. | AliasAttrKind
      385. | AlignValueAttrKind
      386. | BuiltinAliasAttrKind
      387. | CalledOnceAttrKind
      388. | IFuncAttrKind
      389. | InitSegAttrKind
      390. | LoaderUninitializedAttrKind
      391. | LoopHintAttrKind
      392. | ModeAttrKind
      393. | NoBuiltinAttrKind
      394. | NoEscapeAttrKind
      395. | OMPCaptureKindAttrKind
      396. | OMPDeclareSimdDeclAttrKind
      397. | OMPReferencedVarAttrKind
      398. | ObjCBoxableAttrKind
      399. | ObjCClassStubAttrKind
      400. | ObjCDesignatedInitializerAttrKind
      401. | ObjCDirectAttrKind
      402. | ObjCDirectMembersAttrKind
      403. | ObjCNonLazyClassAttrKind
      404. | ObjCNonRuntimeProtocolAttrKind
      405. | ObjCRuntimeNameAttrKind
      406. | ObjCRuntimeVisibleAttrKind
      407. | OpenCLAccessAttrKind
      408. | OverloadableAttrKind
      409. | RenderScriptKernelAttrKind
      410. | SwiftObjCMembersAttrKind
      411. | SwiftVersionedAdditionAttrKind
      412. | SwiftVersionedRemovalAttrKind
      413. | ThreadAttrKind
      type binary_operator_kind = [
      1. | `PtrMemD
      2. | `PtrMemI
      3. | `Mul
      4. | `Div
      5. | `Rem
      6. | `Add
      7. | `Sub
      8. | `Shl
      9. | `Shr
      10. | `Cmp
      11. | `LT
      12. | `GT
      13. | `LE
      14. | `GE
      15. | `EQ
      16. | `NE
      17. | `And
      18. | `Xor
      19. | `Or
      20. | `LAnd
      21. | `LOr
      22. | `Assign
      23. | `MulAssign
      24. | `DivAssign
      25. | `RemAssign
      26. | `AddAssign
      27. | `SubAssign
      28. | `ShlAssign
      29. | `ShrAssign
      30. | `AndAssign
      31. | `XorAssign
      32. | `OrAssign
      33. | `Comma
      ]
      type binary_operator_info = {
      1. boi_kind : binary_operator_kind;
      }
      type builtin_type_kind = [
      1. | `Void
      2. | `Bool
      3. | `Char_U
      4. | `UChar
      5. | `WChar_U
      6. | `Char8
      7. | `Char16
      8. | `Char32
      9. | `UShort
      10. | `UInt
      11. | `ULong
      12. | `ULongLong
      13. | `UInt128
      14. | `Char_S
      15. | `SChar
      16. | `WChar_S
      17. | `Short
      18. | `Int
      19. | `Long
      20. | `LongLong
      21. | `Int128
      22. | `ShortAccum
      23. | `Accum
      24. | `LongAccum
      25. | `UShortAccum
      26. | `UAccum
      27. | `ULongAccum
      28. | `ShortFract
      29. | `Fract
      30. | `LongFract
      31. | `UShortFract
      32. | `UFract
      33. | `ULongFract
      34. | `SatShortAccum
      35. | `SatAccum
      36. | `SatLongAccum
      37. | `SatUShortAccum
      38. | `SatUAccum
      39. | `SatULongAccum
      40. | `SatShortFract
      41. | `SatFract
      42. | `SatLongFract
      43. | `SatUShortFract
      44. | `SatUFract
      45. | `SatULongFract
      46. | `Half
      47. | `Float
      48. | `Double
      49. | `LongDouble
      50. | `Float16
      51. | `BFloat16
      52. | `Float128
      53. | `Ibm128
      54. | `NullPtr
      55. | `ObjCId
      56. | `ObjCClass
      57. | `ObjCSel
      58. | `OCLSampler
      59. | `OCLEvent
      60. | `OCLClkEvent
      61. | `OCLQueue
      62. | `OCLReserveID
      63. | `Dependent
      64. | `Overload
      65. | `BoundMember
      66. | `UnresolvedTemplate
      67. | `PseudoObject
      68. | `UnknownAny
      69. | `BuiltinFn
      70. | `ARCUnbridgedCast
      71. | `IncompleteMatrixIdx
      72. | `ArraySection
      73. | `OMPArrayShaping
      74. | `OMPIterator
      75. | `SveInt8
      76. | `SveInt16
      77. | `SveInt32
      78. | `SveInt64
      79. | `SveUint8
      80. | `SveUint16
      81. | `SveUint32
      82. | `SveUint64
      83. | `SveFloat16
      84. | `SveFloat32
      85. | `SveFloat64
      86. | `SveBFloat16
      87. | `SveInt8x2
      88. | `SveInt16x2
      89. | `SveInt32x2
      90. | `SveInt64x2
      91. | `SveUint8x2
      92. | `SveUint16x2
      93. | `SveUint32x2
      94. | `SveUint64x2
      95. | `SveFloat16x2
      96. | `SveFloat32x2
      97. | `SveFloat64x2
      98. | `SveBFloat16x2
      99. | `SveInt8x3
      100. | `SveInt16x3
      101. | `SveInt32x3
      102. | `SveInt64x3
      103. | `SveUint8x3
      104. | `SveUint16x3
      105. | `SveUint32x3
      106. | `SveUint64x3
      107. | `SveFloat16x3
      108. | `SveFloat32x3
      109. | `SveFloat64x3
      110. | `SveBFloat16x3
      111. | `SveInt8x4
      112. | `SveInt16x4
      113. | `SveInt32x4
      114. | `SveInt64x4
      115. | `SveUint8x4
      116. | `SveUint16x4
      117. | `SveUint32x4
      118. | `SveUint64x4
      119. | `SveFloat16x4
      120. | `SveFloat32x4
      121. | `SveFloat64x4
      122. | `SveBFloat16x4
      123. | `SveBool
      124. | `SveBoolx2
      125. | `SveBoolx4
      126. | `SveCount
      ]
      type cast_kind = [
      1. | `Dependent
      2. | `BitCast
      3. | `LValueBitCast
      4. | `LValueToRValueBitCast
      5. | `LValueToRValue
      6. | `NoOp
      7. | `BaseToDerived
      8. | `DerivedToBase
      9. | `UncheckedDerivedToBase
      10. | `Dynamic
      11. | `ToUnion
      12. | `ArrayToPointerDecay
      13. | `FunctionToPointerDecay
      14. | `NullToPointer
      15. | `NullToMemberPointer
      16. | `BaseToDerivedMemberPointer
      17. | `DerivedToBaseMemberPointer
      18. | `MemberPointerToBoolean
      19. | `ReinterpretMemberPointer
      20. | `UserDefinedConversion
      21. | `ConstructorConversion
      22. | `IntegralToPointer
      23. | `PointerToIntegral
      24. | `PointerToBoolean
      25. | `ToVoid
      26. | `MatrixCast
      27. | `VectorSplat
      28. | `IntegralCast
      29. | `IntegralToBoolean
      30. | `IntegralToFloating
      31. | `FloatingToFixedPoint
      32. | `FixedPointToFloating
      33. | `FixedPointCast
      34. | `FixedPointToIntegral
      35. | `IntegralToFixedPoint
      36. | `FixedPointToBoolean
      37. | `FloatingToIntegral
      38. | `FloatingToBoolean
      39. | `BooleanToSignedIntegral
      40. | `FloatingCast
      41. | `CPointerToObjCPointerCast
      42. | `BlockPointerToObjCPointerCast
      43. | `AnyPointerToBlockPointerCast
      44. | `ObjCObjectLValueCast
      45. | `FloatingRealToComplex
      46. | `FloatingComplexToReal
      47. | `FloatingComplexToBoolean
      48. | `FloatingComplexCast
      49. | `FloatingComplexToIntegralComplex
      50. | `IntegralRealToComplex
      51. | `IntegralComplexToReal
      52. | `IntegralComplexToBoolean
      53. | `IntegralComplexCast
      54. | `IntegralComplexToFloatingComplex
      55. | `ARCProduceObject
      56. | `ARCConsumeObject
      57. | `ARCReclaimReturnedObject
      58. | `ARCExtendBlockObject
      59. | `AtomicToNonAtomic
      60. | `NonAtomicToAtomic
      61. | `CopyAndAutoreleaseBlockObject
      62. | `BuiltinFnToFnPtr
      63. | `ZeroToOCLOpaqueType
      64. | `AddressSpaceConversion
      65. | `IntToOCLSampler
      66. | `HLSLVectorTruncation
      67. | `HLSLArrayRValue
      ]
      type cxx_base_specifier = {
      1. xbs_name : string;
      2. xbs_virtual : bool;
      }
      type cast_expr_info = {
      1. cei_cast_kind : cast_kind;
      2. cei_base_path : cxx_base_specifier list;
      }
      type cxx_noexcept_expr_info = {
      1. xnee_value : bool;
      }
      type decl_context_info = {
      1. dci_has_external_lexical_storage : bool;
      2. dci_has_external_visible_storage : bool;
      }
      type decl_kind = [
      1. | `TranslationUnit
      2. | `TopLevelStmt
      3. | `RequiresExprBody
      4. | `LinkageSpec
      5. | `ExternCContext
      6. | `Export
      7. | `Captured
      8. | `Block
      9. | `StaticAssert
      10. | `PragmaDetectMismatch
      11. | `PragmaComment
      12. | `ObjCPropertyImpl
      13. | `OMPThreadPrivate
      14. | `OMPRequires
      15. | `OMPAllocate
      16. | `Named
      17. | `ObjCMethod
      18. | `ObjCContainer
      19. | `ObjCProtocol
      20. | `ObjCInterface
      21. | `ObjCImpl
      22. | `ObjCImplementation
      23. | `ObjCCategoryImpl
      24. | `ObjCCategory
      25. | `Namespace
      26. | `HLSLBuffer
      27. | `Value
      28. | `OMPDeclareReduction
      29. | `OMPDeclareMapper
      30. | `UnresolvedUsingValue
      31. | `UnnamedGlobalConstant
      32. | `TemplateParamObject
      33. | `MSGuid
      34. | `IndirectField
      35. | `EnumConstant
      36. | `Declarator
      37. | `Function
      38. | `CXXMethod
      39. | `CXXDestructor
      40. | `CXXConversion
      41. | `CXXConstructor
      42. | `CXXDeductionGuide
      43. | `Var
      44. | `VarTemplateSpecialization
      45. | `VarTemplatePartialSpecialization
      46. | `ParmVar
      47. | `OMPCapturedExpr
      48. | `ImplicitParam
      49. | `Decomposition
      50. | `NonTypeTemplateParm
      51. | `MSProperty
      52. | `Field
      53. | `ObjCIvar
      54. | `ObjCAtDefsField
      55. | `Binding
      56. | `UsingShadow
      57. | `ConstructorUsingShadow
      58. | `UsingPack
      59. | `UsingDirective
      60. | `UnresolvedUsingIfExists
      61. | `Type
      62. | `Tag
      63. | `Record
      64. | `CXXRecord
      65. | `ClassTemplateSpecialization
      66. | `ClassTemplatePartialSpecialization
      67. | `Enum
      68. | `UnresolvedUsingTypename
      69. | `TypedefName
      70. | `Typedef
      71. | `TypeAlias
      72. | `ObjCTypeParam
      73. | `TemplateTypeParm
      74. | `Template
      75. | `TemplateTemplateParm
      76. | `RedeclarableTemplate
      77. | `VarTemplate
      78. | `TypeAliasTemplate
      79. | `FunctionTemplate
      80. | `ClassTemplate
      81. | `Concept
      82. | `BuiltinTemplate
      83. | `ObjCProperty
      84. | `ObjCCompatibleAlias
      85. | `NamespaceAlias
      86. | `Label
      87. | `BaseUsing
      88. | `UsingEnum
      89. | `Using
      90. | `LifetimeExtendedTemporary
      91. | `Import
      92. | `ImplicitConceptSpecialization
      93. | `FriendTemplate
      94. | `Friend
      95. | `FileScopeAsm
      96. | `Empty
      97. | `AccessSpec
      ]
      type declaration_name_kind = [
      1. | `Identifier
      2. | `ObjCZeroArgSelector
      3. | `ObjCOneArgSelector
      4. | `ObjCMultiArgSelector
      5. | `CXXConstructorName
      6. | `CXXDestructorName
      7. | `CXXConversionFunctionName
      8. | `CXXOperatorName
      9. | `CXXLiteralOperatorName
      10. | `CXXUsingDirective
      11. | `CXXDeductionGuideName
      ]
      type declaration_name = {
      1. dn_kind : declaration_name_kind;
      2. dn_name : string;
      }
      type enum_decl_scope = [
      1. | `Class
      2. | `Struct
      ]
      type enum_decl_info = {
      1. edi_scope : enum_decl_scope option;
      2. edi_is_module_private : bool;
      }
      type input_kind = [
      1. | `IK_None
      2. | `IK_Asm
      3. | `IK_C
      4. | `IK_CXX
      5. | `IK_ObjC
      6. | `IK_ObjCXX
      7. | `IK_OpenCL
      8. | `IK_CUDA
      9. | `IK_HIP
      10. | `IK_RenderScript
      11. | `IK_LLVM_IR
      12. | `IK_HLSL
      ]
      type integer_literal_info = {
      1. ili_is_signed : bool;
      2. ili_bitwidth : int;
      3. ili_value : string;
      }
      type integer_type_widths = {
      1. itw_char_type : int;
      2. itw_short_type : int;
      3. itw_int_type : int;
      4. itw_long_type : int;
      5. itw_longlong_type : int;
      }
      type lambda_capture_kind = [
      1. | `LCK_This
      2. | `LCK_ByCopy
      3. | `LCK_ByRef
      4. | `LCK_VLAType
      5. | `LCK_StarThis
      ]
      type named_decl_info = {
      1. ni_name : string;
      2. ni_qual_name : string list;
      }
      type namespace_decl_info = {
      1. ndi_is_inline : bool;
      }
      type obj_c_access_control = [
      1. | `None
      2. | `Private
      3. | `Protected
      4. | `Public
      5. | `Package
      ]
      type obj_c_availability_check_expr_info = {
      1. oacei_version : string option;
      }
      type obj_c_bridge_cast_kind = [
      1. | `OBC_BridgeRetained
      2. | `OBC_Bridge
      3. | `OBC_BridgeTransfer
      ]
      type obj_c_bridged_cast_expr_info = {
      1. obcei_cast_kind : obj_c_bridge_cast_kind;
      }
      type obj_c_ivar_decl_info = {
      1. ovdi_is_synthesize : bool;
      2. ovdi_access_control : obj_c_access_control;
      }
      type obj_c_property_control = [
      1. | `None
      2. | `Required
      3. | `Optional
      ]
      type obj_c_subscript_kind = [
      1. | `ArraySubscript
      2. | `DictionarySubscript
      ]
      type objc_lifetime_attr = [
      1. | `OCL_None
      2. | `OCL_ExplicitNone
      3. | `OCL_Strong
      4. | `OCL_Weak
      5. | `OCL_Autoreleasing
      ]
      type attr_type_info = {
      1. ati_attr_kind : attribute_kind;
      2. ati_lifetime : objc_lifetime_attr;
      }
      type object_kind = [
      1. | `Ordinary
      2. | `BitField
      3. | `ObjCProperty
      4. | `ObjCSubscript
      5. | `VectorComponent
      ]
      type offset_of_expr_info = {
      1. ooe_literal : integer_literal_info option;
      }
      type pointer = int
      type addr_label_expr_info = {
      1. alei_label : string;
      2. alei_pointer : pointer;
      }
      type cxx_new_expr_info = {
      1. xnei_is_array : bool;
      2. xnei_array_size_expr : pointer option;
      3. xnei_initializer_expr : pointer option;
      4. xnei_placement_args : pointer list;
      }
      type cxx_temporary = pointer
      type cxx_bind_temporary_expr_info = {
      1. xbtei_cxx_temporary : cxx_temporary;
      }
      type goto_stmt_info = {
      1. gsi_label : string;
      2. gsi_pointer : pointer;
      }
      type obj_c_array_literal_expr_info = {
      1. oalei_array_method : pointer option;
      }
      type obj_c_dictionary_literal_expr_info = {
      1. odlei_dict_method : pointer option;
      }
      type predefined_expr_type = [
      1. | `Func
      2. | `Function
      3. | `LFunction
      4. | `FuncDName
      5. | `FuncSig
      6. | `LFuncSig
      7. | `PrettyFunction
      8. | `PrettyFunctionNoVirtual
      ]
      type property_attribute = [
      1. | `Readonly
      2. | `Assign
      3. | `Readwrite
      4. | `Retain
      5. | `Copy
      6. | `Nonatomic
      7. | `Atomic
      8. | `Weak
      9. | `Strong
      10. | `Unsafe_unretained
      11. | `ExplicitGetter
      12. | `ExplicitSetter
      ]
      type property_implementation = [
      1. | `Synthesize
      2. | `Dynamic
      ]
      type record_decl_info = {
      1. rdi_definition_ptr : pointer;
      2. rdi_is_module_private : bool;
      3. rdi_is_complete_definition : bool;
      4. rdi_is_dependent_type : bool;
      }
      type selector = string
      type obj_c_method_ref_info = {
      1. mri_getter : selector option;
      2. mri_setter : selector option;
      }
      type obj_c_subscript_ref_expr_info = {
      1. osrei_kind : obj_c_subscript_kind;
      2. osrei_getter : selector option;
      3. osrei_setter : selector option;
      }
      type objc_boxed_expr_info = {
      1. obei_boxing_method : selector option;
      }
      type sentinel_attr_info = {
      1. sai_sentinel : int;
      2. sai_null_pos : int;
      }
      type source_file = string
      type source_location = {
      1. mutable sl_file : source_file option;
      2. mutable sl_line : int option;
      3. mutable sl_column : int option;
      4. sl_is_macro : bool;
      5. mutable sl_macro_file : source_file option;
      6. mutable sl_macro_line : int option;
      }
      type source_range = source_location * source_location
      type attribute_info = {
      1. ai_pointer : pointer;
      2. ai_source_range : source_range;
      }
      type attr_tuple = attribute_info
      type comment_info = {
      1. ci_parent_pointer : pointer;
      2. ci_source_range : source_range;
      }
      type specifier_kind = [
      1. | `Identifier
      2. | `Namespace
      3. | `NamespaceAlias
      4. | `TypeSpec
      5. | `TypeSpecWithTemplate
      6. | `Global
      7. | `Super
      ]
      type stmt_info = {
      1. si_pointer : pointer;
      2. si_source_range : source_range;
      }
      type tag_kind = [
      1. | `TTK_Struct
      2. | `TTK_Interface
      3. | `TTK_Union
      4. | `TTK_Class
      5. | `TTK_Enum
      ]
      type qual_type = {
      1. qt_type_ptr : type_ptr;
      2. qt_is_const : bool;
      3. qt_is_restrict : bool;
      4. qt_is_volatile : bool;
      }
      type array_type_info = {
      1. arti_element_type : qual_type;
      2. arti_stride : int option;
      }
      type compound_assign_operator_info = {
      1. caoi_lhs_type : qual_type;
      2. caoi_result_type : qual_type;
      }
      type cxx_delete_expr_info = {
      1. xdei_is_array : bool;
      2. xdei_destroyed_type : qual_type;
      }
      type decl_ref = {
      1. dr_kind : decl_kind;
      2. dr_decl_pointer : pointer;
      3. dr_name : named_decl_info option;
      4. dr_is_hidden : bool;
      5. dr_qual_type : qual_type option;
      }
      type cxx_construct_expr_info = {
      1. xcei_decl_ref : decl_ref;
      2. xcei_is_elidable : bool;
      3. xcei_requires_zero_initialization : bool;
      4. xcei_is_copy_constructor : bool;
      }
      type cxx_ctor_initializer_subject = [
      1. | `Member of decl_ref
      2. | `Delegating of type_ptr
      3. | `BaseClass of type_ptr * bool
      ]
      type decl_ref_expr_info = {
      1. drti_decl_ref : decl_ref option;
      }
      type expr_with_cleanups_info = {
      1. ewci_decl_refs : decl_ref list;
      }
      type function_type_info = {
      1. fti_return_type : qual_type;
      }
      type materialize_temporary_expr_info = {
      1. mtei_decl_ref : decl_ref option;
      }
      type member_expr_info = {
      1. mei_is_arrow : bool;
      2. mei_performs_virtual_dispatch : bool;
      3. mei_name : named_decl_info;
      4. mei_decl_ref : decl_ref;
      }
      type nested_name_specifier_loc = {
      1. nnsl_kind : specifier_kind;
      2. nnsl_ref : decl_ref option;
      }
      type namespace_alias_decl_info = {
      1. nadi_namespace_loc : source_location;
      2. nadi_target_name_loc : source_location;
      3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
      4. nadi_namespace : decl_ref;
      }
      type obj_c_category_decl_info = {
      1. odi_class_interface : decl_ref option;
      2. odi_implementation : decl_ref option;
      3. odi_protocols : decl_ref list;
      }
      type obj_c_category_impl_decl_info = {
      1. ocidi_class_interface : decl_ref option;
      2. ocidi_category_decl : decl_ref option;
      }
      type obj_c_compatible_alias_decl_info = {
      1. ocadi_class_interface : decl_ref option;
      }
      type obj_c_interface_decl_info = {
      1. otdi_super : decl_ref option;
      2. otdi_implementation : decl_ref option;
      3. otdi_protocols : decl_ref list;
      4. otdi_known_categories : decl_ref list;
      }
      type obj_c_ivar_ref_expr_info = {
      1. ovrei_decl_ref : decl_ref;
      2. ovrei_pointer : pointer;
      3. ovrei_is_free_ivar : bool;
      }
      type obj_c_property_decl_info = {
      1. opdi_qual_type : qual_type;
      2. opdi_getter_method : decl_ref option;
      3. opdi_setter_method : decl_ref option;
      4. opdi_ivar_decl : decl_ref option;
      5. opdi_property_control : obj_c_property_control;
      6. opdi_property_attributes : property_attribute list;
      }
      type obj_c_property_impl_decl_info = {
      1. opidi_implementation : property_implementation;
      2. opidi_property_decl : decl_ref option;
      3. opidi_ivar_decl : decl_ref option;
      }
      type obj_c_protocol_decl_info = {
      1. opcdi_protocols : decl_ref list;
      }
      type objc_encode_expr_info = {
      1. oeei_qual_type : qual_type;
      2. oeei_raw : string;
      }
      type objc_object_type_info = {
      1. ooti_base_type : type_ptr;
      2. ooti_protocol_decls_ptr : pointer list;
      3. ooti_type_args : qual_type list;
      }
      type overload_expr_info = {
      1. oei_decls : decl_ref list;
      2. oei_name : declaration_name;
      }
      type params_type_info = {
      1. pti_params_type : qual_type list;
      }
      type property_ref_kind = [
      1. | `MethodRef of obj_c_method_ref_info
      2. | `PropertyRef of decl_ref
      ]
      type obj_c_property_ref_expr_info = {
      1. oprei_kind : property_ref_kind;
      2. oprei_is_super_receiver : bool;
      3. oprei_is_messaging_getter : bool;
      4. oprei_is_messaging_setter : bool;
      }
      type receiver_kind = [
      1. | `Instance
      2. | `Class of qual_type
      3. | `SuperInstance
      4. | `SuperClass
      ]
      type obj_c_message_expr_info = {
      1. omei_selector : string;
      2. omei_is_definition_found : bool;
      3. omei_decl_pointer : pointer option;
      4. omei_receiver_kind : receiver_kind;
      }
      type type_info = {
      1. ti_pointer : pointer;
      2. ti_desugared_type : type_ptr option;
      }
      type type_trait_info = {
      1. xtti_value : bool;
      }
      type typedef_decl_info = {
      1. tdi_is_module_private : bool;
      }
      type typedef_type_info = {
      1. tti_child_type : qual_type;
      2. tti_decl_ptr : pointer;
      }
      type c_type =
      1. | NoneType of type_info
      2. | AdjustedType of type_info * qual_type
      3. | DecayedType of type_info * qual_type
      4. | ConstantArrayType of type_info * array_type_info * int
      5. | ArrayParameterType of type_info * array_type_info * int
      6. | DependentSizedArrayType of type_info * array_type_info
      7. | IncompleteArrayType of type_info * array_type_info
      8. | VariableArrayType of type_info * array_type_info * pointer
      9. | AtomicType of type_info * qual_type
      10. | AttributedType of type_info * attr_type_info
      11. | BTFTagAttributedType of type_info
      12. | BitIntType of type_info
      13. | BlockPointerType of type_info * qual_type
      14. | CountAttributedType of type_info
      15. | BuiltinType of type_info * builtin_type_kind
      16. | ComplexType of type_info
      17. | DecltypeType of type_info * qual_type
      18. | AutoType of type_info
      19. | DeducedTemplateSpecializationType of type_info
      20. | DependentAddressSpaceType of type_info
      21. | DependentBitIntType of type_info
      22. | DependentNameType of type_info
      23. | DependentSizedExtVectorType of type_info
      24. | DependentTemplateSpecializationType of type_info
      25. | DependentVectorType of type_info
      26. | ElaboratedType of type_info
      27. | FunctionNoProtoType of type_info * function_type_info
      28. | FunctionProtoType of type_info * function_type_info * params_type_info
      29. | InjectedClassNameType of type_info
      30. | MacroQualifiedType of type_info
      31. | ConstantMatrixType of type_info
      32. | DependentSizedMatrixType of type_info
      33. | MemberPointerType of type_info * qual_type
      34. | ObjCObjectPointerType of type_info * qual_type
      35. | ObjCObjectType of type_info * objc_object_type_info
      36. | ObjCInterfaceType of type_info * pointer
      37. | ObjCTypeParamType of type_info
      38. | PackExpansionType of type_info
      39. | PackIndexingType of type_info
      40. | ParenType of type_info * qual_type
      41. | PipeType of type_info
      42. | PointerType of type_info * qual_type
      43. | LValueReferenceType of type_info * qual_type
      44. | RValueReferenceType of type_info * qual_type
      45. | SubstTemplateTypeParmPackType of type_info
      46. | SubstTemplateTypeParmType of type_info
      47. | EnumType of type_info * pointer
      48. | RecordType of type_info * pointer
      49. | TemplateSpecializationType of type_info
      50. | TemplateTypeParmType of type_info
      51. | TypeOfExprType of type_info
      52. | TypeOfType of type_info
      53. | TypedefType of type_info * typedef_type_info
      54. | UnaryTransformType of type_info
      55. | UnresolvedUsingType of type_info
      56. | UsingType of type_info
      57. | VectorType of type_info
      58. | ExtVectorType of type_info
      type translation_unit_decl_info = {
      1. tudi_input_path : source_file;
      2. tudi_input_kind : input_kind;
      3. tudi_integer_type_widths : integer_type_widths;
      4. tudi_is_objc_arc_on : bool;
      5. tudi_types : c_type list;
      }
      type unary_expr_or_type_trait_kind = [
      1. | `AlignOf
      2. | `OpenMPRequiredSimdAlign
      3. | `PreferredAlignOf
      4. | `SizeOf
      5. | `SizeOfWithSize of int
      6. | `VecStep
      7. | `VectorElements
      ]
      type unary_expr_or_type_trait_expr_info = {
      1. uttei_kind : unary_expr_or_type_trait_kind;
      2. uttei_qual_type : qual_type;
      }
      type unary_operator_kind = [
      1. | `PostInc
      2. | `PostDec
      3. | `PreInc
      4. | `PreDec
      5. | `AddrOf
      6. | `Deref
      7. | `Plus
      8. | `Minus
      9. | `Not
      10. | `LNot
      11. | `Real
      12. | `Imag
      13. | `Extension
      14. | `Coawait
      ]
      type unary_operator_info = {
      1. uoi_kind : unary_operator_kind;
      2. uoi_is_postfix : bool;
      }
      type unresolved_lookup_expr_info = {
      1. ulei_requires_ADL : bool;
      2. ulei_naming_class : decl_ref option;
      }
      type using_directive_decl_info = {
      1. uddi_using_location : source_location;
      2. uddi_namespace_key_location : source_location;
      3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
      4. uddi_nominated_namespace : decl_ref option;
      }
      type value_kind = [
      1. | `RValue
      2. | `LValue
      3. | `XValue
      ]
      type expr_info = {
      1. ei_qual_type : qual_type;
      2. ei_value_kind : value_kind;
      3. ei_object_kind : object_kind;
      }
      type version_tuple = {
      1. vt_major : int;
      2. vt_minor : int option;
      3. vt_subminor : int option;
      4. vt_build : int option;
      }
      type availability_attr_info = {
      1. aai_platform : string option;
      2. aai_introduced : version_tuple;
      }
      type visibility_attr =
      1. | DefaultVisibility
      2. | HiddenVisibility
      3. | ProtectedVisibility
      type attribute = [
      1. | `AddressSpaceAttr of attribute_info
      2. | `AllocatingAttr of attribute_info
      3. | `AnnotateTypeAttr of attribute_info
      4. | `ArmInAttr of attribute_info
      5. | `ArmInOutAttr of attribute_info
      6. | `ArmMveStrictPolymorphismAttr of attribute_info
      7. | `ArmOutAttr of attribute_info
      8. | `ArmPreservesAttr of attribute_info
      9. | `ArmStreamingAttr of attribute_info
      10. | `ArmStreamingCompatibleAttr of attribute_info
      11. | `BTFTypeTagAttr of attribute_info
      12. | `BlockingAttr of attribute_info
      13. | `CmseNSCallAttr of attribute_info
      14. | `HLSLGroupSharedAddressSpaceAttr of attribute_info
      15. | `HLSLParamModifierAttr of attribute_info
      16. | `NoDerefAttr of attribute_info
      17. | `NonAllocatingAttr of attribute_info
      18. | `NonBlockingAttr of attribute_info
      19. | `ObjCGCAttr of attribute_info
      20. | `ObjCInertUnsafeUnretainedAttr of attribute_info
      21. | `ObjCKindOfAttr of attribute_info
      22. | `OpenCLConstantAddressSpaceAttr of attribute_info
      23. | `OpenCLGenericAddressSpaceAttr of attribute_info
      24. | `OpenCLGlobalAddressSpaceAttr of attribute_info
      25. | `OpenCLGlobalDeviceAddressSpaceAttr of attribute_info
      26. | `OpenCLGlobalHostAddressSpaceAttr of attribute_info
      27. | `OpenCLLocalAddressSpaceAttr of attribute_info
      28. | `OpenCLPrivateAddressSpaceAttr of attribute_info
      29. | `Ptr32Attr of attribute_info
      30. | `Ptr64Attr of attribute_info
      31. | `SPtrAttr of attribute_info
      32. | `TypeNonNullAttr of attribute_info
      33. | `TypeNullUnspecifiedAttr of attribute_info
      34. | `TypeNullableResultAttr of attribute_info
      35. | `UPtrAttr of attribute_info
      36. | `WebAssemblyFuncrefAttr of attribute_info
      37. | `CXXAssumeAttr of attribute_info
      38. | `CodeAlignAttr of attribute_info
      39. | `FallThroughAttr of attribute_info
      40. | `HLSLLoopHintAttr of attribute_info
      41. | `LikelyAttr of attribute_info
      42. | `MustTailAttr of attribute_info
      43. | `OpenCLUnrollHintAttr of attribute_info
      44. | `UnlikelyAttr of attribute_info
      45. | `AlwaysInlineAttr of attribute_info
      46. | `NoInlineAttr of attribute_info
      47. | `NoMergeAttr of attribute_info
      48. | `SuppressAttr of attribute_info
      49. | `AArch64SVEPcsAttr of attribute_info
      50. | `AArch64VectorPcsAttr of attribute_info
      51. | `AMDGPUKernelCallAttr of attribute_info
      52. | `AcquireHandleAttr of attribute_info
      53. | `AnyX86NoCfCheckAttr of attribute_info
      54. | `CDeclAttr of attribute_info
      55. | `CountedByAttr of attribute_info
      56. | `CountedByOrNullAttr of attribute_info
      57. | `FastCallAttr of attribute_info
      58. | `IntelOclBiccAttr of attribute_info
      59. | `LifetimeBoundAttr of attribute_info
      60. | `M68kRTDAttr of attribute_info
      61. | `MSABIAttr of attribute_info
      62. | `NSReturnsRetainedAttr of attribute_info
      63. | `ObjCOwnershipAttr of attribute_info
      64. | `PascalAttr of attribute_info
      65. | `PcsAttr of attribute_info
      66. | `PreserveAllAttr of attribute_info
      67. | `PreserveMostAttr of attribute_info
      68. | `PreserveNoneAttr of attribute_info
      69. | `RISCVVectorCCAttr of attribute_info
      70. | `RegCallAttr of attribute_info
      71. | `SizedByAttr of attribute_info
      72. | `SizedByOrNullAttr of attribute_info
      73. | `StdCallAttr of attribute_info
      74. | `SwiftAsyncCallAttr of attribute_info
      75. | `SwiftCallAttr of attribute_info
      76. | `SysVABIAttr of attribute_info
      77. | `ThisCallAttr of attribute_info
      78. | `TypeNullableAttr of attribute_info
      79. | `VectorCallAttr of attribute_info
      80. | `SwiftAsyncContextAttr of attribute_info
      81. | `SwiftContextAttr of attribute_info
      82. | `SwiftErrorResultAttr of attribute_info
      83. | `SwiftIndirectResultAttr of attribute_info
      84. | `AnnotateAttr of attr_tuple * string
      85. | `CFConsumedAttr of attribute_info
      86. | `CarriesDependencyAttr of attribute_info
      87. | `NSConsumedAttr of attribute_info
      88. | `NonNullAttr of attribute_info
      89. | `OSConsumedAttr of attribute_info
      90. | `PassObjectSizeAttr of attribute_info
      91. | `ReleaseHandleAttr of attribute_info
      92. | `UseHandleAttr of attribute_info
      93. | `HLSLPackOffsetAttr of attribute_info
      94. | `HLSLSV_DispatchThreadIDAttr of attribute_info
      95. | `HLSLSV_GroupIndexAttr of attribute_info
      96. | `AMDGPUFlatWorkGroupSizeAttr of attribute_info
      97. | `AMDGPUMaxNumWorkGroupsAttr of attribute_info
      98. | `AMDGPUNumSGPRAttr of attribute_info
      99. | `AMDGPUNumVGPRAttr of attribute_info
      100. | `AMDGPUWavesPerEUAttr of attribute_info
      101. | `ARMInterruptAttr of attribute_info
      102. | `AVRInterruptAttr of attribute_info
      103. | `AVRSignalAttr of attribute_info
      104. | `AcquireCapabilityAttr of attribute_info
      105. | `AcquiredAfterAttr of attribute_info
      106. | `AcquiredBeforeAttr of attribute_info
      107. | `AlignMac68kAttr of attribute_info
      108. | `AlignNaturalAttr of attribute_info
      109. | `AlignedAttr of attribute_info
      110. | `AllocAlignAttr of attribute_info
      111. | `AllocSizeAttr of attribute_info
      112. | `AlwaysDestroyAttr of attribute_info
      113. | `AnalyzerNoReturnAttr of attribute_info
      114. | `AnyX86InterruptAttr of attribute_info
      115. | `AnyX86NoCallerSavedRegistersAttr of attribute_info
      116. | `ArcWeakrefUnavailableAttr of attribute_info
      117. | `ArgumentWithTypeTagAttr of attribute_info
      118. | `ArmBuiltinAliasAttr of attribute_info
      119. | `ArmLocallyStreamingAttr of attribute_info
      120. | `ArmNewAttr of attribute_info
      121. | `ArtificialAttr of attribute_info
      122. | `AsmLabelAttr of attribute_info
      123. | `AssertCapabilityAttr of attribute_info
      124. | `AssertExclusiveLockAttr of attribute_info
      125. | `AssertSharedLockAttr of attribute_info
      126. | `AssumeAlignedAttr of attribute_info
      127. | `AvailabilityAttr of attr_tuple * availability_attr_info
      128. | `AvailableOnlyInDefaultEvalMethodAttr of attribute_info
      129. | `BPFPreserveAccessIndexAttr of attribute_info
      130. | `BPFPreserveStaticOffsetAttr of attribute_info
      131. | `BTFDeclTagAttr of attribute_info
      132. | `BlocksAttr of attribute_info
      133. | `BuiltinAttr of attribute_info
      134. | `C11NoReturnAttr of attribute_info
      135. | `CFAuditedTransferAttr of attribute_info
      136. | `CFGuardAttr of attribute_info
      137. | `CFICanonicalJumpTableAttr of attribute_info
      138. | `CFReturnsNotRetainedAttr of attribute_info
      139. | `CFReturnsRetainedAttr of attribute_info
      140. | `CFUnknownTransferAttr of attribute_info
      141. | `CPUDispatchAttr of attribute_info
      142. | `CPUSpecificAttr of attribute_info
      143. | `CUDAConstantAttr of attribute_info
      144. | `CUDADeviceAttr of attribute_info
      145. | `CUDADeviceBuiltinSurfaceTypeAttr of attribute_info
      146. | `CUDADeviceBuiltinTextureTypeAttr of attribute_info
      147. | `CUDAGlobalAttr of attribute_info
      148. | `CUDAHostAttr of attribute_info
      149. | `CUDAInvalidTargetAttr of attribute_info
      150. | `CUDALaunchBoundsAttr of attribute_info
      151. | `CUDASharedAttr of attribute_info
      152. | `CXX11NoReturnAttr of attribute_info
      153. | `CallableWhenAttr of attribute_info
      154. | `CallbackAttr of attribute_info
      155. | `CapabilityAttr of attribute_info
      156. | `CapturedRecordAttr of attribute_info
      157. | `CleanupAttr of attribute_info
      158. | `ClspvLibclcBuiltinAttr of attribute_info
      159. | `CmseNSEntryAttr of attribute_info
      160. | `CodeModelAttr of attribute_info
      161. | `CodeSegAttr of attribute_info
      162. | `ColdAttr of attribute_info
      163. | `CommonAttr of attribute_info
      164. | `ConstAttr of attribute_info
      165. | `ConstInitAttr of attribute_info
      166. | `ConstructorAttr of attribute_info
      167. | `ConsumableAttr of attribute_info
      168. | `ConsumableAutoCastAttr of attribute_info
      169. | `ConsumableSetOnReadAttr of attribute_info
      170. | `ConvergentAttr of attribute_info
      171. | `CoroDisableLifetimeBoundAttr of attribute_info
      172. | `CoroLifetimeBoundAttr of attribute_info
      173. | `CoroOnlyDestroyWhenCompleteAttr of attribute_info
      174. | `CoroReturnTypeAttr of attribute_info
      175. | `CoroWrapperAttr of attribute_info
      176. | `DLLExportAttr of attribute_info
      177. | `DLLExportStaticLocalAttr of attribute_info
      178. | `DLLImportAttr of attribute_info
      179. | `DLLImportStaticLocalAttr of attribute_info
      180. | `DeprecatedAttr of attribute_info
      181. | `DestructorAttr of attribute_info
      182. | `DiagnoseAsBuiltinAttr of attribute_info
      183. | `DiagnoseIfAttr of attribute_info
      184. | `DisableSanitizerInstrumentationAttr of attribute_info
      185. | `DisableTailCallsAttr of attribute_info
      186. | `EmptyBasesAttr of attribute_info
      187. | `EnableIfAttr of attribute_info
      188. | `EnforceTCBAttr of attribute_info
      189. | `EnforceTCBLeafAttr of attribute_info
      190. | `EnumExtensibilityAttr of attribute_info
      191. | `ErrorAttr of attribute_info
      192. | `ExcludeFromExplicitInstantiationAttr of attribute_info
      193. | `ExclusiveTrylockFunctionAttr of attribute_info
      194. | `ExternalSourceSymbolAttr of attribute_info
      195. | `FinalAttr of attribute_info
      196. | `FlagEnumAttr of attribute_info
      197. | `FlattenAttr of attribute_info
      198. | `FormatAttr of attribute_info
      199. | `FormatArgAttr of attribute_info
      200. | `FunctionReturnThunksAttr of attribute_info
      201. | `GNUInlineAttr of attribute_info
      202. | `GuardedByAttr of attribute_info
      203. | `GuardedVarAttr of attribute_info
      204. | `HIPManagedAttr of attribute_info
      205. | `HLSLNumThreadsAttr of attribute_info
      206. | `HLSLResourceAttr of attribute_info
      207. | `HLSLResourceBindingAttr of attribute_info
      208. | `HLSLResourceClassAttr of attribute_info
      209. | `HLSLShaderAttr of attribute_info
      210. | `HotAttr of attribute_info
      211. | `HybridPatchableAttr of attribute_info
      212. | `IBActionAttr of attribute_info
      213. | `IBOutletAttr of attribute_info
      214. | `IBOutletCollectionAttr of attribute_info
      215. | `InitPriorityAttr of attribute_info
      216. | `InternalLinkageAttr of attribute_info
      217. | `LTOVisibilityPublicAttr of attribute_info
      218. | `LayoutVersionAttr of attribute_info
      219. | `LeafAttr of attribute_info
      220. | `LockReturnedAttr of attribute_info
      221. | `LocksExcludedAttr of attribute_info
      222. | `M68kInterruptAttr of attribute_info
      223. | `MIGServerRoutineAttr of attribute_info
      224. | `MSAllocatorAttr of attribute_info
      225. | `MSConstexprAttr of attribute_info
      226. | `MSInheritanceAttr of attribute_info
      227. | `MSNoVTableAttr of attribute_info
      228. | `MSP430InterruptAttr of attribute_info
      229. | `MSStructAttr of attribute_info
      230. | `MSVtorDispAttr of attribute_info
      231. | `MaxFieldAlignmentAttr of attribute_info
      232. | `MayAliasAttr of attribute_info
      233. | `MaybeUndefAttr of attribute_info
      234. | `MicroMipsAttr of attribute_info
      235. | `MinSizeAttr of attribute_info
      236. | `MinVectorWidthAttr of attribute_info
      237. | `Mips16Attr of attribute_info
      238. | `MipsInterruptAttr of attribute_info
      239. | `MipsLongCallAttr of attribute_info
      240. | `MipsShortCallAttr of attribute_info
      241. | `NSConsumesSelfAttr of attribute_info
      242. | `NSErrorDomainAttr of attribute_info
      243. | `NSReturnsAutoreleasedAttr of attribute_info
      244. | `NSReturnsNotRetainedAttr of attribute_info
      245. | `NVPTXKernelAttr of attribute_info
      246. | `NakedAttr of attribute_info
      247. | `NoAliasAttr of attribute_info
      248. | `NoCommonAttr of attribute_info
      249. | `NoDebugAttr of attribute_info
      250. | `NoDestroyAttr of attribute_info
      251. | `NoDuplicateAttr of attribute_info
      252. | `NoInstrumentFunctionAttr of attribute_info
      253. | `NoMicroMipsAttr of attribute_info
      254. | `NoMips16Attr of attribute_info
      255. | `NoProfileFunctionAttr of attribute_info
      256. | `NoRandomizeLayoutAttr of attribute_info
      257. | `NoReturnAttr of attribute_info
      258. | `NoSanitizeAttr of attribute_info
      259. | `NoSpeculativeLoadHardeningAttr of attribute_info
      260. | `NoSplitStackAttr of attribute_info
      261. | `NoStackProtectorAttr of attribute_info
      262. | `NoThreadSafetyAnalysisAttr of attribute_info
      263. | `NoThrowAttr of attribute_info
      264. | `NoUniqueAddressAttr of attribute_info
      265. | `NoUwtableAttr of attribute_info
      266. | `NotTailCalledAttr of attribute_info
      267. | `OMPAllocateDeclAttr of attribute_info
      268. | `OMPAssumeAttr of attribute_info
      269. | `OMPCaptureNoInitAttr of attribute_info
      270. | `OMPDeclareTargetDeclAttr of attribute_info
      271. | `OMPDeclareVariantAttr of attribute_info
      272. | `OMPThreadPrivateDeclAttr of attribute_info
      273. | `OSConsumesThisAttr of attribute_info
      274. | `OSReturnsNotRetainedAttr of attribute_info
      275. | `OSReturnsRetainedAttr of attribute_info
      276. | `OSReturnsRetainedOnNonZeroAttr of attribute_info
      277. | `OSReturnsRetainedOnZeroAttr of attribute_info
      278. | `ObjCBridgeAttr of attribute_info
      279. | `ObjCBridgeMutableAttr of attribute_info
      280. | `ObjCBridgeRelatedAttr of attribute_info
      281. | `ObjCExceptionAttr of attribute_info
      282. | `ObjCExplicitProtocolImplAttr of attribute_info
      283. | `ObjCExternallyRetainedAttr of attribute_info
      284. | `ObjCIndependentClassAttr of attribute_info
      285. | `ObjCMethodFamilyAttr of attribute_info
      286. | `ObjCNSObjectAttr of attribute_info
      287. | `ObjCPreciseLifetimeAttr of attribute_info
      288. | `ObjCRequiresPropertyDefsAttr of attribute_info
      289. | `ObjCRequiresSuperAttr of attribute_info
      290. | `ObjCReturnsInnerPointerAttr of attribute_info
      291. | `ObjCRootClassAttr of attribute_info
      292. | `ObjCSubclassingRestrictedAttr of attribute_info
      293. | `OpenCLIntelReqdSubGroupSizeAttr of attribute_info
      294. | `OpenCLKernelAttr of attribute_info
      295. | `OptimizeNoneAttr of attribute_info
      296. | `OverrideAttr of attribute_info
      297. | `OwnerAttr of attribute_info
      298. | `OwnershipAttr of attribute_info
      299. | `PackedAttr of attribute_info
      300. | `ParamTypestateAttr of attribute_info
      301. | `PatchableFunctionEntryAttr of attribute_info
      302. | `PointerAttr of attribute_info
      303. | `PragmaClangBSSSectionAttr of attribute_info
      304. | `PragmaClangDataSectionAttr of attribute_info
      305. | `PragmaClangRelroSectionAttr of attribute_info
      306. | `PragmaClangRodataSectionAttr of attribute_info
      307. | `PragmaClangTextSectionAttr of attribute_info
      308. | `PreferredNameAttr of attribute_info
      309. | `PreferredTypeAttr of attribute_info
      310. | `PtGuardedByAttr of attribute_info
      311. | `PtGuardedVarAttr of attribute_info
      312. | `PureAttr of attribute_info
      313. | `RISCVInterruptAttr of attribute_info
      314. | `RandomizeLayoutAttr of attribute_info
      315. | `ReadOnlyPlacementAttr of attribute_info
      316. | `ReinitializesAttr of attribute_info
      317. | `ReleaseCapabilityAttr of attribute_info
      318. | `ReqdWorkGroupSizeAttr of attribute_info
      319. | `RequiresCapabilityAttr of attribute_info
      320. | `RestrictAttr of attribute_info
      321. | `RetainAttr of attribute_info
      322. | `ReturnTypestateAttr of attribute_info
      323. | `ReturnsNonNullAttr of attribute_info
      324. | `ReturnsTwiceAttr of attribute_info
      325. | `SYCLKernelAttr of attribute_info
      326. | `SYCLSpecialClassAttr of attribute_info
      327. | `ScopedLockableAttr of attribute_info
      328. | `SectionAttr of attribute_info
      329. | `SelectAnyAttr of attribute_info
      330. | `SentinelAttr of attr_tuple * sentinel_attr_info
      331. | `SetTypestateAttr of attribute_info
      332. | `SharedTrylockFunctionAttr of attribute_info
      333. | `SpeculativeLoadHardeningAttr of attribute_info
      334. | `StandaloneDebugAttr of attribute_info
      335. | `StrictFPAttr of attribute_info
      336. | `StrictGuardStackCheckAttr of attribute_info
      337. | `SwiftAsyncAttr of attribute_info
      338. | `SwiftAsyncErrorAttr of attribute_info
      339. | `SwiftAsyncNameAttr of attribute_info
      340. | `SwiftAttrAttr of attribute_info
      341. | `SwiftBridgeAttr of attribute_info
      342. | `SwiftBridgedTypedefAttr of attribute_info
      343. | `SwiftErrorAttr of attribute_info
      344. | `SwiftImportAsNonGenericAttr of attribute_info
      345. | `SwiftImportPropertyAsAccessorsAttr of attribute_info
      346. | `SwiftNameAttr of attribute_info
      347. | `SwiftNewTypeAttr of attribute_info
      348. | `SwiftPrivateAttr of attribute_info
      349. | `TLSModelAttr of attribute_info
      350. | `TargetAttr of attribute_info
      351. | `TargetClonesAttr of attribute_info
      352. | `TargetVersionAttr of attribute_info
      353. | `TestTypestateAttr of attribute_info
      354. | `TransparentUnionAttr of attribute_info
      355. | `TrivialABIAttr of attribute_info
      356. | `TryAcquireCapabilityAttr of attribute_info
      357. | `TypeTagForDatatypeAttr of attribute_info
      358. | `TypeVisibilityAttr of attribute_info
      359. | `UnavailableAttr of attribute_info
      360. | `UninitializedAttr of attribute_info
      361. | `UnsafeBufferUsageAttr of attribute_info
      362. | `UnusedAttr of attribute_info
      363. | `UsedAttr of attribute_info
      364. | `UsingIfExistsAttr of attribute_info
      365. | `UuidAttr of attribute_info
      366. | `VTablePointerAuthenticationAttr of attribute_info
      367. | `VecReturnAttr of attribute_info
      368. | `VecTypeHintAttr of attribute_info
      369. | `VisibilityAttr of attr_tuple * visibility_attr
      370. | `WarnUnusedAttr of attribute_info
      371. | `WarnUnusedResultAttr of attribute_info
      372. | `WeakAttr of attribute_info
      373. | `WeakImportAttr of attribute_info
      374. | `WeakRefAttr of attribute_info
      375. | `WebAssemblyExportNameAttr of attribute_info
      376. | `WebAssemblyImportModuleAttr of attribute_info
      377. | `WebAssemblyImportNameAttr of attribute_info
      378. | `WorkGroupSizeHintAttr of attribute_info
      379. | `X86ForceAlignArgPointerAttr of attribute_info
      380. | `XRayInstrumentAttr of attribute_info
      381. | `XRayLogArgsAttr of attribute_info
      382. | `ZeroCallUsedRegsAttr of attribute_info
      383. | `AbiTagAttr of attribute_info
      384. | `AliasAttr of attribute_info
      385. | `AlignValueAttr of attribute_info
      386. | `BuiltinAliasAttr of attribute_info
      387. | `CalledOnceAttr of attribute_info
      388. | `IFuncAttr of attribute_info
      389. | `InitSegAttr of attribute_info
      390. | `LoaderUninitializedAttr of attribute_info
      391. | `LoopHintAttr of attribute_info
      392. | `ModeAttr of attribute_info
      393. | `NoBuiltinAttr of attribute_info
      394. | `NoEscapeAttr of attribute_info
      395. | `OMPCaptureKindAttr of attribute_info
      396. | `OMPDeclareSimdDeclAttr of attribute_info
      397. | `OMPReferencedVarAttr of attribute_info
      398. | `ObjCBoxableAttr of attribute_info
      399. | `ObjCClassStubAttr of attribute_info
      400. | `ObjCDesignatedInitializerAttr of attribute_info
      401. | `ObjCDirectAttr of attribute_info
      402. | `ObjCDirectMembersAttr of attribute_info
      403. | `ObjCNonLazyClassAttr of attribute_info
      404. | `ObjCNonRuntimeProtocolAttr of attribute_info
      405. | `ObjCRuntimeNameAttr of attribute_info
      406. | `ObjCRuntimeVisibleAttr of attribute_info
      407. | `OpenCLAccessAttr of attribute_info
      408. | `OverloadableAttr of attribute_info
      409. | `RenderScriptKernelAttr of attribute_info
      410. | `SwiftObjCMembersAttr of attribute_info
      411. | `SwiftVersionedAdditionAttr of attribute_info
      412. | `SwiftVersionedRemovalAttr of attribute_info
      413. | `ThreadAttr of attribute_info
      ]
      type template_instantiation_arg_info = [
      1. | `Null
      2. | `Type of qual_type
      3. | `Declaration of pointer
      4. | `NullPtr
      5. | `Integral of string
      6. | `Template
      7. | `TemplateExpansion
      8. | `Expression
      9. | `Pack of template_instantiation_arg_info list
      ]
      type comment =
      1. | VerbatimBlockLineComment of comment_info * comment list
      2. | TextComment of comment_info * comment list
      3. | InlineCommandComment of comment_info * comment list
      4. | HTMLStartTagComment of comment_info * comment list
      5. | HTMLEndTagComment of comment_info * comment list
      6. | FullComment of comment_info * comment list
      7. | ParagraphComment of comment_info * comment list
      8. | BlockCommandComment of comment_info * comment list
      9. | VerbatimLineComment of comment_info * comment list
      10. | VerbatimBlockComment of comment_info * comment list
      11. | TParamCommandComment of comment_info * comment list
      12. | ParamCommandComment of comment_info * comment list
      type template_specialization_info = {
      1. tsi_template_decl : pointer;
      2. tsi_specialization_args : template_instantiation_arg_info list;
      }
      type decl_info = {
      1. di_pointer : pointer;
      2. di_parent_pointer : pointer option;
      3. di_source_range : source_range;
      4. di_owning_module : string option;
      5. di_is_hidden : bool;
      6. di_is_implicit : bool;
      7. di_is_used : bool;
      8. di_is_this_declaration_referenced : bool;
      9. di_is_invalid_decl : bool;
      10. di_attributes : attribute list;
      11. di_full_comment : comment option;
      12. di_access : access_specifier;
      }
      type binding_decl_info = {
      1. binding_var : var_decl_info option;
      2. bound_decl_type : qual_type option;
      }
      and block_captured_variable = {
      1. bcv_is_by_ref : bool;
      2. bcv_is_nested : bool;
      3. bcv_variable : decl_ref option;
      4. bcv_copy_expr : stmt option;
      }
      and block_decl_info = {
      1. bdi_parameters : decl list;
      2. bdi_is_variadic : bool;
      3. bdi_captures_cxx_this : bool;
      4. bdi_captured_variables : block_captured_variable list;
      5. bdi_body : stmt option;
      6. bdi_mangled_name : string;
      }
      and coreturn_stmt_info = {
      1. coret_operand : stmt option;
      2. coret_promise_call : stmt option;
      }
      and coro_body_stmt_info = {
      1. cbs_body : pointer;
      2. cbs_promise_decl_stmt : pointer;
      3. cbs_return_value : stmt;
      }
      and cxx_catch_stmt_info = {
      1. xcsi_variable : decl option;
      }
      and cxx_ctor_initializer = {
      1. xci_subject : cxx_ctor_initializer_subject;
      2. xci_source_range : source_range;
      3. xci_init_expr : stmt option;
      }
      and cxx_default_expr_info = {
      1. xdaei_init_expr : stmt option;
      }
      and cxx_method_decl_info = {
      1. xmdi_is_virtual : bool;
      2. xmdi_is_static : bool;
      3. xmdi_is_const : bool;
      4. xmdi_is_copy_assignment : bool;
      5. xmdi_is_copy_constructor : bool;
      6. xmdi_is_move_constructor : bool;
      7. xmdi_cxx_ctor_initializers : cxx_ctor_initializer list;
      8. xmdi_overriden_methods : decl_ref list;
      }
      and cxx_record_decl_info = {
      1. xrdi_bases : type_ptr list;
      2. xrdi_vbases : type_ptr list;
      3. xrdi_transitive_vbases : type_ptr list;
      4. xrdi_is_pod : bool;
      5. xrdi_is_trivially_copyable : bool;
      6. xrdi_destructor : decl_ref option;
      7. xrdi_lambda_call_operator : decl_ref option;
      8. xrdi_lambda_captures : lambda_capture_info list;
      }
      and decl =
      1. | TranslationUnitDecl of decl_info * decl list * decl_context_info - * translation_unit_decl_info
      2. | RequiresExprBodyDecl of decl_info
      3. | LinkageSpecDecl of decl_info * decl list * decl_context_info
      4. | ExternCContextDecl of decl_info
      5. | ExportDecl of decl_info
      6. | CapturedDecl of decl_info * decl list * decl_context_info
      7. | BlockDecl of decl_info * block_decl_info
      8. | TopLevelStmtDecl of decl_info
      9. | StaticAssertDecl of decl_info
      10. | PragmaDetectMismatchDecl of decl_info
      11. | PragmaCommentDecl of decl_info
      12. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
      13. | OMPThreadPrivateDecl of decl_info
      14. | OMPRequiresDecl of decl_info
      15. | OMPAllocateDecl of decl_info
      16. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
      17. | ObjCProtocolDecl of decl_info + * translation_unit_decl_info
      18. | TopLevelStmtDecl of decl_info
      19. | RequiresExprBodyDecl of decl_info
      20. | LinkageSpecDecl of decl_info * decl list * decl_context_info
      21. | ExternCContextDecl of decl_info
      22. | ExportDecl of decl_info
      23. | CapturedDecl of decl_info * decl list * decl_context_info
      24. | BlockDecl of decl_info * block_decl_info
      25. | StaticAssertDecl of decl_info
      26. | PragmaDetectMismatchDecl of decl_info
      27. | PragmaCommentDecl of decl_info
      28. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
      29. | OMPThreadPrivateDecl of decl_info
      30. | OMPRequiresDecl of decl_info
      31. | OMPAllocateDecl of decl_info
      32. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
      33. | ObjCProtocolDecl of decl_info * named_decl_info * decl list * decl_context_info @@ -111,7 +111,7 @@ * obj_c_compatible_alias_decl_info
      34. | NamespaceAliasDecl of decl_info * named_decl_info * namespace_alias_decl_info
      35. | LabelDecl of decl_info * named_decl_info
      36. | UsingEnumDecl of decl_info * named_decl_info
      37. | UsingDecl of decl_info * named_decl_info
      38. | LifetimeExtendedTemporaryDecl of decl_info
      39. | ImportDecl of decl_info * string
      40. | ImplicitConceptSpecializationDecl of decl_info
      41. | FriendTemplateDecl of decl_info
      42. | FriendDecl of decl_info * friend_info
      43. | FileScopeAsmDecl of decl_info
      44. | EmptyDecl of decl_info
      45. | AccessSpecDecl of decl_info
      and enum_constant_decl_info = {
      1. ecdi_init_expr : stmt option;
      }
      and field_decl_info = {
      1. fldi_is_mutable : bool;
      2. fldi_is_module_private : bool;
      3. fldi_init_expr : stmt option;
      4. fldi_bit_width_expr : stmt option;
      }
      and friend_info = [
      1. | `Type of type_ptr
      2. | `Decl of decl
      ]
      and function_decl_info = {
      1. fdi_mangled_name : string option;
      2. fdi_is_cpp : bool;
      3. fdi_is_inline : bool;
      4. fdi_is_module_private : bool;
      5. fdi_is_pure : bool;
      6. fdi_is_deleted : bool;
      7. fdi_is_no_return : bool;
      8. fdi_is_constexpr : bool;
      9. fdi_is_variadic : bool;
      10. fdi_is_static : bool;
      11. fdi_parameters : decl list;
      12. fdi_decl_ptr_with_body : pointer option;
      13. fdi_body : stmt option;
      14. fdi_template_specialization : template_specialization_info option;
      15. fdi_point_of_instantiation : source_location option;
      }
      and generic_selection_info = {
      1. gse_value : stmt option;
      }
      and if_stmt_info = {
      1. isi_init : pointer option;
      2. isi_cond_var : stmt option;
      3. isi_cond : pointer;
      4. isi_then : pointer;
      5. isi_else : (pointer * source_location) option;
      }
      and lambda_capture_info = {
      1. lci_capture_kind : lambda_capture_kind;
      2. lci_capture_this : bool;
      3. lci_capture_variable : bool;
      4. lci_capture_VLAtype : bool;
      5. lci_init_captured_vardecl : decl option;
      6. lci_captured_var : decl_ref option;
      7. lci_is_implicit : bool;
      8. lci_location : source_range;
      9. lci_is_pack_expansion : bool;
      }
      and lambda_expr_info = {
      1. lei_lambda_decl : decl;
      }
      and obj_c_implementation_decl_info = {
      1. oidi_super : decl_ref option;
      2. oidi_class_interface : decl_ref option;
      3. oidi_ivar_initializers : cxx_ctor_initializer list;
      }
      and obj_c_message_expr_kind = [
      1. | `CatchParam of decl
      2. | `CatchAll
      ]
      and obj_c_method_decl_info = {
      1. omdi_is_instance_method : bool;
      2. omdi_result_type : qual_type;
      3. omdi_is_property_accessor : bool;
      4. omdi_property_decl : decl_ref option;
      5. omdi_parameters : decl list;
      6. omdi_implicit_parameters : decl list;
      7. omdi_is_variadic : bool;
      8. omdi_is_overriding : bool;
      9. omdi_is_optional : bool;
      10. omdi_body : stmt option;
      11. omdi_mangled_name : string;
      }
      and opaque_value_expr_info = {
      1. ovei_source_expr : stmt option;
      }
      and stmt =
      1. | WhileStmt of stmt_info * stmt list
      2. | LabelStmt of stmt_info * stmt list * string
      3. | VAArgExpr of stmt_info * stmt list * expr_info
      4. | UnaryOperator of stmt_info * stmt list * expr_info * unary_operator_info
      5. | UnaryExprOrTypeTraitExpr of stmt_info * stmt list * expr_info - * unary_expr_or_type_trait_expr_info
      6. | TypoExpr of stmt_info * stmt list * expr_info
      7. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
      8. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
      9. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
      10. | StringLiteral of stmt_info * stmt list * expr_info * string list
      11. | StmtExpr of stmt_info * stmt list * expr_info
      12. | SourceLocExpr of stmt_info * stmt list * expr_info
      13. | SizeOfPackExpr of stmt_info * stmt list * expr_info
      14. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
      15. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
      16. | RequiresExpr of stmt_info * stmt list * expr_info
      17. | RecoveryExpr of stmt_info * stmt list * expr_info
      18. | PseudoObjectExpr of stmt_info * stmt list * expr_info
      19. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
      20. | ParenListExpr of stmt_info * stmt list * expr_info
      21. | ParenExpr of stmt_info * stmt list * expr_info
      22. | PackExpansionExpr of stmt_info * stmt list * expr_info
      23. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
      24. | UnresolvedLookupExpr of stmt_info + * unary_expr_or_type_trait_expr_info
      25. | TypoExpr of stmt_info * stmt list * expr_info
      26. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
      27. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
      28. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
      29. | StringLiteral of stmt_info * stmt list * expr_info * string list
      30. | StmtExpr of stmt_info * stmt list * expr_info
      31. | SourceLocExpr of stmt_info * stmt list * expr_info
      32. | SizeOfPackExpr of stmt_info * stmt list * expr_info
      33. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
      34. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
      35. | RequiresExpr of stmt_info * stmt list * expr_info
      36. | RecoveryExpr of stmt_info * stmt list * expr_info
      37. | PseudoObjectExpr of stmt_info * stmt list * expr_info
      38. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
      39. | ParenListExpr of stmt_info * stmt list * expr_info
      40. | ParenExpr of stmt_info * stmt list * expr_info
      41. | PackIndexingExpr of stmt_info * stmt list * expr_info
      42. | PackExpansionExpr of stmt_info * stmt list * expr_info
      43. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
      44. | UnresolvedLookupExpr of stmt_info * stmt list * expr_info * overload_expr_info @@ -130,13 +130,13 @@ * obj_c_availability_check_expr_info
      45. | ObjCArrayLiteral of stmt_info * stmt list * expr_info - * obj_c_array_literal_expr_info
      46. | OMPIteratorExpr of stmt_info * stmt list * expr_info
      47. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
      48. | OMPArraySectionExpr of stmt_info * stmt list * expr_info
      49. | NoInitExpr of stmt_info * stmt list * expr_info
      50. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
      51. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
      52. | MaterializeTemporaryExpr of stmt_info + * obj_c_array_literal_expr_info
      53. | OMPIteratorExpr of stmt_info * stmt list * expr_info
      54. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
      55. | NoInitExpr of stmt_info * stmt list * expr_info
      56. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
      57. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
      58. | MaterializeTemporaryExpr of stmt_info * stmt list * expr_info * materialize_temporary_expr_info
      59. | MSPropertySubscriptExpr of stmt_info * stmt list * expr_info
      60. | MSPropertyRefExpr of stmt_info * stmt list * expr_info
      61. | LambdaExpr of stmt_info * stmt list * expr_info * lambda_expr_info
      62. | IntegerLiteral of stmt_info * stmt list * expr_info * integer_literal_info
      63. | InitListExpr of stmt_info * stmt list * expr_info
      64. | ImplicitValueInitExpr of stmt_info * stmt list * expr_info
      65. | ImaginaryLiteral of stmt_info * stmt list * expr_info
      66. | GenericSelectionExpr of stmt_info * stmt list * expr_info - * generic_selection_info
      67. | GNUNullExpr of stmt_info * stmt list * expr_info
      68. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
      69. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
      70. | ConstantExpr of stmt_info * stmt list * expr_info
      71. | FloatingLiteral of stmt_info * stmt list * expr_info * string
      72. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
      73. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
      74. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
      75. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
      76. | DesignatedInitExpr of stmt_info * stmt list * expr_info
      77. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
      78. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
      79. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
      80. | CoyieldExpr of stmt_info * stmt list * expr_info
      81. | CoawaitExpr of stmt_info * stmt list * expr_info
      82. | ConvertVectorExpr of stmt_info * stmt list * expr_info
      83. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
      84. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
      85. | ChooseExpr of stmt_info * stmt list * expr_info
      86. | CharacterLiteral of stmt_info * stmt list * expr_info * int
      87. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
      88. | ObjCBridgedCastExpr of stmt_info + * generic_selection_info
      89. | GNUNullExpr of stmt_info * stmt list * expr_info
      90. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
      91. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
      92. | ConstantExpr of stmt_info * stmt list * expr_info
      93. | FloatingLiteral of stmt_info * stmt list * expr_info * string
      94. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
      95. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
      96. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
      97. | EmbedExpr of stmt_info * stmt list * expr_info
      98. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
      99. | DesignatedInitExpr of stmt_info * stmt list * expr_info
      100. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
      101. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
      102. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
      103. | CoyieldExpr of stmt_info * stmt list * expr_info
      104. | CoawaitExpr of stmt_info * stmt list * expr_info
      105. | ConvertVectorExpr of stmt_info * stmt list * expr_info
      106. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
      107. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
      108. | ChooseExpr of stmt_info * stmt list * expr_info
      109. | CharacterLiteral of stmt_info * stmt list * expr_info * int
      110. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
      111. | ObjCBridgedCastExpr of stmt_info * stmt list * expr_info * cast_expr_info @@ -191,4 +191,4 @@ * stmt list * expr_info * binary_operator_info - * compound_assign_operator_info
      112. | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
      113. | AsTypeExpr of stmt_info * stmt list * expr_info
      114. | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
      115. | ArraySubscriptExpr of stmt_info * stmt list * expr_info
      116. | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
      117. | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
      118. | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
      119. | ConditionalOperator of stmt_info * stmt list * expr_info
      120. | BinaryConditionalOperator of stmt_info * stmt list * expr_info
      121. | AttributedStmt of stmt_info * stmt list * attribute list
      122. | SwitchStmt of stmt_info * stmt list * switch_stmt_info
      123. | DefaultStmt of stmt_info * stmt list
      124. | CaseStmt of stmt_info * stmt list
      125. | SEHTryStmt of stmt_info * stmt list
      126. | SEHLeaveStmt of stmt_info * stmt list
      127. | SEHFinallyStmt of stmt_info * stmt list
      128. | SEHExceptStmt of stmt_info * stmt list
      129. | ReturnStmt of stmt_info * stmt list
      130. | ObjCForCollectionStmt of stmt_info * stmt list
      131. | ObjCAutoreleasePoolStmt of stmt_info * stmt list
      132. | ObjCAtTryStmt of stmt_info * stmt list
      133. | ObjCAtThrowStmt of stmt_info * stmt list
      134. | ObjCAtSynchronizedStmt of stmt_info * stmt list
      135. | ObjCAtFinallyStmt of stmt_info * stmt list
      136. | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
      137. | OMPTeamsDirective of stmt_info * stmt list
      138. | OMPTaskyieldDirective of stmt_info * stmt list
      139. | OMPTaskwaitDirective of stmt_info * stmt list
      140. | OMPTaskgroupDirective of stmt_info * stmt list
      141. | OMPTaskDirective of stmt_info * stmt list
      142. | OMPTargetUpdateDirective of stmt_info * stmt list
      143. | OMPTargetTeamsDirective of stmt_info * stmt list
      144. | OMPTargetParallelForDirective of stmt_info * stmt list
      145. | OMPTargetParallelDirective of stmt_info * stmt list
      146. | OMPTargetExitDataDirective of stmt_info * stmt list
      147. | OMPTargetEnterDataDirective of stmt_info * stmt list
      148. | OMPTargetDirective of stmt_info * stmt list
      149. | OMPTargetDataDirective of stmt_info * stmt list
      150. | OMPSingleDirective of stmt_info * stmt list
      151. | OMPSectionsDirective of stmt_info * stmt list
      152. | OMPSectionDirective of stmt_info * stmt list
      153. | OMPScopeDirective of stmt_info * stmt list
      154. | OMPScanDirective of stmt_info * stmt list
      155. | OMPParallelSectionsDirective of stmt_info * stmt list
      156. | OMPParallelMasterDirective of stmt_info * stmt list
      157. | OMPParallelMaskedDirective of stmt_info * stmt list
      158. | OMPParallelDirective of stmt_info * stmt list
      159. | OMPOrderedDirective of stmt_info * stmt list
      160. | OMPMetaDirective of stmt_info * stmt list
      161. | OMPMasterDirective of stmt_info * stmt list
      162. | OMPMaskedDirective of stmt_info * stmt list
      163. | OMPUnrollDirective of stmt_info * stmt list
      164. | OMPTileDirective of stmt_info * stmt list
      165. | OMPTeamsGenericLoopDirective of stmt_info * stmt list
      166. | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
      167. | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
      168. | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
      169. | OMPTeamsDistributeDirective of stmt_info * stmt list
      170. | OMPTaskLoopSimdDirective of stmt_info * stmt list
      171. | OMPTaskLoopDirective of stmt_info * stmt list
      172. | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
      173. | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
      174. | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
      175. | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
      176. | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
      177. | OMPTargetSimdDirective of stmt_info * stmt list
      178. | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
      179. | OMPTargetParallelForSimdDirective of stmt_info * stmt list
      180. | OMPSimdDirective of stmt_info * stmt list
      181. | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
      182. | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
      183. | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
      184. | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
      185. | OMPParallelGenericLoopDirective of stmt_info * stmt list
      186. | OMPParallelForSimdDirective of stmt_info * stmt list
      187. | OMPParallelForDirective of stmt_info * stmt list
      188. | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
      189. | OMPMasterTaskLoopDirective of stmt_info * stmt list
      190. | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
      191. | OMPMaskedTaskLoopDirective of stmt_info * stmt list
      192. | OMPGenericLoopDirective of stmt_info * stmt list
      193. | OMPForSimdDirective of stmt_info * stmt list
      194. | OMPForDirective of stmt_info * stmt list
      195. | OMPDistributeSimdDirective of stmt_info * stmt list
      196. | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
      197. | OMPDistributeParallelForDirective of stmt_info * stmt list
      198. | OMPDistributeDirective of stmt_info * stmt list
      199. | OMPInteropDirective of stmt_info * stmt list
      200. | OMPFlushDirective of stmt_info * stmt list
      201. | OMPErrorDirective of stmt_info * stmt list
      202. | OMPDispatchDirective of stmt_info * stmt list
      203. | OMPDepobjDirective of stmt_info * stmt list
      204. | OMPCriticalDirective of stmt_info * stmt list
      205. | OMPCancellationPointDirective of stmt_info * stmt list
      206. | OMPCancelDirective of stmt_info * stmt list
      207. | OMPBarrierDirective of stmt_info * stmt list
      208. | OMPAtomicDirective of stmt_info * stmt list
      209. | OMPCanonicalLoop of stmt_info * stmt list
      210. | NullStmt of stmt_info * stmt list
      211. | MSDependentExistsStmt of stmt_info * stmt list
      212. | IndirectGotoStmt of stmt_info * stmt list
      213. | IfStmt of stmt_info * stmt list * if_stmt_info
      214. | GotoStmt of stmt_info * stmt list * goto_stmt_info
      215. | ForStmt of stmt_info * stmt list
      216. | DoStmt of stmt_info * stmt list
      217. | DeclStmt of stmt_info * stmt list * decl list
      218. | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
      219. | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
      220. | ContinueStmt of stmt_info * stmt list
      221. | CompoundStmt of stmt_info * stmt list
      222. | CapturedStmt of stmt_info * stmt list
      223. | CXXTryStmt of stmt_info * stmt list
      224. | CXXForRangeStmt of stmt_info * stmt list
      225. | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
      226. | BreakStmt of stmt_info * stmt list
      227. | MSAsmStmt of stmt_info * stmt list
      228. | GCCAsmStmt of stmt_info * stmt list
      and switch_stmt_info = {
      1. ssi_init : pointer option;
      2. ssi_cond_var : stmt option;
      3. ssi_cond : pointer;
      4. ssi_body : pointer;
      5. ssi_is_all_enum_cases_covered : bool;
      }
      and template_decl_info = {
      1. tdi_specializations : decl list;
      }
      and var_decl_info = {
      1. vdi_is_global : bool;
      2. vdi_is_extern : bool;
      3. vdi_is_static : bool;
      4. vdi_is_static_local : bool;
      5. vdi_is_static_data_member : bool;
      6. vdi_is_constexpr : bool;
      7. vdi_is_init_ice : bool;
      8. vdi_init_expr : stmt option;
      9. vdi_is_init_expr_cxx11_constant : bool;
      10. vdi_parm_index_in_function : int option;
      }
      type lookup = {
      1. lup_decl_name : string;
      2. lup_decl_refs : decl_ref list;
      }
      type lookups = {
      1. lups_decl_ref : decl_ref;
      2. lups_primary_context_pointer : pointer option;
      3. lups_lookups : lookup list;
      4. lups_has_undeserialized_decls : bool;
      }
      + * compound_assign_operator_info
    2. | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
    3. | AsTypeExpr of stmt_info * stmt list * expr_info
    4. | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
    5. | ArraySubscriptExpr of stmt_info * stmt list * expr_info
    6. | ArraySectionExpr of stmt_info * stmt list * expr_info
    7. | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
    8. | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
    9. | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
    10. | ConditionalOperator of stmt_info * stmt list * expr_info
    11. | BinaryConditionalOperator of stmt_info * stmt list * expr_info
    12. | AttributedStmt of stmt_info * stmt list * attribute list
    13. | SwitchStmt of stmt_info * stmt list * switch_stmt_info
    14. | DefaultStmt of stmt_info * stmt list
    15. | CaseStmt of stmt_info * stmt list
    16. | SEHTryStmt of stmt_info * stmt list
    17. | SEHLeaveStmt of stmt_info * stmt list
    18. | SEHFinallyStmt of stmt_info * stmt list
    19. | SEHExceptStmt of stmt_info * stmt list
    20. | ReturnStmt of stmt_info * stmt list
    21. | OpenACCLoopConstruct of stmt_info * stmt list
    22. | OpenACCComputeConstruct of stmt_info * stmt list
    23. | ObjCForCollectionStmt of stmt_info * stmt list
    24. | ObjCAutoreleasePoolStmt of stmt_info * stmt list
    25. | ObjCAtTryStmt of stmt_info * stmt list
    26. | ObjCAtThrowStmt of stmt_info * stmt list
    27. | ObjCAtSynchronizedStmt of stmt_info * stmt list
    28. | ObjCAtFinallyStmt of stmt_info * stmt list
    29. | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
    30. | OMPTeamsDirective of stmt_info * stmt list
    31. | OMPTaskyieldDirective of stmt_info * stmt list
    32. | OMPTaskwaitDirective of stmt_info * stmt list
    33. | OMPTaskgroupDirective of stmt_info * stmt list
    34. | OMPTaskDirective of stmt_info * stmt list
    35. | OMPTargetUpdateDirective of stmt_info * stmt list
    36. | OMPTargetTeamsDirective of stmt_info * stmt list
    37. | OMPTargetParallelForDirective of stmt_info * stmt list
    38. | OMPTargetParallelDirective of stmt_info * stmt list
    39. | OMPTargetExitDataDirective of stmt_info * stmt list
    40. | OMPTargetEnterDataDirective of stmt_info * stmt list
    41. | OMPTargetDirective of stmt_info * stmt list
    42. | OMPTargetDataDirective of stmt_info * stmt list
    43. | OMPSingleDirective of stmt_info * stmt list
    44. | OMPSectionsDirective of stmt_info * stmt list
    45. | OMPSectionDirective of stmt_info * stmt list
    46. | OMPScopeDirective of stmt_info * stmt list
    47. | OMPScanDirective of stmt_info * stmt list
    48. | OMPParallelSectionsDirective of stmt_info * stmt list
    49. | OMPParallelMasterDirective of stmt_info * stmt list
    50. | OMPParallelMaskedDirective of stmt_info * stmt list
    51. | OMPParallelDirective of stmt_info * stmt list
    52. | OMPOrderedDirective of stmt_info * stmt list
    53. | OMPMetaDirective of stmt_info * stmt list
    54. | OMPMasterDirective of stmt_info * stmt list
    55. | OMPMaskedDirective of stmt_info * stmt list
    56. | OMPUnrollDirective of stmt_info * stmt list
    57. | OMPTileDirective of stmt_info * stmt list
    58. | OMPReverseDirective of stmt_info * stmt list
    59. | OMPInterchangeDirective of stmt_info * stmt list
    60. | OMPTeamsGenericLoopDirective of stmt_info * stmt list
    61. | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
    62. | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
    63. | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
    64. | OMPTeamsDistributeDirective of stmt_info * stmt list
    65. | OMPTaskLoopSimdDirective of stmt_info * stmt list
    66. | OMPTaskLoopDirective of stmt_info * stmt list
    67. | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
    68. | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
    69. | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
    70. | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
    71. | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
    72. | OMPTargetSimdDirective of stmt_info * stmt list
    73. | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
    74. | OMPTargetParallelForSimdDirective of stmt_info * stmt list
    75. | OMPSimdDirective of stmt_info * stmt list
    76. | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
    77. | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
    78. | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
    79. | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
    80. | OMPParallelGenericLoopDirective of stmt_info * stmt list
    81. | OMPParallelForSimdDirective of stmt_info * stmt list
    82. | OMPParallelForDirective of stmt_info * stmt list
    83. | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
    84. | OMPMasterTaskLoopDirective of stmt_info * stmt list
    85. | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
    86. | OMPMaskedTaskLoopDirective of stmt_info * stmt list
    87. | OMPGenericLoopDirective of stmt_info * stmt list
    88. | OMPForSimdDirective of stmt_info * stmt list
    89. | OMPForDirective of stmt_info * stmt list
    90. | OMPDistributeSimdDirective of stmt_info * stmt list
    91. | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
    92. | OMPDistributeParallelForDirective of stmt_info * stmt list
    93. | OMPDistributeDirective of stmt_info * stmt list
    94. | OMPInteropDirective of stmt_info * stmt list
    95. | OMPFlushDirective of stmt_info * stmt list
    96. | OMPErrorDirective of stmt_info * stmt list
    97. | OMPDispatchDirective of stmt_info * stmt list
    98. | OMPDepobjDirective of stmt_info * stmt list
    99. | OMPCriticalDirective of stmt_info * stmt list
    100. | OMPCancellationPointDirective of stmt_info * stmt list
    101. | OMPCancelDirective of stmt_info * stmt list
    102. | OMPBarrierDirective of stmt_info * stmt list
    103. | OMPAtomicDirective of stmt_info * stmt list
    104. | OMPCanonicalLoop of stmt_info * stmt list
    105. | NullStmt of stmt_info * stmt list
    106. | MSDependentExistsStmt of stmt_info * stmt list
    107. | IndirectGotoStmt of stmt_info * stmt list
    108. | IfStmt of stmt_info * stmt list * if_stmt_info
    109. | GotoStmt of stmt_info * stmt list * goto_stmt_info
    110. | ForStmt of stmt_info * stmt list
    111. | DoStmt of stmt_info * stmt list
    112. | DeclStmt of stmt_info * stmt list * decl list
    113. | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
    114. | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
    115. | ContinueStmt of stmt_info * stmt list
    116. | CompoundStmt of stmt_info * stmt list
    117. | CapturedStmt of stmt_info * stmt list
    118. | CXXTryStmt of stmt_info * stmt list
    119. | CXXForRangeStmt of stmt_info * stmt list
    120. | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
    121. | BreakStmt of stmt_info * stmt list
    122. | MSAsmStmt of stmt_info * stmt list
    123. | GCCAsmStmt of stmt_info * stmt list
    and switch_stmt_info = {
    1. ssi_init : pointer option;
    2. ssi_cond_var : stmt option;
    3. ssi_cond : pointer;
    4. ssi_body : pointer;
    5. ssi_is_all_enum_cases_covered : bool;
    }
    and template_decl_info = {
    1. tdi_specializations : decl list;
    }
    and var_decl_info = {
    1. vdi_is_global : bool;
    2. vdi_is_extern : bool;
    3. vdi_is_static : bool;
    4. vdi_is_static_local : bool;
    5. vdi_is_static_data_member : bool;
    6. vdi_is_constexpr : bool;
    7. vdi_is_init_ice : bool;
    8. vdi_init_expr : stmt option;
    9. vdi_is_init_expr_cxx11_constant : bool;
    10. vdi_parm_index_in_function : int option;
    }
    type lookup = {
    1. lup_decl_name : string;
    2. lup_decl_refs : decl_ref list;
    }
    type lookups = {
    1. lups_decl_ref : decl_ref;
    2. lups_primary_context_pointer : pointer option;
    3. lups_lookups : lookup list;
    4. lups_has_undeserialized_decls : bool;
    }
    diff --git a/website/static/odoc/next/infer/ATDGenerated/Clang_ast_v/index.html b/website/static/odoc/next/infer/ATDGenerated/Clang_ast_v/index.html index 87609a6c8d9..30b1e9b06df 100644 --- a/website/static/odoc/next/infer/ATDGenerated/Clang_ast_v/index.html +++ b/website/static/odoc/next/infer/ATDGenerated/Clang_ast_v/index.html @@ -1,5 +1,5 @@ -Clang_ast_v (infer.ATDGenerated.Clang_ast_v)

    Module ATDGenerated.Clang_ast_v

    type access_specifier = Clang_ast_t.access_specifier
    type atomic_expr_kind = Clang_ast_t.atomic_expr_kind
    type atomic_expr_info = Clang_ast_t.atomic_expr_info = {
    1. aei_kind : atomic_expr_kind;
    }
    type attribute_kind = Clang_ast_t.attribute_kind =
    1. | AddressSpaceAttrKind
    2. | AnnotateTypeAttrKind
    3. | ArmInAttrKind
    4. | ArmInOutAttrKind
    5. | ArmMveStrictPolymorphismAttrKind
    6. | ArmOutAttrKind
    7. | ArmPreservesAttrKind
    8. | ArmStreamingAttrKind
    9. | ArmStreamingCompatibleAttrKind
    10. | BTFTypeTagAttrKind
    11. | CmseNSCallAttrKind
    12. | HLSLGroupSharedAddressSpaceAttrKind
    13. | HLSLParamModifierAttrKind
    14. | NoDerefAttrKind
    15. | ObjCGCAttrKind
    16. | ObjCInertUnsafeUnretainedAttrKind
    17. | ObjCKindOfAttrKind
    18. | OpenCLConstantAddressSpaceAttrKind
    19. | OpenCLGenericAddressSpaceAttrKind
    20. | OpenCLGlobalAddressSpaceAttrKind
    21. | OpenCLGlobalDeviceAddressSpaceAttrKind
    22. | OpenCLGlobalHostAddressSpaceAttrKind
    23. | OpenCLLocalAddressSpaceAttrKind
    24. | OpenCLPrivateAddressSpaceAttrKind
    25. | Ptr32AttrKind
    26. | Ptr64AttrKind
    27. | SPtrAttrKind
    28. | TypeNonNullAttrKind
    29. | TypeNullUnspecifiedAttrKind
    30. | TypeNullableAttrKind
    31. | TypeNullableResultAttrKind
    32. | UPtrAttrKind
    33. | WebAssemblyFuncrefAttrKind
    34. | CodeAlignAttrKind
    35. | FallThroughAttrKind
    36. | LikelyAttrKind
    37. | MustTailAttrKind
    38. | OpenCLUnrollHintAttrKind
    39. | UnlikelyAttrKind
    40. | AlwaysInlineAttrKind
    41. | NoInlineAttrKind
    42. | NoMergeAttrKind
    43. | SuppressAttrKind
    44. | AArch64SVEPcsAttrKind
    45. | AArch64VectorPcsAttrKind
    46. | AMDGPUKernelCallAttrKind
    47. | AcquireHandleAttrKind
    48. | AnyX86NoCfCheckAttrKind
    49. | CDeclAttrKind
    50. | FastCallAttrKind
    51. | IntelOclBiccAttrKind
    52. | LifetimeBoundAttrKind
    53. | M68kRTDAttrKind
    54. | MSABIAttrKind
    55. | NSReturnsRetainedAttrKind
    56. | ObjCOwnershipAttrKind
    57. | PascalAttrKind
    58. | PcsAttrKind
    59. | PreserveAllAttrKind
    60. | PreserveMostAttrKind
    61. | RegCallAttrKind
    62. | StdCallAttrKind
    63. | SwiftAsyncCallAttrKind
    64. | SwiftCallAttrKind
    65. | SysVABIAttrKind
    66. | ThisCallAttrKind
    67. | VectorCallAttrKind
    68. | SwiftAsyncContextAttrKind
    69. | SwiftContextAttrKind
    70. | SwiftErrorResultAttrKind
    71. | SwiftIndirectResultAttrKind
    72. | AnnotateAttrKind
    73. | CFConsumedAttrKind
    74. | CarriesDependencyAttrKind
    75. | NSConsumedAttrKind
    76. | NonNullAttrKind
    77. | OSConsumedAttrKind
    78. | PassObjectSizeAttrKind
    79. | ReleaseHandleAttrKind
    80. | UseHandleAttrKind
    81. | HLSLSV_DispatchThreadIDAttrKind
    82. | HLSLSV_GroupIndexAttrKind
    83. | AMDGPUFlatWorkGroupSizeAttrKind
    84. | AMDGPUNumSGPRAttrKind
    85. | AMDGPUNumVGPRAttrKind
    86. | AMDGPUWavesPerEUAttrKind
    87. | ARMInterruptAttrKind
    88. | AVRInterruptAttrKind
    89. | AVRSignalAttrKind
    90. | AcquireCapabilityAttrKind
    91. | AcquiredAfterAttrKind
    92. | AcquiredBeforeAttrKind
    93. | AlignMac68kAttrKind
    94. | AlignNaturalAttrKind
    95. | AlignedAttrKind
    96. | AllocAlignAttrKind
    97. | AllocSizeAttrKind
    98. | AlwaysDestroyAttrKind
    99. | AnalyzerNoReturnAttrKind
    100. | AnyX86InterruptAttrKind
    101. | AnyX86NoCallerSavedRegistersAttrKind
    102. | ArcWeakrefUnavailableAttrKind
    103. | ArgumentWithTypeTagAttrKind
    104. | ArmBuiltinAliasAttrKind
    105. | ArmLocallyStreamingAttrKind
    106. | ArmNewAttrKind
    107. | ArtificialAttrKind
    108. | AsmLabelAttrKind
    109. | AssertCapabilityAttrKind
    110. | AssertExclusiveLockAttrKind
    111. | AssertSharedLockAttrKind
    112. | AssumeAlignedAttrKind
    113. | AssumptionAttrKind
    114. | AvailabilityAttrKind
    115. | AvailableOnlyInDefaultEvalMethodAttrKind
    116. | BPFPreserveAccessIndexAttrKind
    117. | BPFPreserveStaticOffsetAttrKind
    118. | BTFDeclTagAttrKind
    119. | BlocksAttrKind
    120. | BuiltinAttrKind
    121. | C11NoReturnAttrKind
    122. | CFAuditedTransferAttrKind
    123. | CFGuardAttrKind
    124. | CFICanonicalJumpTableAttrKind
    125. | CFReturnsNotRetainedAttrKind
    126. | CFReturnsRetainedAttrKind
    127. | CFUnknownTransferAttrKind
    128. | CPUDispatchAttrKind
    129. | CPUSpecificAttrKind
    130. | CUDAConstantAttrKind
    131. | CUDADeviceAttrKind
    132. | CUDADeviceBuiltinSurfaceTypeAttrKind
    133. | CUDADeviceBuiltinTextureTypeAttrKind
    134. | CUDAGlobalAttrKind
    135. | CUDAHostAttrKind
    136. | CUDAInvalidTargetAttrKind
    137. | CUDALaunchBoundsAttrKind
    138. | CUDASharedAttrKind
    139. | CXX11NoReturnAttrKind
    140. | CallableWhenAttrKind
    141. | CallbackAttrKind
    142. | CapabilityAttrKind
    143. | CapturedRecordAttrKind
    144. | CleanupAttrKind
    145. | CmseNSEntryAttrKind
    146. | CodeModelAttrKind
    147. | CodeSegAttrKind
    148. | ColdAttrKind
    149. | CommonAttrKind
    150. | ConstAttrKind
    151. | ConstInitAttrKind
    152. | ConstructorAttrKind
    153. | ConsumableAttrKind
    154. | ConsumableAutoCastAttrKind
    155. | ConsumableSetOnReadAttrKind
    156. | ConvergentAttrKind
    157. | CoroDisableLifetimeBoundAttrKind
    158. | CoroLifetimeBoundAttrKind
    159. | CoroOnlyDestroyWhenCompleteAttrKind
    160. | CoroReturnTypeAttrKind
    161. | CoroWrapperAttrKind
    162. | CountedByAttrKind
    163. | DLLExportAttrKind
    164. | DLLExportStaticLocalAttrKind
    165. | DLLImportAttrKind
    166. | DLLImportStaticLocalAttrKind
    167. | DeprecatedAttrKind
    168. | DestructorAttrKind
    169. | DiagnoseAsBuiltinAttrKind
    170. | DiagnoseIfAttrKind
    171. | DisableSanitizerInstrumentationAttrKind
    172. | DisableTailCallsAttrKind
    173. | EmptyBasesAttrKind
    174. | EnableIfAttrKind
    175. | EnforceTCBAttrKind
    176. | EnforceTCBLeafAttrKind
    177. | EnumExtensibilityAttrKind
    178. | ErrorAttrKind
    179. | ExcludeFromExplicitInstantiationAttrKind
    180. | ExclusiveTrylockFunctionAttrKind
    181. | ExternalSourceSymbolAttrKind
    182. | FinalAttrKind
    183. | FlagEnumAttrKind
    184. | FlattenAttrKind
    185. | FormatAttrKind
    186. | FormatArgAttrKind
    187. | FunctionReturnThunksAttrKind
    188. | GNUInlineAttrKind
    189. | GuardedByAttrKind
    190. | GuardedVarAttrKind
    191. | HIPManagedAttrKind
    192. | HLSLNumThreadsAttrKind
    193. | HLSLResourceAttrKind
    194. | HLSLResourceBindingAttrKind
    195. | HLSLShaderAttrKind
    196. | HotAttrKind
    197. | IBActionAttrKind
    198. | IBOutletAttrKind
    199. | IBOutletCollectionAttrKind
    200. | InitPriorityAttrKind
    201. | InternalLinkageAttrKind
    202. | LTOVisibilityPublicAttrKind
    203. | LayoutVersionAttrKind
    204. | LeafAttrKind
    205. | LockReturnedAttrKind
    206. | LocksExcludedAttrKind
    207. | M68kInterruptAttrKind
    208. | MIGServerRoutineAttrKind
    209. | MSAllocatorAttrKind
    210. | MSConstexprAttrKind
    211. | MSInheritanceAttrKind
    212. | MSNoVTableAttrKind
    213. | MSP430InterruptAttrKind
    214. | MSStructAttrKind
    215. | MSVtorDispAttrKind
    216. | MaxFieldAlignmentAttrKind
    217. | MayAliasAttrKind
    218. | MaybeUndefAttrKind
    219. | MicroMipsAttrKind
    220. | MinSizeAttrKind
    221. | MinVectorWidthAttrKind
    222. | Mips16AttrKind
    223. | MipsInterruptAttrKind
    224. | MipsLongCallAttrKind
    225. | MipsShortCallAttrKind
    226. | NSConsumesSelfAttrKind
    227. | NSErrorDomainAttrKind
    228. | NSReturnsAutoreleasedAttrKind
    229. | NSReturnsNotRetainedAttrKind
    230. | NVPTXKernelAttrKind
    231. | NakedAttrKind
    232. | NoAliasAttrKind
    233. | NoCommonAttrKind
    234. | NoDebugAttrKind
    235. | NoDestroyAttrKind
    236. | NoDuplicateAttrKind
    237. | NoInstrumentFunctionAttrKind
    238. | NoMicroMipsAttrKind
    239. | NoMips16AttrKind
    240. | NoProfileFunctionAttrKind
    241. | NoRandomizeLayoutAttrKind
    242. | NoReturnAttrKind
    243. | NoSanitizeAttrKind
    244. | NoSpeculativeLoadHardeningAttrKind
    245. | NoSplitStackAttrKind
    246. | NoStackProtectorAttrKind
    247. | NoThreadSafetyAnalysisAttrKind
    248. | NoThrowAttrKind
    249. | NoUniqueAddressAttrKind
    250. | NoUwtableAttrKind
    251. | NotTailCalledAttrKind
    252. | OMPAllocateDeclAttrKind
    253. | OMPCaptureNoInitAttrKind
    254. | OMPDeclareTargetDeclAttrKind
    255. | OMPDeclareVariantAttrKind
    256. | OMPThreadPrivateDeclAttrKind
    257. | OSConsumesThisAttrKind
    258. | OSReturnsNotRetainedAttrKind
    259. | OSReturnsRetainedAttrKind
    260. | OSReturnsRetainedOnNonZeroAttrKind
    261. | OSReturnsRetainedOnZeroAttrKind
    262. | ObjCBridgeAttrKind
    263. | ObjCBridgeMutableAttrKind
    264. | ObjCBridgeRelatedAttrKind
    265. | ObjCExceptionAttrKind
    266. | ObjCExplicitProtocolImplAttrKind
    267. | ObjCExternallyRetainedAttrKind
    268. | ObjCIndependentClassAttrKind
    269. | ObjCMethodFamilyAttrKind
    270. | ObjCNSObjectAttrKind
    271. | ObjCPreciseLifetimeAttrKind
    272. | ObjCRequiresPropertyDefsAttrKind
    273. | ObjCRequiresSuperAttrKind
    274. | ObjCReturnsInnerPointerAttrKind
    275. | ObjCRootClassAttrKind
    276. | ObjCSubclassingRestrictedAttrKind
    277. | OpenCLIntelReqdSubGroupSizeAttrKind
    278. | OpenCLKernelAttrKind
    279. | OptimizeNoneAttrKind
    280. | OverrideAttrKind
    281. | OwnerAttrKind
    282. | OwnershipAttrKind
    283. | PackedAttrKind
    284. | ParamTypestateAttrKind
    285. | PatchableFunctionEntryAttrKind
    286. | PointerAttrKind
    287. | PragmaClangBSSSectionAttrKind
    288. | PragmaClangDataSectionAttrKind
    289. | PragmaClangRelroSectionAttrKind
    290. | PragmaClangRodataSectionAttrKind
    291. | PragmaClangTextSectionAttrKind
    292. | PreferredNameAttrKind
    293. | PreferredTypeAttrKind
    294. | PtGuardedByAttrKind
    295. | PtGuardedVarAttrKind
    296. | PureAttrKind
    297. | RISCVInterruptAttrKind
    298. | RandomizeLayoutAttrKind
    299. | ReadOnlyPlacementAttrKind
    300. | ReinitializesAttrKind
    301. | ReleaseCapabilityAttrKind
    302. | ReqdWorkGroupSizeAttrKind
    303. | RequiresCapabilityAttrKind
    304. | RestrictAttrKind
    305. | RetainAttrKind
    306. | ReturnTypestateAttrKind
    307. | ReturnsNonNullAttrKind
    308. | ReturnsTwiceAttrKind
    309. | SYCLKernelAttrKind
    310. | SYCLSpecialClassAttrKind
    311. | ScopedLockableAttrKind
    312. | SectionAttrKind
    313. | SelectAnyAttrKind
    314. | SentinelAttrKind
    315. | SetTypestateAttrKind
    316. | SharedTrylockFunctionAttrKind
    317. | SpeculativeLoadHardeningAttrKind
    318. | StandaloneDebugAttrKind
    319. | StrictFPAttrKind
    320. | StrictGuardStackCheckAttrKind
    321. | SwiftAsyncAttrKind
    322. | SwiftAsyncErrorAttrKind
    323. | SwiftAsyncNameAttrKind
    324. | SwiftAttrAttrKind
    325. | SwiftBridgeAttrKind
    326. | SwiftBridgedTypedefAttrKind
    327. | SwiftErrorAttrKind
    328. | SwiftImportAsNonGenericAttrKind
    329. | SwiftImportPropertyAsAccessorsAttrKind
    330. | SwiftNameAttrKind
    331. | SwiftNewTypeAttrKind
    332. | SwiftPrivateAttrKind
    333. | TLSModelAttrKind
    334. | TargetAttrKind
    335. | TargetClonesAttrKind
    336. | TargetVersionAttrKind
    337. | TestTypestateAttrKind
    338. | TransparentUnionAttrKind
    339. | TrivialABIAttrKind
    340. | TryAcquireCapabilityAttrKind
    341. | TypeTagForDatatypeAttrKind
    342. | TypeVisibilityAttrKind
    343. | UnavailableAttrKind
    344. | UninitializedAttrKind
    345. | UnsafeBufferUsageAttrKind
    346. | UnusedAttrKind
    347. | UsedAttrKind
    348. | UsingIfExistsAttrKind
    349. | UuidAttrKind
    350. | VecReturnAttrKind
    351. | VecTypeHintAttrKind
    352. | VisibilityAttrKind
    353. | WarnUnusedAttrKind
    354. | WarnUnusedResultAttrKind
    355. | WeakAttrKind
    356. | WeakImportAttrKind
    357. | WeakRefAttrKind
    358. | WebAssemblyExportNameAttrKind
    359. | WebAssemblyImportModuleAttrKind
    360. | WebAssemblyImportNameAttrKind
    361. | WorkGroupSizeHintAttrKind
    362. | X86ForceAlignArgPointerAttrKind
    363. | XRayInstrumentAttrKind
    364. | XRayLogArgsAttrKind
    365. | ZeroCallUsedRegsAttrKind
    366. | AbiTagAttrKind
    367. | AliasAttrKind
    368. | AlignValueAttrKind
    369. | BuiltinAliasAttrKind
    370. | CalledOnceAttrKind
    371. | IFuncAttrKind
    372. | InitSegAttrKind
    373. | LoaderUninitializedAttrKind
    374. | LoopHintAttrKind
    375. | ModeAttrKind
    376. | NoBuiltinAttrKind
    377. | NoEscapeAttrKind
    378. | OMPCaptureKindAttrKind
    379. | OMPDeclareSimdDeclAttrKind
    380. | OMPReferencedVarAttrKind
    381. | ObjCBoxableAttrKind
    382. | ObjCClassStubAttrKind
    383. | ObjCDesignatedInitializerAttrKind
    384. | ObjCDirectAttrKind
    385. | ObjCDirectMembersAttrKind
    386. | ObjCNonLazyClassAttrKind
    387. | ObjCNonRuntimeProtocolAttrKind
    388. | ObjCRuntimeNameAttrKind
    389. | ObjCRuntimeVisibleAttrKind
    390. | OpenCLAccessAttrKind
    391. | OverloadableAttrKind
    392. | RenderScriptKernelAttrKind
    393. | SwiftObjCMembersAttrKind
    394. | SwiftVersionedAdditionAttrKind
    395. | SwiftVersionedRemovalAttrKind
    396. | ThreadAttrKind
    type binary_operator_kind = Clang_ast_t.binary_operator_kind
    type binary_operator_info = Clang_ast_t.binary_operator_info = {
    1. boi_kind : binary_operator_kind;
    }
    type builtin_type_kind = Clang_ast_t.builtin_type_kind
    type cast_kind = Clang_ast_t.cast_kind
    type cxx_base_specifier = Clang_ast_t.cxx_base_specifier = {
    1. xbs_name : string;
    2. xbs_virtual : bool;
    }
    type cast_expr_info = Clang_ast_t.cast_expr_info = {
    1. cei_cast_kind : cast_kind;
    2. cei_base_path : cxx_base_specifier list;
    }
    type cxx_noexcept_expr_info = Clang_ast_t.cxx_noexcept_expr_info = {
    1. xnee_value : bool;
    }
    type decl_context_info = Clang_ast_t.decl_context_info = {
    1. dci_has_external_lexical_storage : bool;
    2. dci_has_external_visible_storage : bool;
    }
    type decl_kind = Clang_ast_t.decl_kind
    type declaration_name_kind = Clang_ast_t.declaration_name_kind
    type declaration_name = Clang_ast_t.declaration_name = {
    1. dn_kind : declaration_name_kind;
    2. dn_name : string;
    }
    type enum_decl_scope = Clang_ast_t.enum_decl_scope
    type enum_decl_info = Clang_ast_t.enum_decl_info = {
    1. edi_scope : enum_decl_scope option;
    2. edi_is_module_private : bool;
    }
    type input_kind = Clang_ast_t.input_kind
    type integer_literal_info = Clang_ast_t.integer_literal_info = {
    1. ili_is_signed : bool;
    2. ili_bitwidth : int;
    3. ili_value : string;
    }
    type integer_type_widths = Clang_ast_t.integer_type_widths = {
    1. itw_char_type : int;
    2. itw_short_type : int;
    3. itw_int_type : int;
    4. itw_long_type : int;
    5. itw_longlong_type : int;
    }
    type lambda_capture_kind = Clang_ast_t.lambda_capture_kind
    type named_decl_info = Clang_ast_t.named_decl_info = {
    1. ni_name : string;
    2. ni_qual_name : string list;
    }
    type obj_c_access_control = Clang_ast_t.obj_c_access_control
    type obj_c_availability_check_expr_info = +Clang_ast_v (infer.ATDGenerated.Clang_ast_v)

    Module ATDGenerated.Clang_ast_v

    type access_specifier = Clang_ast_t.access_specifier
    type atomic_expr_kind = Clang_ast_t.atomic_expr_kind
    type atomic_expr_info = Clang_ast_t.atomic_expr_info = {
    1. aei_kind : atomic_expr_kind;
    }
    type attribute_kind = Clang_ast_t.attribute_kind =
    1. | AddressSpaceAttrKind
    2. | AllocatingAttrKind
    3. | AnnotateTypeAttrKind
    4. | ArmInAttrKind
    5. | ArmInOutAttrKind
    6. | ArmMveStrictPolymorphismAttrKind
    7. | ArmOutAttrKind
    8. | ArmPreservesAttrKind
    9. | ArmStreamingAttrKind
    10. | ArmStreamingCompatibleAttrKind
    11. | BTFTypeTagAttrKind
    12. | BlockingAttrKind
    13. | CmseNSCallAttrKind
    14. | HLSLGroupSharedAddressSpaceAttrKind
    15. | HLSLParamModifierAttrKind
    16. | NoDerefAttrKind
    17. | NonAllocatingAttrKind
    18. | NonBlockingAttrKind
    19. | ObjCGCAttrKind
    20. | ObjCInertUnsafeUnretainedAttrKind
    21. | ObjCKindOfAttrKind
    22. | OpenCLConstantAddressSpaceAttrKind
    23. | OpenCLGenericAddressSpaceAttrKind
    24. | OpenCLGlobalAddressSpaceAttrKind
    25. | OpenCLGlobalDeviceAddressSpaceAttrKind
    26. | OpenCLGlobalHostAddressSpaceAttrKind
    27. | OpenCLLocalAddressSpaceAttrKind
    28. | OpenCLPrivateAddressSpaceAttrKind
    29. | Ptr32AttrKind
    30. | Ptr64AttrKind
    31. | SPtrAttrKind
    32. | TypeNonNullAttrKind
    33. | TypeNullUnspecifiedAttrKind
    34. | TypeNullableResultAttrKind
    35. | UPtrAttrKind
    36. | WebAssemblyFuncrefAttrKind
    37. | CXXAssumeAttrKind
    38. | CodeAlignAttrKind
    39. | FallThroughAttrKind
    40. | HLSLLoopHintAttrKind
    41. | LikelyAttrKind
    42. | MustTailAttrKind
    43. | OpenCLUnrollHintAttrKind
    44. | UnlikelyAttrKind
    45. | AlwaysInlineAttrKind
    46. | NoInlineAttrKind
    47. | NoMergeAttrKind
    48. | SuppressAttrKind
    49. | AArch64SVEPcsAttrKind
    50. | AArch64VectorPcsAttrKind
    51. | AMDGPUKernelCallAttrKind
    52. | AcquireHandleAttrKind
    53. | AnyX86NoCfCheckAttrKind
    54. | CDeclAttrKind
    55. | CountedByAttrKind
    56. | CountedByOrNullAttrKind
    57. | FastCallAttrKind
    58. | IntelOclBiccAttrKind
    59. | LifetimeBoundAttrKind
    60. | M68kRTDAttrKind
    61. | MSABIAttrKind
    62. | NSReturnsRetainedAttrKind
    63. | ObjCOwnershipAttrKind
    64. | PascalAttrKind
    65. | PcsAttrKind
    66. | PreserveAllAttrKind
    67. | PreserveMostAttrKind
    68. | PreserveNoneAttrKind
    69. | RISCVVectorCCAttrKind
    70. | RegCallAttrKind
    71. | SizedByAttrKind
    72. | SizedByOrNullAttrKind
    73. | StdCallAttrKind
    74. | SwiftAsyncCallAttrKind
    75. | SwiftCallAttrKind
    76. | SysVABIAttrKind
    77. | ThisCallAttrKind
    78. | TypeNullableAttrKind
    79. | VectorCallAttrKind
    80. | SwiftAsyncContextAttrKind
    81. | SwiftContextAttrKind
    82. | SwiftErrorResultAttrKind
    83. | SwiftIndirectResultAttrKind
    84. | AnnotateAttrKind
    85. | CFConsumedAttrKind
    86. | CarriesDependencyAttrKind
    87. | NSConsumedAttrKind
    88. | NonNullAttrKind
    89. | OSConsumedAttrKind
    90. | PassObjectSizeAttrKind
    91. | ReleaseHandleAttrKind
    92. | UseHandleAttrKind
    93. | HLSLPackOffsetAttrKind
    94. | HLSLSV_DispatchThreadIDAttrKind
    95. | HLSLSV_GroupIndexAttrKind
    96. | AMDGPUFlatWorkGroupSizeAttrKind
    97. | AMDGPUMaxNumWorkGroupsAttrKind
    98. | AMDGPUNumSGPRAttrKind
    99. | AMDGPUNumVGPRAttrKind
    100. | AMDGPUWavesPerEUAttrKind
    101. | ARMInterruptAttrKind
    102. | AVRInterruptAttrKind
    103. | AVRSignalAttrKind
    104. | AcquireCapabilityAttrKind
    105. | AcquiredAfterAttrKind
    106. | AcquiredBeforeAttrKind
    107. | AlignMac68kAttrKind
    108. | AlignNaturalAttrKind
    109. | AlignedAttrKind
    110. | AllocAlignAttrKind
    111. | AllocSizeAttrKind
    112. | AlwaysDestroyAttrKind
    113. | AnalyzerNoReturnAttrKind
    114. | AnyX86InterruptAttrKind
    115. | AnyX86NoCallerSavedRegistersAttrKind
    116. | ArcWeakrefUnavailableAttrKind
    117. | ArgumentWithTypeTagAttrKind
    118. | ArmBuiltinAliasAttrKind
    119. | ArmLocallyStreamingAttrKind
    120. | ArmNewAttrKind
    121. | ArtificialAttrKind
    122. | AsmLabelAttrKind
    123. | AssertCapabilityAttrKind
    124. | AssertExclusiveLockAttrKind
    125. | AssertSharedLockAttrKind
    126. | AssumeAlignedAttrKind
    127. | AvailabilityAttrKind
    128. | AvailableOnlyInDefaultEvalMethodAttrKind
    129. | BPFPreserveAccessIndexAttrKind
    130. | BPFPreserveStaticOffsetAttrKind
    131. | BTFDeclTagAttrKind
    132. | BlocksAttrKind
    133. | BuiltinAttrKind
    134. | C11NoReturnAttrKind
    135. | CFAuditedTransferAttrKind
    136. | CFGuardAttrKind
    137. | CFICanonicalJumpTableAttrKind
    138. | CFReturnsNotRetainedAttrKind
    139. | CFReturnsRetainedAttrKind
    140. | CFUnknownTransferAttrKind
    141. | CPUDispatchAttrKind
    142. | CPUSpecificAttrKind
    143. | CUDAConstantAttrKind
    144. | CUDADeviceAttrKind
    145. | CUDADeviceBuiltinSurfaceTypeAttrKind
    146. | CUDADeviceBuiltinTextureTypeAttrKind
    147. | CUDAGlobalAttrKind
    148. | CUDAHostAttrKind
    149. | CUDAInvalidTargetAttrKind
    150. | CUDALaunchBoundsAttrKind
    151. | CUDASharedAttrKind
    152. | CXX11NoReturnAttrKind
    153. | CallableWhenAttrKind
    154. | CallbackAttrKind
    155. | CapabilityAttrKind
    156. | CapturedRecordAttrKind
    157. | CleanupAttrKind
    158. | ClspvLibclcBuiltinAttrKind
    159. | CmseNSEntryAttrKind
    160. | CodeModelAttrKind
    161. | CodeSegAttrKind
    162. | ColdAttrKind
    163. | CommonAttrKind
    164. | ConstAttrKind
    165. | ConstInitAttrKind
    166. | ConstructorAttrKind
    167. | ConsumableAttrKind
    168. | ConsumableAutoCastAttrKind
    169. | ConsumableSetOnReadAttrKind
    170. | ConvergentAttrKind
    171. | CoroDisableLifetimeBoundAttrKind
    172. | CoroLifetimeBoundAttrKind
    173. | CoroOnlyDestroyWhenCompleteAttrKind
    174. | CoroReturnTypeAttrKind
    175. | CoroWrapperAttrKind
    176. | DLLExportAttrKind
    177. | DLLExportStaticLocalAttrKind
    178. | DLLImportAttrKind
    179. | DLLImportStaticLocalAttrKind
    180. | DeprecatedAttrKind
    181. | DestructorAttrKind
    182. | DiagnoseAsBuiltinAttrKind
    183. | DiagnoseIfAttrKind
    184. | DisableSanitizerInstrumentationAttrKind
    185. | DisableTailCallsAttrKind
    186. | EmptyBasesAttrKind
    187. | EnableIfAttrKind
    188. | EnforceTCBAttrKind
    189. | EnforceTCBLeafAttrKind
    190. | EnumExtensibilityAttrKind
    191. | ErrorAttrKind
    192. | ExcludeFromExplicitInstantiationAttrKind
    193. | ExclusiveTrylockFunctionAttrKind
    194. | ExternalSourceSymbolAttrKind
    195. | FinalAttrKind
    196. | FlagEnumAttrKind
    197. | FlattenAttrKind
    198. | FormatAttrKind
    199. | FormatArgAttrKind
    200. | FunctionReturnThunksAttrKind
    201. | GNUInlineAttrKind
    202. | GuardedByAttrKind
    203. | GuardedVarAttrKind
    204. | HIPManagedAttrKind
    205. | HLSLNumThreadsAttrKind
    206. | HLSLResourceAttrKind
    207. | HLSLResourceBindingAttrKind
    208. | HLSLResourceClassAttrKind
    209. | HLSLShaderAttrKind
    210. | HotAttrKind
    211. | HybridPatchableAttrKind
    212. | IBActionAttrKind
    213. | IBOutletAttrKind
    214. | IBOutletCollectionAttrKind
    215. | InitPriorityAttrKind
    216. | InternalLinkageAttrKind
    217. | LTOVisibilityPublicAttrKind
    218. | LayoutVersionAttrKind
    219. | LeafAttrKind
    220. | LockReturnedAttrKind
    221. | LocksExcludedAttrKind
    222. | M68kInterruptAttrKind
    223. | MIGServerRoutineAttrKind
    224. | MSAllocatorAttrKind
    225. | MSConstexprAttrKind
    226. | MSInheritanceAttrKind
    227. | MSNoVTableAttrKind
    228. | MSP430InterruptAttrKind
    229. | MSStructAttrKind
    230. | MSVtorDispAttrKind
    231. | MaxFieldAlignmentAttrKind
    232. | MayAliasAttrKind
    233. | MaybeUndefAttrKind
    234. | MicroMipsAttrKind
    235. | MinSizeAttrKind
    236. | MinVectorWidthAttrKind
    237. | Mips16AttrKind
    238. | MipsInterruptAttrKind
    239. | MipsLongCallAttrKind
    240. | MipsShortCallAttrKind
    241. | NSConsumesSelfAttrKind
    242. | NSErrorDomainAttrKind
    243. | NSReturnsAutoreleasedAttrKind
    244. | NSReturnsNotRetainedAttrKind
    245. | NVPTXKernelAttrKind
    246. | NakedAttrKind
    247. | NoAliasAttrKind
    248. | NoCommonAttrKind
    249. | NoDebugAttrKind
    250. | NoDestroyAttrKind
    251. | NoDuplicateAttrKind
    252. | NoInstrumentFunctionAttrKind
    253. | NoMicroMipsAttrKind
    254. | NoMips16AttrKind
    255. | NoProfileFunctionAttrKind
    256. | NoRandomizeLayoutAttrKind
    257. | NoReturnAttrKind
    258. | NoSanitizeAttrKind
    259. | NoSpeculativeLoadHardeningAttrKind
    260. | NoSplitStackAttrKind
    261. | NoStackProtectorAttrKind
    262. | NoThreadSafetyAnalysisAttrKind
    263. | NoThrowAttrKind
    264. | NoUniqueAddressAttrKind
    265. | NoUwtableAttrKind
    266. | NotTailCalledAttrKind
    267. | OMPAllocateDeclAttrKind
    268. | OMPAssumeAttrKind
    269. | OMPCaptureNoInitAttrKind
    270. | OMPDeclareTargetDeclAttrKind
    271. | OMPDeclareVariantAttrKind
    272. | OMPThreadPrivateDeclAttrKind
    273. | OSConsumesThisAttrKind
    274. | OSReturnsNotRetainedAttrKind
    275. | OSReturnsRetainedAttrKind
    276. | OSReturnsRetainedOnNonZeroAttrKind
    277. | OSReturnsRetainedOnZeroAttrKind
    278. | ObjCBridgeAttrKind
    279. | ObjCBridgeMutableAttrKind
    280. | ObjCBridgeRelatedAttrKind
    281. | ObjCExceptionAttrKind
    282. | ObjCExplicitProtocolImplAttrKind
    283. | ObjCExternallyRetainedAttrKind
    284. | ObjCIndependentClassAttrKind
    285. | ObjCMethodFamilyAttrKind
    286. | ObjCNSObjectAttrKind
    287. | ObjCPreciseLifetimeAttrKind
    288. | ObjCRequiresPropertyDefsAttrKind
    289. | ObjCRequiresSuperAttrKind
    290. | ObjCReturnsInnerPointerAttrKind
    291. | ObjCRootClassAttrKind
    292. | ObjCSubclassingRestrictedAttrKind
    293. | OpenCLIntelReqdSubGroupSizeAttrKind
    294. | OpenCLKernelAttrKind
    295. | OptimizeNoneAttrKind
    296. | OverrideAttrKind
    297. | OwnerAttrKind
    298. | OwnershipAttrKind
    299. | PackedAttrKind
    300. | ParamTypestateAttrKind
    301. | PatchableFunctionEntryAttrKind
    302. | PointerAttrKind
    303. | PragmaClangBSSSectionAttrKind
    304. | PragmaClangDataSectionAttrKind
    305. | PragmaClangRelroSectionAttrKind
    306. | PragmaClangRodataSectionAttrKind
    307. | PragmaClangTextSectionAttrKind
    308. | PreferredNameAttrKind
    309. | PreferredTypeAttrKind
    310. | PtGuardedByAttrKind
    311. | PtGuardedVarAttrKind
    312. | PureAttrKind
    313. | RISCVInterruptAttrKind
    314. | RandomizeLayoutAttrKind
    315. | ReadOnlyPlacementAttrKind
    316. | ReinitializesAttrKind
    317. | ReleaseCapabilityAttrKind
    318. | ReqdWorkGroupSizeAttrKind
    319. | RequiresCapabilityAttrKind
    320. | RestrictAttrKind
    321. | RetainAttrKind
    322. | ReturnTypestateAttrKind
    323. | ReturnsNonNullAttrKind
    324. | ReturnsTwiceAttrKind
    325. | SYCLKernelAttrKind
    326. | SYCLSpecialClassAttrKind
    327. | ScopedLockableAttrKind
    328. | SectionAttrKind
    329. | SelectAnyAttrKind
    330. | SentinelAttrKind
    331. | SetTypestateAttrKind
    332. | SharedTrylockFunctionAttrKind
    333. | SpeculativeLoadHardeningAttrKind
    334. | StandaloneDebugAttrKind
    335. | StrictFPAttrKind
    336. | StrictGuardStackCheckAttrKind
    337. | SwiftAsyncAttrKind
    338. | SwiftAsyncErrorAttrKind
    339. | SwiftAsyncNameAttrKind
    340. | SwiftAttrAttrKind
    341. | SwiftBridgeAttrKind
    342. | SwiftBridgedTypedefAttrKind
    343. | SwiftErrorAttrKind
    344. | SwiftImportAsNonGenericAttrKind
    345. | SwiftImportPropertyAsAccessorsAttrKind
    346. | SwiftNameAttrKind
    347. | SwiftNewTypeAttrKind
    348. | SwiftPrivateAttrKind
    349. | TLSModelAttrKind
    350. | TargetAttrKind
    351. | TargetClonesAttrKind
    352. | TargetVersionAttrKind
    353. | TestTypestateAttrKind
    354. | TransparentUnionAttrKind
    355. | TrivialABIAttrKind
    356. | TryAcquireCapabilityAttrKind
    357. | TypeTagForDatatypeAttrKind
    358. | TypeVisibilityAttrKind
    359. | UnavailableAttrKind
    360. | UninitializedAttrKind
    361. | UnsafeBufferUsageAttrKind
    362. | UnusedAttrKind
    363. | UsedAttrKind
    364. | UsingIfExistsAttrKind
    365. | UuidAttrKind
    366. | VTablePointerAuthenticationAttrKind
    367. | VecReturnAttrKind
    368. | VecTypeHintAttrKind
    369. | VisibilityAttrKind
    370. | WarnUnusedAttrKind
    371. | WarnUnusedResultAttrKind
    372. | WeakAttrKind
    373. | WeakImportAttrKind
    374. | WeakRefAttrKind
    375. | WebAssemblyExportNameAttrKind
    376. | WebAssemblyImportModuleAttrKind
    377. | WebAssemblyImportNameAttrKind
    378. | WorkGroupSizeHintAttrKind
    379. | X86ForceAlignArgPointerAttrKind
    380. | XRayInstrumentAttrKind
    381. | XRayLogArgsAttrKind
    382. | ZeroCallUsedRegsAttrKind
    383. | AbiTagAttrKind
    384. | AliasAttrKind
    385. | AlignValueAttrKind
    386. | BuiltinAliasAttrKind
    387. | CalledOnceAttrKind
    388. | IFuncAttrKind
    389. | InitSegAttrKind
    390. | LoaderUninitializedAttrKind
    391. | LoopHintAttrKind
    392. | ModeAttrKind
    393. | NoBuiltinAttrKind
    394. | NoEscapeAttrKind
    395. | OMPCaptureKindAttrKind
    396. | OMPDeclareSimdDeclAttrKind
    397. | OMPReferencedVarAttrKind
    398. | ObjCBoxableAttrKind
    399. | ObjCClassStubAttrKind
    400. | ObjCDesignatedInitializerAttrKind
    401. | ObjCDirectAttrKind
    402. | ObjCDirectMembersAttrKind
    403. | ObjCNonLazyClassAttrKind
    404. | ObjCNonRuntimeProtocolAttrKind
    405. | ObjCRuntimeNameAttrKind
    406. | ObjCRuntimeVisibleAttrKind
    407. | OpenCLAccessAttrKind
    408. | OverloadableAttrKind
    409. | RenderScriptKernelAttrKind
    410. | SwiftObjCMembersAttrKind
    411. | SwiftVersionedAdditionAttrKind
    412. | SwiftVersionedRemovalAttrKind
    413. | ThreadAttrKind
    type binary_operator_kind = Clang_ast_t.binary_operator_kind
    type binary_operator_info = Clang_ast_t.binary_operator_info = {
    1. boi_kind : binary_operator_kind;
    }
    type builtin_type_kind = Clang_ast_t.builtin_type_kind
    type cast_kind = Clang_ast_t.cast_kind
    type cxx_base_specifier = Clang_ast_t.cxx_base_specifier = {
    1. xbs_name : string;
    2. xbs_virtual : bool;
    }
    type cast_expr_info = Clang_ast_t.cast_expr_info = {
    1. cei_cast_kind : cast_kind;
    2. cei_base_path : cxx_base_specifier list;
    }
    type cxx_noexcept_expr_info = Clang_ast_t.cxx_noexcept_expr_info = {
    1. xnee_value : bool;
    }
    type decl_context_info = Clang_ast_t.decl_context_info = {
    1. dci_has_external_lexical_storage : bool;
    2. dci_has_external_visible_storage : bool;
    }
    type decl_kind = Clang_ast_t.decl_kind
    type declaration_name_kind = Clang_ast_t.declaration_name_kind
    type declaration_name = Clang_ast_t.declaration_name = {
    1. dn_kind : declaration_name_kind;
    2. dn_name : string;
    }
    type enum_decl_scope = Clang_ast_t.enum_decl_scope
    type enum_decl_info = Clang_ast_t.enum_decl_info = {
    1. edi_scope : enum_decl_scope option;
    2. edi_is_module_private : bool;
    }
    type input_kind = Clang_ast_t.input_kind
    type integer_literal_info = Clang_ast_t.integer_literal_info = {
    1. ili_is_signed : bool;
    2. ili_bitwidth : int;
    3. ili_value : string;
    }
    type integer_type_widths = Clang_ast_t.integer_type_widths = {
    1. itw_char_type : int;
    2. itw_short_type : int;
    3. itw_int_type : int;
    4. itw_long_type : int;
    5. itw_longlong_type : int;
    }
    type lambda_capture_kind = Clang_ast_t.lambda_capture_kind
    type named_decl_info = Clang_ast_t.named_decl_info = {
    1. ni_name : string;
    2. ni_qual_name : string list;
    }
    type namespace_decl_info = Clang_ast_t.namespace_decl_info = {
    1. ndi_is_inline : bool;
    }
    type obj_c_access_control = Clang_ast_t.obj_c_access_control
    type obj_c_availability_check_expr_info = Clang_ast_t.obj_c_availability_check_expr_info = {
    1. oacei_version : string option;
    }
    type obj_c_bridge_cast_kind = Clang_ast_t.obj_c_bridge_cast_kind
    type obj_c_bridged_cast_expr_info = Clang_ast_t.obj_c_bridged_cast_expr_info = {
    1. obcei_cast_kind : obj_c_bridge_cast_kind;
    }
    type obj_c_ivar_decl_info = Clang_ast_t.obj_c_ivar_decl_info = {
    1. ovdi_is_synthesize : bool;
    2. ovdi_access_control : obj_c_access_control;
    }
    type obj_c_property_control = Clang_ast_t.obj_c_property_control
    type obj_c_subscript_kind = Clang_ast_t.obj_c_subscript_kind
    type objc_lifetime_attr = Clang_ast_t.objc_lifetime_attr
    type attr_type_info = Clang_ast_t.attr_type_info = {
    1. ati_attr_kind : attribute_kind;
    2. ati_lifetime : objc_lifetime_attr;
    }
    type object_kind = Clang_ast_t.object_kind
    type offset_of_expr_info = Clang_ast_t.offset_of_expr_info = {
    1. ooe_literal : integer_literal_info option;
    }
    type pointer = Clang_ast_t.pointer
    type addr_label_expr_info = Clang_ast_t.addr_label_expr_info = {
    1. alei_label : string;
    2. alei_pointer : pointer;
    }
    type cxx_new_expr_info = Clang_ast_t.cxx_new_expr_info = {
    1. xnei_is_array : bool;
    2. xnei_array_size_expr : pointer option;
    3. xnei_initializer_expr : pointer option;
    4. xnei_placement_args : pointer list;
    }
    type cxx_temporary = Clang_ast_t.cxx_temporary
    type cxx_bind_temporary_expr_info = Clang_ast_t.cxx_bind_temporary_expr_info = {
    1. xbtei_cxx_temporary : cxx_temporary;
    }
    type goto_stmt_info = Clang_ast_t.goto_stmt_info = {
    1. gsi_label : string;
    2. gsi_pointer : pointer;
    }
    type obj_c_array_literal_expr_info = Clang_ast_t.obj_c_array_literal_expr_info = {
    1. oalei_array_method : pointer option;
    }
    type obj_c_dictionary_literal_expr_info = @@ -8,17 +8,17 @@ {
    1. osrei_kind : obj_c_subscript_kind;
    2. osrei_getter : selector option;
    3. osrei_setter : selector option;
    }
    type objc_boxed_expr_info = Clang_ast_t.objc_boxed_expr_info = {
    1. obei_boxing_method : selector option;
    }
    type sentinel_attr_info = Clang_ast_t.sentinel_attr_info = {
    1. sai_sentinel : int;
    2. sai_null_pos : int;
    }
    type source_file = Clang_ast_t.source_file
    type source_location = Clang_ast_t.source_location = {
    1. mutable sl_file : source_file option;
    2. mutable sl_line : int option;
    3. mutable sl_column : int option;
    4. sl_is_macro : bool;
    5. mutable sl_macro_file : source_file option;
    6. mutable sl_macro_line : int option;
    }
    type source_range = Clang_ast_t.source_range
    type attribute_info = Clang_ast_t.attribute_info = {
    1. ai_pointer : pointer;
    2. ai_source_range : source_range;
    }
    type attr_tuple = Clang_ast_t.attr_tuple
    type comment_info = Clang_ast_t.comment_info = {
    1. ci_parent_pointer : pointer;
    2. ci_source_range : source_range;
    }
    type specifier_kind = Clang_ast_t.specifier_kind
    type stmt_info = Clang_ast_t.stmt_info = {
    1. si_pointer : pointer;
    2. si_source_range : source_range;
    }
    type tag_kind = Clang_ast_t.tag_kind
    type type_ptr = Clang_ast_t.type_ptr
    type qual_type = Clang_ast_t.qual_type = {
    1. qt_type_ptr : type_ptr;
    2. qt_is_const : bool;
    3. qt_is_restrict : bool;
    4. qt_is_volatile : bool;
    }
    type array_type_info = Clang_ast_t.array_type_info = {
    1. arti_element_type : qual_type;
    2. arti_stride : int option;
    }
    type compound_assign_operator_info = Clang_ast_t.compound_assign_operator_info = {
    1. caoi_lhs_type : qual_type;
    2. caoi_result_type : qual_type;
    }
    type cxx_delete_expr_info = Clang_ast_t.cxx_delete_expr_info = {
    1. xdei_is_array : bool;
    2. xdei_destroyed_type : qual_type;
    }
    type decl_ref = Clang_ast_t.decl_ref = {
    1. dr_kind : decl_kind;
    2. dr_decl_pointer : pointer;
    3. dr_name : named_decl_info option;
    4. dr_is_hidden : bool;
    5. dr_qual_type : qual_type option;
    }
    type cxx_construct_expr_info = Clang_ast_t.cxx_construct_expr_info = {
    1. xcei_decl_ref : decl_ref;
    2. xcei_is_elidable : bool;
    3. xcei_requires_zero_initialization : bool;
    4. xcei_is_copy_constructor : bool;
    }
    type cxx_ctor_initializer_subject = Clang_ast_t.cxx_ctor_initializer_subject
    type decl_ref_expr_info = Clang_ast_t.decl_ref_expr_info = {
    1. drti_decl_ref : decl_ref option;
    }
    type expr_with_cleanups_info = Clang_ast_t.expr_with_cleanups_info = {
    1. ewci_decl_refs : decl_ref list;
    }
    type function_type_info = Clang_ast_t.function_type_info = {
    1. fti_return_type : qual_type;
    }
    type materialize_temporary_expr_info = Clang_ast_t.materialize_temporary_expr_info = - {
    1. mtei_decl_ref : decl_ref option;
    }
    type member_expr_info = Clang_ast_t.member_expr_info = {
    1. mei_is_arrow : bool;
    2. mei_performs_virtual_dispatch : bool;
    3. mei_name : named_decl_info;
    4. mei_decl_ref : decl_ref;
    }
    type namespace_decl_info = Clang_ast_t.namespace_decl_info = {
    1. ndi_is_inline : bool;
    2. ndi_original_namespace : decl_ref option;
    }
    type nested_name_specifier_loc = Clang_ast_t.nested_name_specifier_loc = {
    1. nnsl_kind : specifier_kind;
    2. nnsl_ref : decl_ref option;
    }
    type namespace_alias_decl_info = Clang_ast_t.namespace_alias_decl_info = {
    1. nadi_namespace_loc : source_location;
    2. nadi_target_name_loc : source_location;
    3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. nadi_namespace : decl_ref;
    }
    type obj_c_category_decl_info = Clang_ast_t.obj_c_category_decl_info = {
    1. odi_class_interface : decl_ref option;
    2. odi_implementation : decl_ref option;
    3. odi_protocols : decl_ref list;
    }
    type obj_c_category_impl_decl_info = Clang_ast_t.obj_c_category_impl_decl_info = + {
    1. mtei_decl_ref : decl_ref option;
    }
    type member_expr_info = Clang_ast_t.member_expr_info = {
    1. mei_is_arrow : bool;
    2. mei_performs_virtual_dispatch : bool;
    3. mei_name : named_decl_info;
    4. mei_decl_ref : decl_ref;
    }
    type nested_name_specifier_loc = Clang_ast_t.nested_name_specifier_loc = {
    1. nnsl_kind : specifier_kind;
    2. nnsl_ref : decl_ref option;
    }
    type namespace_alias_decl_info = Clang_ast_t.namespace_alias_decl_info = {
    1. nadi_namespace_loc : source_location;
    2. nadi_target_name_loc : source_location;
    3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. nadi_namespace : decl_ref;
    }
    type obj_c_category_decl_info = Clang_ast_t.obj_c_category_decl_info = {
    1. odi_class_interface : decl_ref option;
    2. odi_implementation : decl_ref option;
    3. odi_protocols : decl_ref list;
    }
    type obj_c_category_impl_decl_info = Clang_ast_t.obj_c_category_impl_decl_info = {
    1. ocidi_class_interface : decl_ref option;
    2. ocidi_category_decl : decl_ref option;
    }
    type obj_c_compatible_alias_decl_info = Clang_ast_t.obj_c_compatible_alias_decl_info = {
    1. ocadi_class_interface : decl_ref option;
    }
    type obj_c_interface_decl_info = Clang_ast_t.obj_c_interface_decl_info = {
    1. otdi_super : decl_ref option;
    2. otdi_implementation : decl_ref option;
    3. otdi_protocols : decl_ref list;
    4. otdi_known_categories : decl_ref list;
    }
    type obj_c_ivar_ref_expr_info = Clang_ast_t.obj_c_ivar_ref_expr_info = {
    1. ovrei_decl_ref : decl_ref;
    2. ovrei_pointer : pointer;
    3. ovrei_is_free_ivar : bool;
    }
    type obj_c_property_decl_info = Clang_ast_t.obj_c_property_decl_info = {
    1. opdi_qual_type : qual_type;
    2. opdi_getter_method : decl_ref option;
    3. opdi_setter_method : decl_ref option;
    4. opdi_ivar_decl : decl_ref option;
    5. opdi_property_control : obj_c_property_control;
    6. opdi_property_attributes : property_attribute list;
    }
    type obj_c_property_impl_decl_info = Clang_ast_t.obj_c_property_impl_decl_info = - {
    1. opidi_implementation : property_implementation;
    2. opidi_property_decl : decl_ref option;
    3. opidi_ivar_decl : decl_ref option;
    }
    type obj_c_protocol_decl_info = Clang_ast_t.obj_c_protocol_decl_info = {
    1. opcdi_protocols : decl_ref list;
    }
    type objc_encode_expr_info = Clang_ast_t.objc_encode_expr_info = {
    1. oeei_qual_type : qual_type;
    2. oeei_raw : string;
    }
    type objc_object_type_info = Clang_ast_t.objc_object_type_info = {
    1. ooti_base_type : type_ptr;
    2. ooti_protocol_decls_ptr : pointer list;
    3. ooti_type_args : qual_type list;
    }
    type overload_expr_info = Clang_ast_t.overload_expr_info = {
    1. oei_decls : decl_ref list;
    2. oei_name : declaration_name;
    }
    type params_type_info = Clang_ast_t.params_type_info = {
    1. pti_params_type : qual_type list;
    }
    type property_ref_kind = Clang_ast_t.property_ref_kind
    type obj_c_property_ref_expr_info = Clang_ast_t.obj_c_property_ref_expr_info = {
    1. oprei_kind : property_ref_kind;
    2. oprei_is_super_receiver : bool;
    3. oprei_is_messaging_getter : bool;
    4. oprei_is_messaging_setter : bool;
    }
    type receiver_kind = Clang_ast_t.receiver_kind
    type obj_c_message_expr_info = Clang_ast_t.obj_c_message_expr_info = {
    1. omei_selector : string;
    2. omei_is_definition_found : bool;
    3. omei_decl_pointer : pointer option;
    4. omei_receiver_kind : receiver_kind;
    }
    type type_info = Clang_ast_t.type_info = {
    1. ti_pointer : pointer;
    2. ti_desugared_type : type_ptr option;
    }
    type type_trait_info = Clang_ast_t.type_trait_info = {
    1. xtti_value : bool;
    }
    type typedef_decl_info = Clang_ast_t.typedef_decl_info = {
    1. tdi_is_module_private : bool;
    }
    type typedef_type_info = Clang_ast_t.typedef_type_info = {
    1. tti_child_type : qual_type;
    2. tti_decl_ptr : pointer;
    }
    type c_type = Clang_ast_t.c_type =
    1. | NoneType of type_info
    2. | AdjustedType of type_info * qual_type
    3. | DecayedType of type_info * qual_type
    4. | ConstantArrayType of type_info * array_type_info * int
    5. | DependentSizedArrayType of type_info * array_type_info
    6. | IncompleteArrayType of type_info * array_type_info
    7. | VariableArrayType of type_info * array_type_info * pointer
    8. | AtomicType of type_info * qual_type
    9. | AttributedType of type_info * attr_type_info
    10. | BTFTagAttributedType of type_info
    11. | BitIntType of type_info
    12. | BlockPointerType of type_info * qual_type
    13. | BuiltinType of type_info * builtin_type_kind
    14. | ComplexType of type_info
    15. | DecltypeType of type_info * qual_type
    16. | AutoType of type_info
    17. | DeducedTemplateSpecializationType of type_info
    18. | DependentAddressSpaceType of type_info
    19. | DependentBitIntType of type_info
    20. | DependentNameType of type_info
    21. | DependentSizedExtVectorType of type_info
    22. | DependentTemplateSpecializationType of type_info
    23. | DependentVectorType of type_info
    24. | ElaboratedType of type_info
    25. | FunctionNoProtoType of type_info * function_type_info
    26. | FunctionProtoType of type_info * function_type_info * params_type_info
    27. | InjectedClassNameType of type_info
    28. | MacroQualifiedType of type_info
    29. | ConstantMatrixType of type_info
    30. | DependentSizedMatrixType of type_info
    31. | MemberPointerType of type_info * qual_type
    32. | ObjCObjectPointerType of type_info * qual_type
    33. | ObjCObjectType of type_info * objc_object_type_info
    34. | ObjCInterfaceType of type_info * pointer
    35. | ObjCTypeParamType of type_info
    36. | PackExpansionType of type_info
    37. | ParenType of type_info * qual_type
    38. | PipeType of type_info
    39. | PointerType of type_info * qual_type
    40. | LValueReferenceType of type_info * qual_type
    41. | RValueReferenceType of type_info * qual_type
    42. | SubstTemplateTypeParmPackType of type_info
    43. | SubstTemplateTypeParmType of type_info
    44. | EnumType of type_info * pointer
    45. | RecordType of type_info * pointer
    46. | TemplateSpecializationType of type_info
    47. | TemplateTypeParmType of type_info
    48. | TypeOfExprType of type_info
    49. | TypeOfType of type_info
    50. | TypedefType of type_info * typedef_type_info
    51. | UnaryTransformType of type_info
    52. | UnresolvedUsingType of type_info
    53. | UsingType of type_info
    54. | VectorType of type_info
    55. | ExtVectorType of type_info
    type translation_unit_decl_info = Clang_ast_t.translation_unit_decl_info = {
    1. tudi_input_path : source_file;
    2. tudi_input_kind : input_kind;
    3. tudi_integer_type_widths : integer_type_widths;
    4. tudi_is_objc_arc_on : bool;
    5. tudi_types : c_type list;
    }
    type unary_expr_or_type_trait_kind = Clang_ast_t.unary_expr_or_type_trait_kind
    type unary_expr_or_type_trait_expr_info = + {
    1. opidi_implementation : property_implementation;
    2. opidi_property_decl : decl_ref option;
    3. opidi_ivar_decl : decl_ref option;
    }
    type obj_c_protocol_decl_info = Clang_ast_t.obj_c_protocol_decl_info = {
    1. opcdi_protocols : decl_ref list;
    }
    type objc_encode_expr_info = Clang_ast_t.objc_encode_expr_info = {
    1. oeei_qual_type : qual_type;
    2. oeei_raw : string;
    }
    type objc_object_type_info = Clang_ast_t.objc_object_type_info = {
    1. ooti_base_type : type_ptr;
    2. ooti_protocol_decls_ptr : pointer list;
    3. ooti_type_args : qual_type list;
    }
    type overload_expr_info = Clang_ast_t.overload_expr_info = {
    1. oei_decls : decl_ref list;
    2. oei_name : declaration_name;
    }
    type params_type_info = Clang_ast_t.params_type_info = {
    1. pti_params_type : qual_type list;
    }
    type property_ref_kind = Clang_ast_t.property_ref_kind
    type obj_c_property_ref_expr_info = Clang_ast_t.obj_c_property_ref_expr_info = {
    1. oprei_kind : property_ref_kind;
    2. oprei_is_super_receiver : bool;
    3. oprei_is_messaging_getter : bool;
    4. oprei_is_messaging_setter : bool;
    }
    type receiver_kind = Clang_ast_t.receiver_kind
    type obj_c_message_expr_info = Clang_ast_t.obj_c_message_expr_info = {
    1. omei_selector : string;
    2. omei_is_definition_found : bool;
    3. omei_decl_pointer : pointer option;
    4. omei_receiver_kind : receiver_kind;
    }
    type type_info = Clang_ast_t.type_info = {
    1. ti_pointer : pointer;
    2. ti_desugared_type : type_ptr option;
    }
    type type_trait_info = Clang_ast_t.type_trait_info = {
    1. xtti_value : bool;
    }
    type typedef_decl_info = Clang_ast_t.typedef_decl_info = {
    1. tdi_is_module_private : bool;
    }
    type typedef_type_info = Clang_ast_t.typedef_type_info = {
    1. tti_child_type : qual_type;
    2. tti_decl_ptr : pointer;
    }
    type c_type = Clang_ast_t.c_type =
    1. | NoneType of type_info
    2. | AdjustedType of type_info * qual_type
    3. | DecayedType of type_info * qual_type
    4. | ConstantArrayType of type_info * array_type_info * int
    5. | ArrayParameterType of type_info * array_type_info * int
    6. | DependentSizedArrayType of type_info * array_type_info
    7. | IncompleteArrayType of type_info * array_type_info
    8. | VariableArrayType of type_info * array_type_info * pointer
    9. | AtomicType of type_info * qual_type
    10. | AttributedType of type_info * attr_type_info
    11. | BTFTagAttributedType of type_info
    12. | BitIntType of type_info
    13. | BlockPointerType of type_info * qual_type
    14. | CountAttributedType of type_info
    15. | BuiltinType of type_info * builtin_type_kind
    16. | ComplexType of type_info
    17. | DecltypeType of type_info * qual_type
    18. | AutoType of type_info
    19. | DeducedTemplateSpecializationType of type_info
    20. | DependentAddressSpaceType of type_info
    21. | DependentBitIntType of type_info
    22. | DependentNameType of type_info
    23. | DependentSizedExtVectorType of type_info
    24. | DependentTemplateSpecializationType of type_info
    25. | DependentVectorType of type_info
    26. | ElaboratedType of type_info
    27. | FunctionNoProtoType of type_info * function_type_info
    28. | FunctionProtoType of type_info * function_type_info * params_type_info
    29. | InjectedClassNameType of type_info
    30. | MacroQualifiedType of type_info
    31. | ConstantMatrixType of type_info
    32. | DependentSizedMatrixType of type_info
    33. | MemberPointerType of type_info * qual_type
    34. | ObjCObjectPointerType of type_info * qual_type
    35. | ObjCObjectType of type_info * objc_object_type_info
    36. | ObjCInterfaceType of type_info * pointer
    37. | ObjCTypeParamType of type_info
    38. | PackExpansionType of type_info
    39. | PackIndexingType of type_info
    40. | ParenType of type_info * qual_type
    41. | PipeType of type_info
    42. | PointerType of type_info * qual_type
    43. | LValueReferenceType of type_info * qual_type
    44. | RValueReferenceType of type_info * qual_type
    45. | SubstTemplateTypeParmPackType of type_info
    46. | SubstTemplateTypeParmType of type_info
    47. | EnumType of type_info * pointer
    48. | RecordType of type_info * pointer
    49. | TemplateSpecializationType of type_info
    50. | TemplateTypeParmType of type_info
    51. | TypeOfExprType of type_info
    52. | TypeOfType of type_info
    53. | TypedefType of type_info * typedef_type_info
    54. | UnaryTransformType of type_info
    55. | UnresolvedUsingType of type_info
    56. | UsingType of type_info
    57. | VectorType of type_info
    58. | ExtVectorType of type_info
    type translation_unit_decl_info = Clang_ast_t.translation_unit_decl_info = {
    1. tudi_input_path : source_file;
    2. tudi_input_kind : input_kind;
    3. tudi_integer_type_widths : integer_type_widths;
    4. tudi_is_objc_arc_on : bool;
    5. tudi_types : c_type list;
    }
    type unary_expr_or_type_trait_kind = Clang_ast_t.unary_expr_or_type_trait_kind
    type unary_expr_or_type_trait_expr_info = Clang_ast_t.unary_expr_or_type_trait_expr_info = - {
    1. uttei_kind : unary_expr_or_type_trait_kind;
    2. uttei_qual_type : qual_type;
    }
    type unary_operator_kind = Clang_ast_t.unary_operator_kind
    type unary_operator_info = Clang_ast_t.unary_operator_info = {
    1. uoi_kind : unary_operator_kind;
    2. uoi_is_postfix : bool;
    }
    type unresolved_lookup_expr_info = Clang_ast_t.unresolved_lookup_expr_info = {
    1. ulei_requires_ADL : bool;
    2. ulei_is_overloaded : bool;
    3. ulei_naming_class : decl_ref option;
    }
    type using_directive_decl_info = Clang_ast_t.using_directive_decl_info = {
    1. uddi_using_location : source_location;
    2. uddi_namespace_key_location : source_location;
    3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. uddi_nominated_namespace : decl_ref option;
    }
    type value_kind = Clang_ast_t.value_kind
    type expr_info = Clang_ast_t.expr_info = {
    1. ei_qual_type : qual_type;
    2. ei_value_kind : value_kind;
    3. ei_object_kind : object_kind;
    }
    type version_tuple = Clang_ast_t.version_tuple = {
    1. vt_major : int;
    2. vt_minor : int option;
    3. vt_subminor : int option;
    4. vt_build : int option;
    }
    type availability_attr_info = Clang_ast_t.availability_attr_info = {
    1. aai_platform : string option;
    2. aai_introduced : version_tuple;
    }
    type visibility_attr = Clang_ast_t.visibility_attr =
    1. | DefaultVisibility
    2. | HiddenVisibility
    3. | ProtectedVisibility
    type attribute = Clang_ast_t.attribute
    type template_instantiation_arg_info = + {
    1. uttei_kind : unary_expr_or_type_trait_kind;
    2. uttei_qual_type : qual_type;
    }
    type unary_operator_kind = Clang_ast_t.unary_operator_kind
    type unary_operator_info = Clang_ast_t.unary_operator_info = {
    1. uoi_kind : unary_operator_kind;
    2. uoi_is_postfix : bool;
    }
    type unresolved_lookup_expr_info = Clang_ast_t.unresolved_lookup_expr_info = {
    1. ulei_requires_ADL : bool;
    2. ulei_naming_class : decl_ref option;
    }
    type using_directive_decl_info = Clang_ast_t.using_directive_decl_info = {
    1. uddi_using_location : source_location;
    2. uddi_namespace_key_location : source_location;
    3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
    4. uddi_nominated_namespace : decl_ref option;
    }
    type value_kind = Clang_ast_t.value_kind
    type expr_info = Clang_ast_t.expr_info = {
    1. ei_qual_type : qual_type;
    2. ei_value_kind : value_kind;
    3. ei_object_kind : object_kind;
    }
    type version_tuple = Clang_ast_t.version_tuple = {
    1. vt_major : int;
    2. vt_minor : int option;
    3. vt_subminor : int option;
    4. vt_build : int option;
    }
    type availability_attr_info = Clang_ast_t.availability_attr_info = {
    1. aai_platform : string option;
    2. aai_introduced : version_tuple;
    }
    type visibility_attr = Clang_ast_t.visibility_attr =
    1. | DefaultVisibility
    2. | HiddenVisibility
    3. | ProtectedVisibility
    type attribute = Clang_ast_t.attribute
    type template_instantiation_arg_info = Clang_ast_t.template_instantiation_arg_info
    type comment = Clang_ast_t.comment =
    1. | VerbatimBlockLineComment of comment_info * comment list
    2. | TextComment of comment_info * comment list
    3. | InlineCommandComment of comment_info * comment list
    4. | HTMLStartTagComment of comment_info * comment list
    5. | HTMLEndTagComment of comment_info * comment list
    6. | FullComment of comment_info * comment list
    7. | ParagraphComment of comment_info * comment list
    8. | BlockCommandComment of comment_info * comment list
    9. | VerbatimLineComment of comment_info * comment list
    10. | VerbatimBlockComment of comment_info * comment list
    11. | TParamCommandComment of comment_info * comment list
    12. | ParamCommandComment of comment_info * comment list
    type template_specialization_info = Clang_ast_t.template_specialization_info = {
    1. tsi_template_decl : pointer;
    2. tsi_specialization_args : template_instantiation_arg_info list;
    }
    type decl_info = Clang_ast_t.decl_info = {
    1. di_pointer : pointer;
    2. di_parent_pointer : pointer option;
    3. di_source_range : source_range;
    4. di_owning_module : string option;
    5. di_is_hidden : bool;
    6. di_is_implicit : bool;
    7. di_is_used : bool;
    8. di_is_this_declaration_referenced : bool;
    9. di_is_invalid_decl : bool;
    10. di_attributes : attribute list;
    11. di_full_comment : comment option;
    12. di_access : access_specifier;
    }
    type binding_decl_info = Clang_ast_t.binding_decl_info = {
    1. binding_var : var_decl_info option;
    2. bound_decl_type : qual_type option;
    }
    and block_captured_variable = Clang_ast_t.block_captured_variable = {
    1. bcv_is_by_ref : bool;
    2. bcv_is_nested : bool;
    3. bcv_variable : decl_ref option;
    4. bcv_copy_expr : stmt option;
    }
    and block_decl_info = Clang_ast_t.block_decl_info = {
    1. bdi_parameters : decl list;
    2. bdi_is_variadic : bool;
    3. bdi_captures_cxx_this : bool;
    4. bdi_captured_variables : block_captured_variable list;
    5. bdi_body : stmt option;
    6. bdi_mangled_name : string;
    }
    and coreturn_stmt_info = Clang_ast_t.coreturn_stmt_info = {
    1. coret_operand : stmt option;
    2. coret_promise_call : stmt option;
    }
    and coro_body_stmt_info = Clang_ast_t.coro_body_stmt_info = {
    1. cbs_body : pointer;
    2. cbs_promise_decl_stmt : pointer;
    3. cbs_return_value : stmt;
    }
    and cxx_catch_stmt_info = Clang_ast_t.cxx_catch_stmt_info = {
    1. xcsi_variable : decl option;
    }
    and cxx_ctor_initializer = Clang_ast_t.cxx_ctor_initializer = {
    1. xci_subject : cxx_ctor_initializer_subject;
    2. xci_source_range : source_range;
    3. xci_init_expr : stmt option;
    }
    and cxx_default_expr_info = Clang_ast_t.cxx_default_expr_info = {
    1. xdaei_init_expr : stmt option;
    }
    and cxx_method_decl_info = Clang_ast_t.cxx_method_decl_info = {
    1. xmdi_is_virtual : bool;
    2. xmdi_is_static : bool;
    3. xmdi_is_const : bool;
    4. xmdi_is_copy_assignment : bool;
    5. xmdi_is_copy_constructor : bool;
    6. xmdi_is_move_constructor : bool;
    7. xmdi_cxx_ctor_initializers : cxx_ctor_initializer list;
    8. xmdi_overriden_methods : decl_ref list;
    }
    and cxx_record_decl_info = Clang_ast_t.cxx_record_decl_info = {
    1. xrdi_bases : type_ptr list;
    2. xrdi_vbases : type_ptr list;
    3. xrdi_transitive_vbases : type_ptr list;
    4. xrdi_is_pod : bool;
    5. xrdi_is_trivially_copyable : bool;
    6. xrdi_destructor : decl_ref option;
    7. xrdi_lambda_call_operator : decl_ref option;
    8. xrdi_lambda_captures : lambda_capture_info list;
    }
    and decl = Clang_ast_t.decl =
    1. | TranslationUnitDecl of decl_info * decl list * decl_context_info - * translation_unit_decl_info
    2. | RequiresExprBodyDecl of decl_info
    3. | LinkageSpecDecl of decl_info * decl list * decl_context_info
    4. | ExternCContextDecl of decl_info
    5. | ExportDecl of decl_info
    6. | CapturedDecl of decl_info * decl list * decl_context_info
    7. | BlockDecl of decl_info * block_decl_info
    8. | TopLevelStmtDecl of decl_info
    9. | StaticAssertDecl of decl_info
    10. | PragmaDetectMismatchDecl of decl_info
    11. | PragmaCommentDecl of decl_info
    12. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
    13. | OMPThreadPrivateDecl of decl_info
    14. | OMPRequiresDecl of decl_info
    15. | OMPAllocateDecl of decl_info
    16. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
    17. | ObjCProtocolDecl of decl_info + * translation_unit_decl_info
    18. | TopLevelStmtDecl of decl_info
    19. | RequiresExprBodyDecl of decl_info
    20. | LinkageSpecDecl of decl_info * decl list * decl_context_info
    21. | ExternCContextDecl of decl_info
    22. | ExportDecl of decl_info
    23. | CapturedDecl of decl_info * decl list * decl_context_info
    24. | BlockDecl of decl_info * block_decl_info
    25. | StaticAssertDecl of decl_info
    26. | PragmaDetectMismatchDecl of decl_info
    27. | PragmaCommentDecl of decl_info
    28. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
    29. | OMPThreadPrivateDecl of decl_info
    30. | OMPRequiresDecl of decl_info
    31. | OMPAllocateDecl of decl_info
    32. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
    33. | ObjCProtocolDecl of decl_info * named_decl_info * decl list * decl_context_info @@ -128,7 +128,7 @@ {
      1. oidi_super : decl_ref option;
      2. oidi_class_interface : decl_ref option;
      3. oidi_ivar_initializers : cxx_ctor_initializer list;
      }
    and obj_c_message_expr_kind = Clang_ast_t.obj_c_message_expr_kind
    and obj_c_method_decl_info = Clang_ast_t.obj_c_method_decl_info = {
    1. omdi_is_instance_method : bool;
    2. omdi_result_type : qual_type;
    3. omdi_is_property_accessor : bool;
    4. omdi_property_decl : decl_ref option;
    5. omdi_parameters : decl list;
    6. omdi_implicit_parameters : decl list;
    7. omdi_is_variadic : bool;
    8. omdi_is_overriding : bool;
    9. omdi_is_optional : bool;
    10. omdi_body : stmt option;
    11. omdi_mangled_name : string;
    }
    and opaque_value_expr_info = Clang_ast_t.opaque_value_expr_info = {
    1. ovei_source_expr : stmt option;
    }
    and stmt = Clang_ast_t.stmt =
    1. | WhileStmt of stmt_info * stmt list
    2. | LabelStmt of stmt_info * stmt list * string
    3. | VAArgExpr of stmt_info * stmt list * expr_info
    4. | UnaryOperator of stmt_info * stmt list * expr_info * unary_operator_info
    5. | UnaryExprOrTypeTraitExpr of stmt_info * stmt list * expr_info - * unary_expr_or_type_trait_expr_info
    6. | TypoExpr of stmt_info * stmt list * expr_info
    7. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
    8. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
    9. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
    10. | StringLiteral of stmt_info * stmt list * expr_info * string list
    11. | StmtExpr of stmt_info * stmt list * expr_info
    12. | SourceLocExpr of stmt_info * stmt list * expr_info
    13. | SizeOfPackExpr of stmt_info * stmt list * expr_info
    14. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
    15. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
    16. | RequiresExpr of stmt_info * stmt list * expr_info
    17. | RecoveryExpr of stmt_info * stmt list * expr_info
    18. | PseudoObjectExpr of stmt_info * stmt list * expr_info
    19. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
    20. | ParenListExpr of stmt_info * stmt list * expr_info
    21. | ParenExpr of stmt_info * stmt list * expr_info
    22. | PackExpansionExpr of stmt_info * stmt list * expr_info
    23. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
    24. | UnresolvedLookupExpr of stmt_info + * unary_expr_or_type_trait_expr_info
    25. | TypoExpr of stmt_info * stmt list * expr_info
    26. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
    27. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
    28. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
    29. | StringLiteral of stmt_info * stmt list * expr_info * string list
    30. | StmtExpr of stmt_info * stmt list * expr_info
    31. | SourceLocExpr of stmt_info * stmt list * expr_info
    32. | SizeOfPackExpr of stmt_info * stmt list * expr_info
    33. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
    34. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
    35. | RequiresExpr of stmt_info * stmt list * expr_info
    36. | RecoveryExpr of stmt_info * stmt list * expr_info
    37. | PseudoObjectExpr of stmt_info * stmt list * expr_info
    38. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
    39. | ParenListExpr of stmt_info * stmt list * expr_info
    40. | ParenExpr of stmt_info * stmt list * expr_info
    41. | PackIndexingExpr of stmt_info * stmt list * expr_info
    42. | PackExpansionExpr of stmt_info * stmt list * expr_info
    43. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
    44. | UnresolvedLookupExpr of stmt_info * stmt list * expr_info * overload_expr_info @@ -147,13 +147,13 @@ * obj_c_availability_check_expr_info
    45. | ObjCArrayLiteral of stmt_info * stmt list * expr_info - * obj_c_array_literal_expr_info
    46. | OMPIteratorExpr of stmt_info * stmt list * expr_info
    47. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
    48. | OMPArraySectionExpr of stmt_info * stmt list * expr_info
    49. | NoInitExpr of stmt_info * stmt list * expr_info
    50. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
    51. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
    52. | MaterializeTemporaryExpr of stmt_info + * obj_c_array_literal_expr_info
    53. | OMPIteratorExpr of stmt_info * stmt list * expr_info
    54. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
    55. | NoInitExpr of stmt_info * stmt list * expr_info
    56. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
    57. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
    58. | MaterializeTemporaryExpr of stmt_info * stmt list * expr_info * materialize_temporary_expr_info
    59. | MSPropertySubscriptExpr of stmt_info * stmt list * expr_info
    60. | MSPropertyRefExpr of stmt_info * stmt list * expr_info
    61. | LambdaExpr of stmt_info * stmt list * expr_info * lambda_expr_info
    62. | IntegerLiteral of stmt_info * stmt list * expr_info * integer_literal_info
    63. | InitListExpr of stmt_info * stmt list * expr_info
    64. | ImplicitValueInitExpr of stmt_info * stmt list * expr_info
    65. | ImaginaryLiteral of stmt_info * stmt list * expr_info
    66. | GenericSelectionExpr of stmt_info * stmt list * expr_info - * generic_selection_info
    67. | GNUNullExpr of stmt_info * stmt list * expr_info
    68. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
    69. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
    70. | ConstantExpr of stmt_info * stmt list * expr_info
    71. | FloatingLiteral of stmt_info * stmt list * expr_info * string
    72. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
    73. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
    74. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
    75. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
    76. | DesignatedInitExpr of stmt_info * stmt list * expr_info
    77. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
    78. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
    79. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
    80. | CoyieldExpr of stmt_info * stmt list * expr_info
    81. | CoawaitExpr of stmt_info * stmt list * expr_info
    82. | ConvertVectorExpr of stmt_info * stmt list * expr_info
    83. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
    84. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
    85. | ChooseExpr of stmt_info * stmt list * expr_info
    86. | CharacterLiteral of stmt_info * stmt list * expr_info * int
    87. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
    88. | ObjCBridgedCastExpr of stmt_info + * generic_selection_info
    89. | GNUNullExpr of stmt_info * stmt list * expr_info
    90. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
    91. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
    92. | ConstantExpr of stmt_info * stmt list * expr_info
    93. | FloatingLiteral of stmt_info * stmt list * expr_info * string
    94. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
    95. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
    96. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
    97. | EmbedExpr of stmt_info * stmt list * expr_info
    98. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
    99. | DesignatedInitExpr of stmt_info * stmt list * expr_info
    100. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
    101. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
    102. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
    103. | CoyieldExpr of stmt_info * stmt list * expr_info
    104. | CoawaitExpr of stmt_info * stmt list * expr_info
    105. | ConvertVectorExpr of stmt_info * stmt list * expr_info
    106. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
    107. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
    108. | ChooseExpr of stmt_info * stmt list * expr_info
    109. | CharacterLiteral of stmt_info * stmt list * expr_info * int
    110. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
    111. | ObjCBridgedCastExpr of stmt_info * stmt list * expr_info * cast_expr_info @@ -208,7 +208,7 @@ * stmt list * expr_info * binary_operator_info - * compound_assign_operator_info
    112. | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
    113. | AsTypeExpr of stmt_info * stmt list * expr_info
    114. | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
    115. | ArraySubscriptExpr of stmt_info * stmt list * expr_info
    116. | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
    117. | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
    118. | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
    119. | ConditionalOperator of stmt_info * stmt list * expr_info
    120. | BinaryConditionalOperator of stmt_info * stmt list * expr_info
    121. | AttributedStmt of stmt_info * stmt list * attribute list
    122. | SwitchStmt of stmt_info * stmt list * switch_stmt_info
    123. | DefaultStmt of stmt_info * stmt list
    124. | CaseStmt of stmt_info * stmt list
    125. | SEHTryStmt of stmt_info * stmt list
    126. | SEHLeaveStmt of stmt_info * stmt list
    127. | SEHFinallyStmt of stmt_info * stmt list
    128. | SEHExceptStmt of stmt_info * stmt list
    129. | ReturnStmt of stmt_info * stmt list
    130. | ObjCForCollectionStmt of stmt_info * stmt list
    131. | ObjCAutoreleasePoolStmt of stmt_info * stmt list
    132. | ObjCAtTryStmt of stmt_info * stmt list
    133. | ObjCAtThrowStmt of stmt_info * stmt list
    134. | ObjCAtSynchronizedStmt of stmt_info * stmt list
    135. | ObjCAtFinallyStmt of stmt_info * stmt list
    136. | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
    137. | OMPTeamsDirective of stmt_info * stmt list
    138. | OMPTaskyieldDirective of stmt_info * stmt list
    139. | OMPTaskwaitDirective of stmt_info * stmt list
    140. | OMPTaskgroupDirective of stmt_info * stmt list
    141. | OMPTaskDirective of stmt_info * stmt list
    142. | OMPTargetUpdateDirective of stmt_info * stmt list
    143. | OMPTargetTeamsDirective of stmt_info * stmt list
    144. | OMPTargetParallelForDirective of stmt_info * stmt list
    145. | OMPTargetParallelDirective of stmt_info * stmt list
    146. | OMPTargetExitDataDirective of stmt_info * stmt list
    147. | OMPTargetEnterDataDirective of stmt_info * stmt list
    148. | OMPTargetDirective of stmt_info * stmt list
    149. | OMPTargetDataDirective of stmt_info * stmt list
    150. | OMPSingleDirective of stmt_info * stmt list
    151. | OMPSectionsDirective of stmt_info * stmt list
    152. | OMPSectionDirective of stmt_info * stmt list
    153. | OMPScopeDirective of stmt_info * stmt list
    154. | OMPScanDirective of stmt_info * stmt list
    155. | OMPParallelSectionsDirective of stmt_info * stmt list
    156. | OMPParallelMasterDirective of stmt_info * stmt list
    157. | OMPParallelMaskedDirective of stmt_info * stmt list
    158. | OMPParallelDirective of stmt_info * stmt list
    159. | OMPOrderedDirective of stmt_info * stmt list
    160. | OMPMetaDirective of stmt_info * stmt list
    161. | OMPMasterDirective of stmt_info * stmt list
    162. | OMPMaskedDirective of stmt_info * stmt list
    163. | OMPUnrollDirective of stmt_info * stmt list
    164. | OMPTileDirective of stmt_info * stmt list
    165. | OMPTeamsGenericLoopDirective of stmt_info * stmt list
    166. | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
    167. | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
    168. | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
    169. | OMPTeamsDistributeDirective of stmt_info * stmt list
    170. | OMPTaskLoopSimdDirective of stmt_info * stmt list
    171. | OMPTaskLoopDirective of stmt_info * stmt list
    172. | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
    173. | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
    174. | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
    175. | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
    176. | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
    177. | OMPTargetSimdDirective of stmt_info * stmt list
    178. | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
    179. | OMPTargetParallelForSimdDirective of stmt_info * stmt list
    180. | OMPSimdDirective of stmt_info * stmt list
    181. | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
    182. | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
    183. | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
    184. | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
    185. | OMPParallelGenericLoopDirective of stmt_info * stmt list
    186. | OMPParallelForSimdDirective of stmt_info * stmt list
    187. | OMPParallelForDirective of stmt_info * stmt list
    188. | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
    189. | OMPMasterTaskLoopDirective of stmt_info * stmt list
    190. | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
    191. | OMPMaskedTaskLoopDirective of stmt_info * stmt list
    192. | OMPGenericLoopDirective of stmt_info * stmt list
    193. | OMPForSimdDirective of stmt_info * stmt list
    194. | OMPForDirective of stmt_info * stmt list
    195. | OMPDistributeSimdDirective of stmt_info * stmt list
    196. | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
    197. | OMPDistributeParallelForDirective of stmt_info * stmt list
    198. | OMPDistributeDirective of stmt_info * stmt list
    199. | OMPInteropDirective of stmt_info * stmt list
    200. | OMPFlushDirective of stmt_info * stmt list
    201. | OMPErrorDirective of stmt_info * stmt list
    202. | OMPDispatchDirective of stmt_info * stmt list
    203. | OMPDepobjDirective of stmt_info * stmt list
    204. | OMPCriticalDirective of stmt_info * stmt list
    205. | OMPCancellationPointDirective of stmt_info * stmt list
    206. | OMPCancelDirective of stmt_info * stmt list
    207. | OMPBarrierDirective of stmt_info * stmt list
    208. | OMPAtomicDirective of stmt_info * stmt list
    209. | OMPCanonicalLoop of stmt_info * stmt list
    210. | NullStmt of stmt_info * stmt list
    211. | MSDependentExistsStmt of stmt_info * stmt list
    212. | IndirectGotoStmt of stmt_info * stmt list
    213. | IfStmt of stmt_info * stmt list * if_stmt_info
    214. | GotoStmt of stmt_info * stmt list * goto_stmt_info
    215. | ForStmt of stmt_info * stmt list
    216. | DoStmt of stmt_info * stmt list
    217. | DeclStmt of stmt_info * stmt list * decl list
    218. | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
    219. | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
    220. | ContinueStmt of stmt_info * stmt list
    221. | CompoundStmt of stmt_info * stmt list
    222. | CapturedStmt of stmt_info * stmt list
    223. | CXXTryStmt of stmt_info * stmt list
    224. | CXXForRangeStmt of stmt_info * stmt list
    225. | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
    226. | BreakStmt of stmt_info * stmt list
    227. | MSAsmStmt of stmt_info * stmt list
    228. | GCCAsmStmt of stmt_info * stmt list
    and switch_stmt_info = Clang_ast_t.switch_stmt_info = {
    1. ssi_init : pointer option;
    2. ssi_cond_var : stmt option;
    3. ssi_cond : pointer;
    4. ssi_body : pointer;
    5. ssi_is_all_enum_cases_covered : bool;
    }
    and template_decl_info = Clang_ast_t.template_decl_info = {
    1. tdi_specializations : decl list;
    }
    and var_decl_info = Clang_ast_t.var_decl_info = {
    1. vdi_is_global : bool;
    2. vdi_is_extern : bool;
    3. vdi_is_static : bool;
    4. vdi_is_static_local : bool;
    5. vdi_is_static_data_member : bool;
    6. vdi_is_constexpr : bool;
    7. vdi_is_init_ice : bool;
    8. vdi_init_expr : stmt option;
    9. vdi_is_init_expr_cxx11_constant : bool;
    10. vdi_parm_index_in_function : int option;
    }
    type lookup = Clang_ast_t.lookup = {
    1. lup_decl_name : string;
    2. lup_decl_refs : decl_ref list;
    }
    type lookups = Clang_ast_t.lookups = {
    1. lups_decl_ref : decl_ref;
    2. lups_primary_context_pointer : pointer option;
    3. lups_lookups : lookup list;
    4. lups_has_undeserialized_decls : bool;
    }
    val validate_access_specifier : + * compound_assign_operator_info
  • | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
  • | AsTypeExpr of stmt_info * stmt list * expr_info
  • | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
  • | ArraySubscriptExpr of stmt_info * stmt list * expr_info
  • | ArraySectionExpr of stmt_info * stmt list * expr_info
  • | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
  • | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
  • | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
  • | ConditionalOperator of stmt_info * stmt list * expr_info
  • | BinaryConditionalOperator of stmt_info * stmt list * expr_info
  • | AttributedStmt of stmt_info * stmt list * attribute list
  • | SwitchStmt of stmt_info * stmt list * switch_stmt_info
  • | DefaultStmt of stmt_info * stmt list
  • | CaseStmt of stmt_info * stmt list
  • | SEHTryStmt of stmt_info * stmt list
  • | SEHLeaveStmt of stmt_info * stmt list
  • | SEHFinallyStmt of stmt_info * stmt list
  • | SEHExceptStmt of stmt_info * stmt list
  • | ReturnStmt of stmt_info * stmt list
  • | OpenACCLoopConstruct of stmt_info * stmt list
  • | OpenACCComputeConstruct of stmt_info * stmt list
  • | ObjCForCollectionStmt of stmt_info * stmt list
  • | ObjCAutoreleasePoolStmt of stmt_info * stmt list
  • | ObjCAtTryStmt of stmt_info * stmt list
  • | ObjCAtThrowStmt of stmt_info * stmt list
  • | ObjCAtSynchronizedStmt of stmt_info * stmt list
  • | ObjCAtFinallyStmt of stmt_info * stmt list
  • | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
  • | OMPTeamsDirective of stmt_info * stmt list
  • | OMPTaskyieldDirective of stmt_info * stmt list
  • | OMPTaskwaitDirective of stmt_info * stmt list
  • | OMPTaskgroupDirective of stmt_info * stmt list
  • | OMPTaskDirective of stmt_info * stmt list
  • | OMPTargetUpdateDirective of stmt_info * stmt list
  • | OMPTargetTeamsDirective of stmt_info * stmt list
  • | OMPTargetParallelForDirective of stmt_info * stmt list
  • | OMPTargetParallelDirective of stmt_info * stmt list
  • | OMPTargetExitDataDirective of stmt_info * stmt list
  • | OMPTargetEnterDataDirective of stmt_info * stmt list
  • | OMPTargetDirective of stmt_info * stmt list
  • | OMPTargetDataDirective of stmt_info * stmt list
  • | OMPSingleDirective of stmt_info * stmt list
  • | OMPSectionsDirective of stmt_info * stmt list
  • | OMPSectionDirective of stmt_info * stmt list
  • | OMPScopeDirective of stmt_info * stmt list
  • | OMPScanDirective of stmt_info * stmt list
  • | OMPParallelSectionsDirective of stmt_info * stmt list
  • | OMPParallelMasterDirective of stmt_info * stmt list
  • | OMPParallelMaskedDirective of stmt_info * stmt list
  • | OMPParallelDirective of stmt_info * stmt list
  • | OMPOrderedDirective of stmt_info * stmt list
  • | OMPMetaDirective of stmt_info * stmt list
  • | OMPMasterDirective of stmt_info * stmt list
  • | OMPMaskedDirective of stmt_info * stmt list
  • | OMPUnrollDirective of stmt_info * stmt list
  • | OMPTileDirective of stmt_info * stmt list
  • | OMPReverseDirective of stmt_info * stmt list
  • | OMPInterchangeDirective of stmt_info * stmt list
  • | OMPTeamsGenericLoopDirective of stmt_info * stmt list
  • | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
  • | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
  • | OMPTeamsDistributeDirective of stmt_info * stmt list
  • | OMPTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPTaskLoopDirective of stmt_info * stmt list
  • | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
  • | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
  • | OMPTargetSimdDirective of stmt_info * stmt list
  • | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
  • | OMPTargetParallelForSimdDirective of stmt_info * stmt list
  • | OMPSimdDirective of stmt_info * stmt list
  • | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
  • | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
  • | OMPParallelGenericLoopDirective of stmt_info * stmt list
  • | OMPParallelForSimdDirective of stmt_info * stmt list
  • | OMPParallelForDirective of stmt_info * stmt list
  • | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPMasterTaskLoopDirective of stmt_info * stmt list
  • | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
  • | OMPMaskedTaskLoopDirective of stmt_info * stmt list
  • | OMPGenericLoopDirective of stmt_info * stmt list
  • | OMPForSimdDirective of stmt_info * stmt list
  • | OMPForDirective of stmt_info * stmt list
  • | OMPDistributeSimdDirective of stmt_info * stmt list
  • | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
  • | OMPDistributeParallelForDirective of stmt_info * stmt list
  • | OMPDistributeDirective of stmt_info * stmt list
  • | OMPInteropDirective of stmt_info * stmt list
  • | OMPFlushDirective of stmt_info * stmt list
  • | OMPErrorDirective of stmt_info * stmt list
  • | OMPDispatchDirective of stmt_info * stmt list
  • | OMPDepobjDirective of stmt_info * stmt list
  • | OMPCriticalDirective of stmt_info * stmt list
  • | OMPCancellationPointDirective of stmt_info * stmt list
  • | OMPCancelDirective of stmt_info * stmt list
  • | OMPBarrierDirective of stmt_info * stmt list
  • | OMPAtomicDirective of stmt_info * stmt list
  • | OMPCanonicalLoop of stmt_info * stmt list
  • | NullStmt of stmt_info * stmt list
  • | MSDependentExistsStmt of stmt_info * stmt list
  • | IndirectGotoStmt of stmt_info * stmt list
  • | IfStmt of stmt_info * stmt list * if_stmt_info
  • | GotoStmt of stmt_info * stmt list * goto_stmt_info
  • | ForStmt of stmt_info * stmt list
  • | DoStmt of stmt_info * stmt list
  • | DeclStmt of stmt_info * stmt list * decl list
  • | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
  • | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
  • | ContinueStmt of stmt_info * stmt list
  • | CompoundStmt of stmt_info * stmt list
  • | CapturedStmt of stmt_info * stmt list
  • | CXXTryStmt of stmt_info * stmt list
  • | CXXForRangeStmt of stmt_info * stmt list
  • | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
  • | BreakStmt of stmt_info * stmt list
  • | MSAsmStmt of stmt_info * stmt list
  • | GCCAsmStmt of stmt_info * stmt list
  • and switch_stmt_info = Clang_ast_t.switch_stmt_info = {
    1. ssi_init : pointer option;
    2. ssi_cond_var : stmt option;
    3. ssi_cond : pointer;
    4. ssi_body : pointer;
    5. ssi_is_all_enum_cases_covered : bool;
    }
    and template_decl_info = Clang_ast_t.template_decl_info = {
    1. tdi_specializations : decl list;
    }
    and var_decl_info = Clang_ast_t.var_decl_info = {
    1. vdi_is_global : bool;
    2. vdi_is_extern : bool;
    3. vdi_is_static : bool;
    4. vdi_is_static_local : bool;
    5. vdi_is_static_data_member : bool;
    6. vdi_is_constexpr : bool;
    7. vdi_is_init_ice : bool;
    8. vdi_init_expr : stmt option;
    9. vdi_is_init_expr_cxx11_constant : bool;
    10. vdi_parm_index_in_function : int option;
    }
    type lookup = Clang_ast_t.lookup = {
    1. lup_decl_name : string;
    2. lup_decl_refs : decl_ref list;
    }
    type lookups = Clang_ast_t.lookups = {
    1. lups_decl_ref : decl_ref;
    2. lups_primary_context_pointer : pointer option;
    3. lups_lookups : lookup list;
    4. lups_has_undeserialized_decls : bool;
    }
    val validate_access_specifier : Atdgen_runtime.Util.Validation.path -> access_specifier -> Atdgen_runtime.Util.Validation.error option

    Validate a value of type access_specifier.

    val validate_atomic_expr_kind : @@ -319,7 +319,13 @@ named_decl_info

    Create a record of type named_decl_info.

    val validate_named_decl_info : Atdgen_runtime.Util.Validation.path -> named_decl_info -> - Atdgen_runtime.Util.Validation.error option

    Validate a value of type named_decl_info.

    val validate_obj_c_access_control : + Atdgen_runtime.Util.Validation.error option

    Validate a value of type named_decl_info.

    val create_namespace_decl_info : + ?ndi_is_inline:bool -> + unit -> + namespace_decl_info

    Create a record of type namespace_decl_info.

    val validate_namespace_decl_info : + Atdgen_runtime.Util.Validation.path -> + namespace_decl_info -> + Atdgen_runtime.Util.Validation.error option

    Validate a value of type namespace_decl_info.

    val validate_obj_c_access_control : Atdgen_runtime.Util.Validation.path -> obj_c_access_control -> Atdgen_runtime.Util.Validation.error option

    Validate a value of type obj_c_access_control.

    val create_obj_c_availability_check_expr_info : @@ -600,14 +606,7 @@ member_expr_info

    Create a record of type member_expr_info.

    val validate_member_expr_info : Atdgen_runtime.Util.Validation.path -> member_expr_info -> - Atdgen_runtime.Util.Validation.error option

    Validate a value of type member_expr_info.

    val create_namespace_decl_info : - ?ndi_is_inline:bool -> - ?ndi_original_namespace:decl_ref -> - unit -> - namespace_decl_info

    Create a record of type namespace_decl_info.

    val validate_namespace_decl_info : - Atdgen_runtime.Util.Validation.path -> - namespace_decl_info -> - Atdgen_runtime.Util.Validation.error option

    Validate a value of type namespace_decl_info.

    val create_nested_name_specifier_loc : + Atdgen_runtime.Util.Validation.error option

    Validate a value of type member_expr_info.

    val create_nested_name_specifier_loc : nnsl_kind:specifier_kind -> ?nnsl_ref:decl_ref -> unit -> @@ -796,7 +795,6 @@ unary_operator_info -> Atdgen_runtime.Util.Validation.error option

    Validate a value of type unary_operator_info.

    val create_unresolved_lookup_expr_info : ?ulei_requires_ADL:bool -> - ?ulei_is_overloaded:bool -> ?ulei_naming_class:decl_ref -> unit -> unresolved_lookup_expr_info

    Create a record of type unresolved_lookup_expr_info.

    val validate_unresolved_lookup_expr_info : diff --git a/website/static/odoc/next/infer/ATDGenerated/Jsonbug_j/index.html b/website/static/odoc/next/infer/ATDGenerated/Jsonbug_j/index.html index 2a0d6502dec..df2fae132f8 100644 --- a/website/static/odoc/next/infer/ATDGenerated/Jsonbug_j/index.html +++ b/website/static/odoc/next/infer/ATDGenerated/Jsonbug_j/index.html @@ -5,7 +5,7 @@ bool
    type transitive_callee_kind = Jsonbug_t.transitive_callee_kind
    val equal_transitive_callee_kind : transitive_callee_kind -> transitive_callee_kind -> - bool
    type transitive_callee = Jsonbug_t.transitive_callee = {
    1. callsite_filename : string;
    2. callsite_absolute_position_in_file : int;
    3. caller_name : string;
    4. callsite_relative_position_in_caller : int;
    5. kind : transitive_callee_kind;
    6. resolution : transitive_callee_resolution;
    }
    val equal_transitive_callee : transitive_callee -> transitive_callee -> bool
    type taint_extra = Jsonbug_t.taint_extra = {
    1. taint_source : string option;
    2. taint_sink : string option;
    3. taint_policy_privacy_effect : string option;
    4. tainted_expression : string option;
    5. report_as_issue_type : string option;
    6. report_as_category : string option;
    }
    val equal_taint_extra : taint_extra -> taint_extra -> bool
    type missed_capture = Jsonbug_t.missed_capture = {
    1. class_name : string;
    }
    val equal_missed_capture : missed_capture -> missed_capture -> bool
    type loc = Jsonbug_t.loc = {
    1. file : string;
    2. lnum : int;
    3. cnum : int;
    4. enum : int;
    }
    val equal_loc : loc -> loc -> bool
    type json_trace_item = Jsonbug_t.json_trace_item = {
    1. level : int;
    2. filename : string;
    3. line_number : int;
    4. column_number : int;
    5. description : string;
    }
    val equal_json_trace_item : json_trace_item -> json_trace_item -> bool
    type config_usage_extra = Jsonbug_t.config_usage_extra = {
    1. config_name : string;
    2. function_name : string;
    3. filename : string;
    4. line_number : int;
    }
    val equal_config_usage_extra : config_usage_extra -> config_usage_extra -> bool
    type extra = Jsonbug_t.extra = {
    1. cost_polynomial : string option;
    2. cost_degree : int option;
    3. copy_type : string option;
    4. config_usage_extra : config_usage_extra option;
    5. taint_extra : taint_extra option;
    6. transitive_callees : transitive_callee list;
    7. transitive_missed_captures : missed_capture list;
    }
    val equal_extra : extra -> extra -> bool
    type autofix = Jsonbug_t.autofix = {
    1. original : string;
    2. replacement : string;
    }
    val equal_autofix : autofix -> autofix -> bool
    type jsonbug = Jsonbug_t.jsonbug = {
    1. bug_type : string;
    2. qualifier : string;
    3. suggestion : string option;
    4. severity : string;
    5. category : string;
    6. line : int;
    7. column : int;
    8. procedure : string;
    9. procedure_start_line : int;
    10. file : string;
    11. bug_trace : json_trace_item list;
    12. bug_trace_length : int;
    13. bug_trace_max_depth : int;
    14. key : string;
    15. node_key : string option;
    16. hash : string;
    17. dotty : string option;
    18. infer_source_loc : loc option;
    19. bug_type_hum : string;
    20. traceview_id : int option;
    21. censored_reason : string option;
    22. access : string option;
    23. extras : extra option;
    24. autofix : autofix option;
    25. suppressed : bool;
    }
    val equal_jsonbug : jsonbug -> jsonbug -> bool
    type report = Jsonbug_t.report
    val equal_report : report -> report -> bool
    val write_transitive_callee_resolution : + bool
    type transitive_callee = Jsonbug_t.transitive_callee = {
    1. callsite_filename : string;
    2. callsite_absolute_position_in_file : int;
    3. caller_name : string;
    4. callsite_relative_position_in_caller : int;
    5. kind : transitive_callee_kind;
    6. resolution : transitive_callee_resolution;
    }
    val equal_transitive_callee : transitive_callee -> transitive_callee -> bool
    type taint_extra = Jsonbug_t.taint_extra = {
    1. taint_source : string option;
    2. taint_sink : string option;
    3. taint_policy_privacy_effect : string option;
    4. tainted_expression : string option;
    5. report_as_issue_type : string option;
    6. report_as_category : string option;
    }
    val equal_taint_extra : taint_extra -> taint_extra -> bool
    type missed_capture = Jsonbug_t.missed_capture = {
    1. class_name : string;
    }
    val equal_missed_capture : missed_capture -> missed_capture -> bool
    type loc = Jsonbug_t.loc = {
    1. file : string;
    2. lnum : int;
    3. cnum : int;
    4. enum : int;
    }
    val equal_loc : loc -> loc -> bool
    type json_trace_item = Jsonbug_t.json_trace_item = {
    1. level : int;
    2. filename : string;
    3. line_number : int;
    4. column_number : int;
    5. description : string;
    }
    val equal_json_trace_item : json_trace_item -> json_trace_item -> bool
    type config_usage_extra = Jsonbug_t.config_usage_extra = {
    1. config_name : string;
    2. function_name : string;
    3. filename : string;
    4. line_number : int;
    }
    val equal_config_usage_extra : config_usage_extra -> config_usage_extra -> bool
    type extra = Jsonbug_t.extra = {
    1. cost_polynomial : string option;
    2. cost_degree : int option;
    3. copy_type : string option;
    4. config_usage_extra : config_usage_extra option;
    5. taint_extra : taint_extra option;
    6. transitive_callees : transitive_callee list;
    7. transitive_missed_captures : missed_capture list;
    }
    val equal_extra : extra -> extra -> bool
    type additional_autofix = Jsonbug_t.additional_autofix = {
    1. line : int;
    2. column : int;
    3. original : string;
    4. replacement : string;
    }
    val equal_additional_autofix : additional_autofix -> additional_autofix -> bool
    type autofix = Jsonbug_t.autofix = {
    1. original : string option;
    2. replacement : string option;
    3. additional : additional_autofix list option;
    }
    val equal_autofix : autofix -> autofix -> bool
    type jsonbug = Jsonbug_t.jsonbug = {
    1. bug_type : string;
    2. qualifier : string;
    3. suggestion : string option;
    4. severity : string;
    5. category : string;
    6. line : int;
    7. column : int;
    8. procedure : string;
    9. procedure_start_line : int;
    10. file : string;
    11. bug_trace : json_trace_item list;
    12. bug_trace_length : int;
    13. bug_trace_max_depth : int;
    14. key : string;
    15. node_key : string option;
    16. hash : string;
    17. dotty : string option;
    18. infer_source_loc : loc option;
    19. bug_type_hum : string;
    20. traceview_id : int option;
    21. censored_reason : string option;
    22. access : string option;
    23. extras : extra option;
    24. autofix : autofix option;
    25. suppressed : bool;
    }
    val equal_jsonbug : jsonbug -> jsonbug -> bool
    type report = Jsonbug_t.report
    val equal_report : report -> report -> bool
    val write_transitive_callee_resolution : Stdlib.Buffer.t -> transitive_callee_resolution -> unit

    Output a JSON value of type transitive_callee_resolution.

    val string_of_transitive_callee_resolution : @@ -40,4 +40,7 @@ json_trace_item

    Input JSON data of type json_trace_item.

    val json_trace_item_of_string : string -> json_trace_item

    Deserialize JSON data of type json_trace_item.

    val write_config_usage_extra : Stdlib.Buffer.t -> config_usage_extra -> unit

    Output a JSON value of type config_usage_extra.

    val string_of_config_usage_extra : ?len:int -> config_usage_extra -> string

    Serialize a value of type config_usage_extra into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_config_usage_extra : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> - config_usage_extra

    Input JSON data of type config_usage_extra.

    val config_usage_extra_of_string : string -> config_usage_extra

    Deserialize JSON data of type config_usage_extra.

    val write_extra : Stdlib.Buffer.t -> extra -> unit

    Output a JSON value of type extra.

    val string_of_extra : ?len:int -> extra -> string

    Serialize a value of type extra into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_extra : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> extra

    Input JSON data of type extra.

    val extra_of_string : string -> extra

    Deserialize JSON data of type extra.

    val write_autofix : Stdlib.Buffer.t -> autofix -> unit

    Output a JSON value of type autofix.

    val string_of_autofix : ?len:int -> autofix -> string

    Serialize a value of type autofix into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_autofix : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> autofix

    Input JSON data of type autofix.

    val autofix_of_string : string -> autofix

    Deserialize JSON data of type autofix.

    val write_jsonbug : Stdlib.Buffer.t -> jsonbug -> unit

    Output a JSON value of type jsonbug.

    val string_of_jsonbug : ?len:int -> jsonbug -> string

    Serialize a value of type jsonbug into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_jsonbug : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> jsonbug

    Input JSON data of type jsonbug.

    val jsonbug_of_string : string -> jsonbug

    Deserialize JSON data of type jsonbug.

    val write_report : Stdlib.Buffer.t -> report -> unit

    Output a JSON value of type report.

    val string_of_report : ?len:int -> report -> string

    Serialize a value of type report into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_report : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> report

    Input JSON data of type report.

    val report_of_string : string -> report

    Deserialize JSON data of type report.

    + config_usage_extra

    Input JSON data of type config_usage_extra.

    val config_usage_extra_of_string : string -> config_usage_extra

    Deserialize JSON data of type config_usage_extra.

    val write_extra : Stdlib.Buffer.t -> extra -> unit

    Output a JSON value of type extra.

    val string_of_extra : ?len:int -> extra -> string

    Serialize a value of type extra into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_extra : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> extra

    Input JSON data of type extra.

    val extra_of_string : string -> extra

    Deserialize JSON data of type extra.

    val write_additional_autofix : Stdlib.Buffer.t -> additional_autofix -> unit

    Output a JSON value of type additional_autofix.

    val string_of_additional_autofix : ?len:int -> additional_autofix -> string

    Serialize a value of type additional_autofix into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_additional_autofix : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + additional_autofix

    Input JSON data of type additional_autofix.

    val additional_autofix_of_string : string -> additional_autofix

    Deserialize JSON data of type additional_autofix.

    val write_autofix : Stdlib.Buffer.t -> autofix -> unit

    Output a JSON value of type autofix.

    val string_of_autofix : ?len:int -> autofix -> string

    Serialize a value of type autofix into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_autofix : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> autofix

    Input JSON data of type autofix.

    val autofix_of_string : string -> autofix

    Deserialize JSON data of type autofix.

    val write_jsonbug : Stdlib.Buffer.t -> jsonbug -> unit

    Output a JSON value of type jsonbug.

    val string_of_jsonbug : ?len:int -> jsonbug -> string

    Serialize a value of type jsonbug into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_jsonbug : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> jsonbug

    Input JSON data of type jsonbug.

    val jsonbug_of_string : string -> jsonbug

    Deserialize JSON data of type jsonbug.

    val write_report : Stdlib.Buffer.t -> report -> unit

    Output a JSON value of type report.

    val string_of_report : ?len:int -> report -> string

    Serialize a value of type report into a JSON string.

    • parameter len

      specifies the initial length of the buffer used internally. Default: 1024.

    val read_report : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> report

    Input JSON data of type report.

    val report_of_string : string -> report

    Deserialize JSON data of type report.

    diff --git a/website/static/odoc/next/infer/ATDGenerated/Jsonbug_t/index.html b/website/static/odoc/next/infer/ATDGenerated/Jsonbug_t/index.html index 1d1f6337d79..245e1c8954b 100644 --- a/website/static/odoc/next/infer/ATDGenerated/Jsonbug_t/index.html +++ b/website/static/odoc/next/infer/ATDGenerated/Jsonbug_t/index.html @@ -5,4 +5,4 @@ bool
    type transitive_callee_kind = [
    1. | `Static
    2. | `Virtual
    3. | `Closure
    ]
    val equal_transitive_callee_kind : transitive_callee_kind -> transitive_callee_kind -> - bool
    type transitive_callee = {
    1. callsite_filename : string;
    2. callsite_absolute_position_in_file : int;
    3. caller_name : string;
    4. callsite_relative_position_in_caller : int;
    5. kind : transitive_callee_kind;
    6. resolution : transitive_callee_resolution;
    }
    val equal_transitive_callee : transitive_callee -> transitive_callee -> bool
    type taint_extra = {
    1. taint_source : string option;
    2. taint_sink : string option;
    3. taint_policy_privacy_effect : string option;
    4. tainted_expression : string option;
    5. report_as_issue_type : string option;
    6. report_as_category : string option;
    }
    val equal_taint_extra : taint_extra -> taint_extra -> bool
    type missed_capture = {
    1. class_name : string;
    }
    val equal_missed_capture : missed_capture -> missed_capture -> bool
    type loc = {
    1. file : string;
    2. lnum : int;
    3. cnum : int;
    4. enum : int;
    }
    val equal_loc : loc -> loc -> bool
    type json_trace_item = {
    1. level : int;
    2. filename : string;
    3. line_number : int;
    4. column_number : int;
    5. description : string;
    }
    val equal_json_trace_item : json_trace_item -> json_trace_item -> bool
    type config_usage_extra = {
    1. config_name : string;
    2. function_name : string;
    3. filename : string;
    4. line_number : int;
    }
    val equal_config_usage_extra : config_usage_extra -> config_usage_extra -> bool
    type extra = {
    1. cost_polynomial : string option;
    2. cost_degree : int option;
    3. copy_type : string option;
    4. config_usage_extra : config_usage_extra option;
    5. taint_extra : taint_extra option;
    6. transitive_callees : transitive_callee list;
    7. transitive_missed_captures : missed_capture list;
    }
    val equal_extra : extra -> extra -> bool
    type autofix = {
    1. original : string;
    2. replacement : string;
    }
    val equal_autofix : autofix -> autofix -> bool
    type jsonbug = {
    1. bug_type : string;
    2. qualifier : string;
    3. suggestion : string option;
    4. severity : string;
    5. category : string;
    6. line : int;
    7. column : int;
    8. procedure : string;
    9. procedure_start_line : int;
    10. file : string;
    11. bug_trace : json_trace_item list;
    12. bug_trace_length : int;
    13. bug_trace_max_depth : int;
    14. key : string;
    15. node_key : string option;
    16. hash : string;
    17. dotty : string option;
    18. infer_source_loc : loc option;
    19. bug_type_hum : string;
    20. traceview_id : int option;
    21. censored_reason : string option;
    22. access : string option;
    23. extras : extra option;
    24. autofix : autofix option;
    25. suppressed : bool;
    }
    val equal_jsonbug : jsonbug -> jsonbug -> bool
    type report = jsonbug list
    val equal_report : report -> report -> bool
    + bool
    type transitive_callee = {
    1. callsite_filename : string;
    2. callsite_absolute_position_in_file : int;
    3. caller_name : string;
    4. callsite_relative_position_in_caller : int;
    5. kind : transitive_callee_kind;
    6. resolution : transitive_callee_resolution;
    }
    val equal_transitive_callee : transitive_callee -> transitive_callee -> bool
    type taint_extra = {
    1. taint_source : string option;
    2. taint_sink : string option;
    3. taint_policy_privacy_effect : string option;
    4. tainted_expression : string option;
    5. report_as_issue_type : string option;
    6. report_as_category : string option;
    }
    val equal_taint_extra : taint_extra -> taint_extra -> bool
    type missed_capture = {
    1. class_name : string;
    }
    val equal_missed_capture : missed_capture -> missed_capture -> bool
    type loc = {
    1. file : string;
    2. lnum : int;
    3. cnum : int;
    4. enum : int;
    }
    val equal_loc : loc -> loc -> bool
    type json_trace_item = {
    1. level : int;
    2. filename : string;
    3. line_number : int;
    4. column_number : int;
    5. description : string;
    }
    val equal_json_trace_item : json_trace_item -> json_trace_item -> bool
    type config_usage_extra = {
    1. config_name : string;
    2. function_name : string;
    3. filename : string;
    4. line_number : int;
    }
    val equal_config_usage_extra : config_usage_extra -> config_usage_extra -> bool
    type extra = {
    1. cost_polynomial : string option;
    2. cost_degree : int option;
    3. copy_type : string option;
    4. config_usage_extra : config_usage_extra option;
    5. taint_extra : taint_extra option;
    6. transitive_callees : transitive_callee list;
    7. transitive_missed_captures : missed_capture list;
    }
    val equal_extra : extra -> extra -> bool
    type additional_autofix = {
    1. line : int;
    2. column : int;
    3. original : string;
    4. replacement : string;
    }
    val equal_additional_autofix : additional_autofix -> additional_autofix -> bool
    type autofix = {
    1. original : string option;
    2. replacement : string option;
    3. additional : additional_autofix list option;
    }
    val equal_autofix : autofix -> autofix -> bool
    type jsonbug = {
    1. bug_type : string;
    2. qualifier : string;
    3. suggestion : string option;
    4. severity : string;
    5. category : string;
    6. line : int;
    7. column : int;
    8. procedure : string;
    9. procedure_start_line : int;
    10. file : string;
    11. bug_trace : json_trace_item list;
    12. bug_trace_length : int;
    13. bug_trace_max_depth : int;
    14. key : string;
    15. node_key : string option;
    16. hash : string;
    17. dotty : string option;
    18. infer_source_loc : loc option;
    19. bug_type_hum : string;
    20. traceview_id : int option;
    21. censored_reason : string option;
    22. access : string option;
    23. extras : extra option;
    24. autofix : autofix option;
    25. suppressed : bool;
    }
    val equal_jsonbug : jsonbug -> jsonbug -> bool
    type report = jsonbug list
    val equal_report : report -> report -> bool
    diff --git a/website/static/odoc/next/infer/Absint/TaskSchedulerTypes/index.html b/website/static/odoc/next/infer/Absint/TaskSchedulerTypes/index.html index 895f343dda5..43cb08e4fb3 100644 --- a/website/static/odoc/next/infer/Absint/TaskSchedulerTypes/index.html +++ b/website/static/odoc/next/infer/Absint/TaskSchedulerTypes/index.html @@ -1,2 +1,2 @@ -TaskSchedulerTypes (infer.Absint.TaskSchedulerTypes)

    Module Absint.TaskSchedulerTypes

    type target =
    1. | Procname of {
      1. proc_name : IR.Procname.t;
      2. specialization : IR.Specialization.t option;
      }
    2. | File of IBase.SourceFile.t
    type analysis_result =
    1. | Ok
      (*

      Analysis finished normally.

      *)
    2. | RaceOn of {
      1. dependency_filename : string;
      }
      (*

      Analysis stopped when trying to access the summary of a callee and that callee is being analyzed by another worker. dependency_filename is the path to the callee's lock file.

      *)
    +TaskSchedulerTypes (infer.Absint.TaskSchedulerTypes)

    Module Absint.TaskSchedulerTypes

    type target =
    1. | Procname of {
      1. proc_name : IR.Procname.t;
      2. specialization : IR.Specialization.t option;
      }
    2. | File of IBase.SourceFile.t
    type analysis_result =
    1. | Ok
      (*

      Analysis finished normally.

      *)
    2. | RaceOn of {
      1. dependency_filenames : string list;
      }
      (*

      Analysis stopped when trying to access the summary of a callee and that callee is being analyzed by another worker. dependency_filenames are in the path to the callee's lock file.

      *)
    diff --git a/website/static/odoc/next/infer/Backend/ProcLocker/index.html b/website/static/odoc/next/infer/Backend/ProcLocker/index.html index cf94019d454..125c5f09a7f 100644 --- a/website/static/odoc/next/infer/Backend/ProcLocker/index.html +++ b/website/static/odoc/next/infer/Backend/ProcLocker/index.html @@ -1,2 +1,7 @@ -ProcLocker (infer.Backend.ProcLocker)

    Module Backend.ProcLocker

    val setup : unit -> unit

    This should be called once before trying to lock Anything.

    val try_lock : IR.Procname.t -> bool

    true = the lock belongs to the calling process. false = the lock belongs to a different worker

    val unlock : IR.Procname.t -> unit

    This will work as a cleanup function because after calling unlock all the workers that need an unlocked Proc should find it's summary already Cached. Throws if the lock had not been taken.

    val is_locked : proc_filename:string -> bool
    +ProcLocker (infer.Backend.ProcLocker)

    Module Backend.ProcLocker

    val setup : unit -> unit

    This should be called once before trying to lock Anything.

    val try_lock : + IR.Procname.t -> + [ `AlreadyLockedByUs | `LockedByAnotherProcess | `LockAcquired ]
    val unlock : IR.Procname.t -> unit

    This will work as a cleanup function because after calling unlock all the workers that need an unlocked Proc should find it's summary already Cached. Throws if the lock had not been taken.

    val lock_all : + IStdlib.IStd.Pid.t -> + string list -> + [> `FailedToLockAll | `LocksAcquired of string list ]
    val unlock_all : string list -> unit
    diff --git a/website/static/odoc/next/infer/Backend/RestartScheduler/index.html b/website/static/odoc/next/infer/Backend/RestartScheduler/index.html index f7f588187de..418ef31163d 100644 --- a/website/static/odoc/next/infer/Backend/RestartScheduler/index.html +++ b/website/static/odoc/next/infer/Backend/RestartScheduler/index.html @@ -2,7 +2,11 @@ RestartScheduler (infer.Backend.RestartScheduler)

    Module Backend.RestartScheduler

    val setup : unit -> unit
    val with_lock : f:(unit -> 'a) -> IR.Procname.t -> 'a

    Run f after having taken a lock on the given Procname.t and unlock after. If the lock is already held by another worker, throw RestartSchedulerException.ProcnameAlreadyLocked so that the dependency can be sent to the scheduler process. Finally, account for time spent analysing each procedure as useful (finished analysis) or not (an exception was thrown, terminating analysis early).

    val with_lock : + get_actives:(unit -> IR.SpecializedProcname.t list) -> + f:(unit -> 'a) -> + IR.Procname.t -> + 'a

    Run f after having taken a lock on the given Procname.t and unlock after. If the lock is already held by another worker, throw RestartSchedulerException.ProcnameAlreadyLocked so that the dependency can be sent to the scheduler process. Finally, account for time spent analysing each procedure as useful (finished analysis) or not (an exception was thrown, terminating analysis early).

    val finish : Absint.TaskSchedulerTypes.analysis_result option -> 'a -> 'a option
    diff --git a/website/static/odoc/next/infer/ClangFrontend/CType_to_sil_type/index.html b/website/static/odoc/next/infer/ClangFrontend/CType_to_sil_type/index.html index 2106cc4bcc3..a33ce0c8f7a 100644 --- a/website/static/odoc/next/infer/ClangFrontend/CType_to_sil_type/index.html +++ b/website/static/odoc/next/infer/ClangFrontend/CType_to_sil_type/index.html @@ -3,6 +3,8 @@ ?is_const:bool -> ATDGenerated.Clang_ast_t.builtin_type_kind -> IR.Typ.t
    val qual_type_to_sil_type : + ?attr_info:ATDGenerated.Clang_ast_t.attr_type_info -> + ?from_block:bool -> (IR.Tenv.t -> ATDGenerated.Clang_ast_t.decl -> IR.Typ.desc) -> IR.Tenv.t -> ATDGenerated.Clang_ast_t.qual_type -> diff --git a/website/static/odoc/next/infer/IBase/Config/index.html b/website/static/odoc/next/infer/IBase/Config/index.html index f7d673cb2a6..580d63b6287 100644 --- a/website/static/odoc/next/infer/IBase/Config/index.html +++ b/website/static/odoc/next/infer/IBase/Config/index.html @@ -8,5 +8,5 @@ | `MLeak_unknown ] list
    val biabduction_models_mode : bool
    val biabduction_monitor_prop_size : bool
    val biabduction_nelseg : bool
    val biabduction_only_footprint : bool
    val biabduction_seconds_per_iteration : float option
    val biabduction_symops_per_iteration : int option
    val biabduction_trace_join : bool
    val biabduction_trace_rearrange : bool
    val biabduction_type_size : bool
    val biabduction_unsafe_malloc : bool
    val biabduction_worklist_mode : int
    val biabduction_write_dotty : bool
    val bo_assume_void : bool
    val bo_bottom_as_default : bool
    val bo_context_sensitive_allocsites : bool
    val bo_debug : int
    val bo_exit_frontend_gener_vars : bool
    val bo_field_depth_limit : int option
    val bo_max_cfg_size : int
    val bo_sound_unknown_sets_join : bool
    val bootclasspath : string option
    val buck : bool
    val buck2_build_args : string list
    val buck2_build_args_no_inline : string list
    val buck2_bxl_capture_file_block_list : string list
    val buck2_bxl_target : string option
    val buck2_inferconfig_target : string option
    val buck2_infertoolchain_target : string option
    val buck2_isolation_dir : string option
    val buck2_query_deps : bool
    val buck2_root : string
    val buck_block_list : string list
    val buck_build_args : string list
    val buck_build_args_no_inline : string list
    val buck_cache_mode : bool
    val buck_clang_use_toolchain_config : bool
    val buck_dependency_depth : int option
    val buck_java_heap_size_gb : int option
    val buck_java_suppress_config : bool
    val buck_merge_all_deps : bool
    val buck_mode : BuckMode.t option
    val buck_out : string
    val buck_out_gen : string
    val buck_targets_block_list : string list
    val capture : bool
    val capture_block_list : string * Yojson.Safe.t
    val capture_textual : string list
    val censor_report : ((bool * IStdlib.IStd.Str.regexp) * (bool * IStdlib.IStd.Str.regexp) * string) - list
    val cfg_json : string option
    val changed_files_index : string option
    val check_version : string option
    val clang_ast_file : [ `Biniou of string | `Yojson of string ] option
    val clang_block_listed_flags : string list
    val clang_block_listed_flags_with_arg : string list
    val clang_compound_literal_init_limit : int
    val clang_extra_flags : string list
    val clang_frontend_action_string : string
    val clang_idirafter_to_override_regex : IStdlib.IStd.Str.regexp option
    val clang_ignore_regex : IStdlib.IStd.Str.regexp option
    val clang_isystem_to_override_regex : IStdlib.IStd.Str.regexp option
    val clang_libcxx_include_to_override_regex : string option
    val classpath : string option
    val compaction_if_heap_greater_equal_to_GB : int
    val compaction_minimum_interval_s : int
    val complete_capture_from : string option
    val config_impact_config_field_patterns : IStdlib.IStd.Str.regexp list
    val config_impact_config_function_patterns : IStdlib.IStd.Str.regexp list
    val config_impact_config_param_patterns : IStdlib.IStd.Str.regexp list
    val config_impact_current : string option
    val config_impact_data_file : string option
    val config_impact_issues_tests : string option
    val config_impact_max_callees_to_print : int
    val config_impact_previous : string option
    val config_impact_strict_mode : bool
    val config_impact_strict_mode_paths : IStdlib.IStd.Str.regexp list
    val config_impact_test_paths : IStdlib.IStd.Str.regexp list
    val continue_analysis : bool
    val continue_capture : bool
    val cost_issues_tests : string option
    val cost_log_unknown_calls : bool
    val cost_suppress_func_ptr : bool
    val costs_current : string option
    val costs_previous : string option
    val cxx : bool
    val cxx_scope_guards : Yojson.Safe.t
    val data_flow_queries_on_topl : string list
    val dbwriter : bool
    val debug_exceptions : bool
    val debug_level_analysis : int
    val debug_level_capture : int
    val debug_level_report : int
    val debug_mode : bool
    val deduplicate : bool
    val dependency_mode : bool
    val detach_analysis_dependency : bool
    val developer_mode : bool
    val dict_missing_key_var_block_list : IStdlib.IStd.Str.regexp option
    val differential_filter_files : string option
    val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
    val dotty_cfg_libs : bool
    val dump_duplicate_symbols : bool
    val dump_textual : bool
    val dynamic_dispatch_json_file_path : string option
    val erlang_ast_dir : string option
    val erlang_check_return : bool
    val erlang_list_unfold_depth : int
    val erlang_reliability : bool
    val erlang_skip_compile : bool
    val erlang_with_otp_specs : bool
    val extract_capture_from : string option
    val fail_on_bug : bool
    val fcp_apple_clang : string option
    val fcp_syntax_only : bool
    val file_renamings : string option
    val files_to_analyze_index : string option
    val filter_paths : bool
    val filtering : bool
    val force_delete_results_dir : bool
    val force_integration : build_system option
    val from_json_config_impact_report : string
    val from_json_costs_report : string
    val from_json_report : string
    val frontend_stats : bool
    val frontend_tests : bool
    val generated_classes : string option
    val genrule_mode : bool
    val global_tenv : bool
    val hackc_binary : string option
    val hack_builder_patterns : (string * string list) list
    val hack_builtin_models : string
    val hack_models : string list
    val hack_naming_table : string option
    val hack_verify_capture_only : bool
    val help_checker : Checker.t list
    val help_issue_type : IssueType.t list
    val hoisting_report_only_expensive : bool
    val html : bool
    val icfg_dotty_outfile : string option
    val implicit_sdk_root : string option
    val impurity_report_immutable_modifications : bool
    val inclusive_cost : bool
    val incremental_analysis : bool
    val infer_binary : string

    absolute canonicalized path to the current executable

    val infer_is_clang : bool
    val infer_is_javac : bool
    val inferconfig_file : string option
    val inline_func_pointer_for_testing : string option
    val invalidate_only : bool
    val is_checker_enabled : Checker.t -> bool
    val issues_tests : string option
    val issues_tests_fields : IssuesTestField.t list
    val java_debug_source_file_info : string option
    val java_jar_compiler : string option
    val java_read_modules : bool
    val java_source_parser_experimental : bool
    val java_version : int option
    val javac_classes_out : string
    val job_id : string option
    val jobs : int
    val keep_going : bool
    val kotlin_capture : bool
    val lineage_source : string list
    val lineage_sink : string list
    val lineage_sanitizers : string list
    val lineage_limit : int option
    val lineage_dedup : bool
    val lineage_field_depth : int
    val lineage_field_max_cfg_size : int option
    val lineage_field_width : int
    val lineage_include_builtins : bool
    val lineage_json_report : bool
    val lineage_keep_temporaries : bool
    val lineage_max_cfg_size : int option
    val lineage_prevent_cycles : bool
    val lineage_seed : int
    val lineage_variant_width : int
    val list_categories : bool
    val list_checkers : bool
    val list_issue_types : bool
    val liveness_block_list_var_regex : IStdlib.IStd.Str.regexp option
    val liveness_dangerous_classes : Yojson.Safe.t
    val liveness_ignored_constant : string list
    val load_average : float option
    val lock_model : Yojson.Safe.t
    val log_pulse_disjunct_increase_after_model_call : bool
    val log_pulse_coverage : bool
    val log_missing_deps : bool
    val margin_html : int
    val mark_unchanged_procs : bool
    val mask_sajwa_exceptions : bool
    val max_nesting : int option
    val memtrace_analysis : bool
    val memtrace_sampling_rate : float
    val merge_capture : string list
    val merge_report : string list
    val merge_summaries : string list
    val modeled_expensive : string * Yojson.Safe.t
    val never_returning_null : string * Yojson.Safe.t
    val noescaping_function_list : string list
    val no_censor_report : IStdlib.IStd.Str.regexp list
    val no_translate_libs : bool
    val nullable_annotation : string option
    val only_cheap_debug : bool
    val oom_threshold : int option
    val objc_block_execution_macro : string option
    val objc_synthesize_dealloc : bool
    val pmd_xml : bool
    val preanalysis_html : bool
    val print_active_checkers : bool
    val print_builtins : bool
    val print_jbir : bool
    val print_logs : bool
    val print_types : bool
    val print_using_diff : bool
    val procedures : bool
    val procedures_attributes : bool
    val procedures_call_graph : bool
    val procedures_callees : bool
    val procedures_cfg : bool
    val procedures_definedness : bool
    val procedures_filter : string option
    val procedures_name : bool
    val procedures_source_file : bool
    val procedures_summary : bool
    val procedures_summary_json : bool
    val procedures_summary_skip_empty : bool
    val process_clang_ast : bool
    val procs_to_analyze_index : string option
    val progress_bar : [ `MultiLine | `Plain | `Quiet ]
    val project_root : string
    val pulse_balanced_disjuncts_strategy : bool
    val pulse_cut_to_one_path_procedures_pattern : IStdlib.IStd.Str.regexp option
    val pulse_force_continue : bool
    val pulse_havoc_arguments : bool
    val pulse_inline_global_init_func_pointer : bool
    val pulse_intraprocedural_only : bool
    val pulse_log_summary_count : bool
    val pulse_log_unknown_calls : bool
    val pulse_log_unknown_calls_sampled : int option
    val pulse_max_cfg_size : int
    val pulse_max_disjuncts : int
    val pulse_max_heap : int option
    val pulse_model_abort : string list
    val pulse_model_alloc_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_cheap_copy_type : IStdlib.IStd.Str.regexp option
    val pulse_model_free_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_malloc_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_realloc_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_release_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_return_first_arg : IStdlib.IStd.Str.regexp option
    val pulse_model_return_nonnull : IStdlib.IStd.Str.regexp option
    val pulse_model_return_this : IStdlib.IStd.Str.regexp option
    val pulse_model_returns_copy_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_skip_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_transfer_ownership : string list
    val pulse_model_transfer_ownership_namespace : (string * string) list
    val pulse_models_for_erlang : string list
    val pulse_monitor_transitive_callees : bool
    val pulse_monitor_transitive_missed_captures : bool
    val pulse_nullsafe_report_npe : bool
    val pulse_nullsafe_report_npe_as_separate_issue_type : bool
    val pulse_prevent_non_disj_top : bool
    val pulse_recency_limit : int
    val pulse_report_flows_from_taint_source : string option
    val pulse_report_flows_to_taint_sink : string option
    val pulse_report_issues_for_tests : bool
    val pulse_report_latent_issues : bool
    val pulse_sanity_checks : bool
    val pulse_skip_procedures : IStdlib.IStd.Str.regexp option
    val pulse_specialization_iteration_limit : int
    val pulse_specialization_limit : int
    val pulse_specialization_partial : bool
    val pulse_taint_config : pulse_taint_config
    val pulse_taint_follow_field_accesses : bool
    val pulse_taint_opaque_files : string list
    val pulse_taint_short_traces : bool
    val pulse_taint_skip_sources : bool
    val pulse_transitive_access_config : string list
    val pulse_transitive_access_enabled : bool
    val pulse_transitive_access_verbose : bool
    val pulse_unsafe_malloc : bool
    val pulse_widen_threshold : int
    val pure_by_default : bool
    val pyc_file : string list
    val python_builtin_models : string
    val qualified_cpp_name_block_list : string list
    val quiet : bool
    val racerd_always_report_java : bool
    val racerd_guardedby : bool
    val racerd_ignore_classes : IStdlib.IStd.String.Set.t
    val reactive_mode : bool
    val reactive_capture : bool
    val reanalyze : bool
    val relative_path_backtrack : int
    val replay_analysis_schedule : bool
    val replay_ondemand_should_error : bool
    val report : bool
    val report_block_list_files_containing : string list
    val report_console_limit : int option
    val report_current : string option
    val report_custom_error : bool
    val report_force_relative_path : bool
    val report_formatter : [ `No_formatter | `Phabricator_formatter ]
    val report_path_regex_allow_list : string list
    val report_path_regex_block_list : string list
    val report_previous : string option
    val report_suppress_errors : string list
    val reports_include_ml_loc : bool
    val rest : string list
    val results_dir : string
    val run_as_child : int option
    val sarif : bool
    val scheduler : scheduler
    val scope_leakage_config : Yojson.Safe.t
    val scuba_logging : bool
    val scuba_normals : string IStdlib.IStd.String.Map.t
    val scuba_tags : string list IStdlib.IStd.String.Map.t
    val select : [ `All | `Select of int ] option
    val show_buckets : bool
    val shrink_analysis_db : bool
    val siof_check_iostreams : bool
    val siof_safe_methods : string list
    val skip_analysis_in_path : IStdlib.IStd.Str.regexp option
    val skip_analysis_in_path_skips_compilation : bool
    val skip_duplicated_types : bool
    val skip_non_capture_clang_commands : bool
    val skip_translation_headers : string list
    val source_files : bool
    val source_files_call_graph : bool
    val source_files_call_graph_partition : int option
    val source_files_cfg : bool
    val source_files_filter : string option
    val source_files_freshly_captured : bool
    val source_files_procedure_names : bool
    val source_files_type_environment : bool
    val source_preview : bool
    val sourcepath : string option
    val sources : string list
    val sqlite_cache_size : int
    val sqlite_lock_timeout : int
    val sqlite_max_blob_size : int
    val sqlite_mmap_size : int
    val sqlite_page_size : int
    val sqlite_vfs : string option
    val starvation_c_function_pointer_models : Yojson.Safe.t
    val starvation_c_named_threads_annot : Yojson.Safe.t
    val starvation_skip_analysis : Yojson.Safe.t
    val starvation_strict_mode : bool
    val starvation_whole_program : bool
    val stats_dir_current : string option
    val stats_dir_previous : string option
    val struct_as_cpp_class : bool
    val store_analysis_schedule : bool
    val subtype_multirange : bool
    val suffix_match_changed_files : bool
    val summaries_caches_max_size : int
    val suppress_lint_ignore_types : bool
    val suppressions : bool
    val tenv_json : string option
    val testing_mode : bool
    val threadsafe_aliases : Yojson.Safe.t
    val timeout : float option
    val top_longest_proc_duration_size : int option
    val topl_max_conjuncts : int
    val topl_max_disjuncts : int
    val topl_properties : ToplAst.t list
    val topl_report_latent_issues : bool
    val trace_absarray : bool
    val trace_error : bool
    val trace_events : bool
    val trace_ondemand : bool
    val trace_topl : bool
    val unix_fork : bool
    val workspace : string option
    val write_html : bool
    val write_html_allow_list_regex : string list
    val write_website : string option
    val xcode_developer_dir : string option
    val xcode_isysroot_suffix : string option
    val xcpretty : bool

    Configuration values derived from command-line options

    val toplevel_results_dir : string

    In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir.

    val java_package_is_external : string -> bool

    Check if a Java package is external to the repository

    val scuba_execution_id : IStdlib.IStd.Int64.t option

    a random number to (hopefully) uniquely identify this run

    val is_originator : bool

    is the current process (forked from) the root of the Infer process tree

    Global variables with initial values specified by command-line options

    val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list
    + list
    val cfg_json : string option
    val changed_files_index : string option
    val check_version : string option
    val clang_ast_file : [ `Biniou of string | `Yojson of string ] option
    val clang_block_listed_flags : string list
    val clang_block_listed_flags_with_arg : string list
    val clang_compound_literal_init_limit : int
    val clang_extra_flags : string list
    val clang_frontend_action_string : string
    val clang_idirafter_to_override_regex : IStdlib.IStd.Str.regexp option
    val clang_ignore_regex : IStdlib.IStd.Str.regexp option
    val clang_isystem_to_override_regex : IStdlib.IStd.Str.regexp option
    val clang_libcxx_include_to_override_regex : string option
    val classpath : string option
    val compaction_if_heap_greater_equal_to_GB : int
    val compaction_minimum_interval_s : int
    val complete_capture_from : string option
    val config_impact_config_field_patterns : IStdlib.IStd.Str.regexp list
    val config_impact_config_function_patterns : IStdlib.IStd.Str.regexp list
    val config_impact_config_param_patterns : IStdlib.IStd.Str.regexp list
    val config_impact_current : string option
    val config_impact_data_file : string option
    val config_impact_issues_tests : string option
    val config_impact_max_callees_to_print : int
    val config_impact_previous : string option
    val config_impact_strict_mode : bool
    val config_impact_strict_mode_paths : IStdlib.IStd.Str.regexp list
    val config_impact_test_paths : IStdlib.IStd.Str.regexp list
    val continue_analysis : bool
    val continue_capture : bool
    val cost_issues_tests : string option
    val cost_log_unknown_calls : bool
    val cost_suppress_func_ptr : bool
    val costs_current : string option
    val costs_previous : string option
    val cxx : bool
    val cxx_scope_guards : Yojson.Safe.t
    val data_flow_queries_on_topl : string list
    val dbwriter : bool
    val debug_exceptions : bool
    val debug_level_analysis : int
    val debug_level_capture : int
    val debug_level_report : int
    val debug_mode : bool
    val deduplicate : bool
    val dependency_mode : bool
    val detach_analysis_dependency : bool
    val developer_mode : bool
    val dict_missing_key_var_block_list : IStdlib.IStd.Str.regexp option
    val differential_filter_files : string option
    val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
    val dotty_cfg_libs : bool
    val dump_duplicate_symbols : bool
    val dump_textual : bool
    val dynamic_dispatch_json_file_path : string option
    val erlang_ast_dir : string option
    val erlang_check_return : bool
    val erlang_list_unfold_depth : int
    val erlang_reliability : bool
    val erlang_skip_compile : bool
    val erlang_with_otp_specs : bool
    val extract_capture_from : string option
    val fail_on_bug : bool
    val fcp_apple_clang : string option
    val fcp_syntax_only : bool
    val file_renamings : string option
    val files_to_analyze_index : string option
    val filter_paths : bool
    val filtering : bool
    val force_delete_results_dir : bool
    val force_integration : build_system option
    val from_json_config_impact_report : string
    val from_json_costs_report : string
    val from_json_report : string
    val frontend_stats : bool
    val frontend_tests : bool
    val generated_classes : string option
    val genrule_mode : bool
    val global_tenv : bool
    val hackc_binary : string option
    val hack_builder_patterns : (string * string list) list
    val hack_builtin_models : string
    val hack_models : string list
    val hack_naming_table : string option
    val hack_verify_capture_only : bool
    val help_checker : Checker.t list
    val help_issue_type : IssueType.t list
    val hoisting_report_only_expensive : bool
    val html : bool
    val icfg_dotty_outfile : string option
    val implicit_sdk_root : string option
    val impurity_report_immutable_modifications : bool
    val inclusive_cost : bool
    val incremental_analysis : bool
    val infer_binary : string

    absolute canonicalized path to the current executable

    val infer_is_clang : bool
    val infer_is_javac : bool
    val inferconfig_file : string option
    val inline_func_pointer_for_testing : string option
    val invalidate_only : bool
    val is_checker_enabled : Checker.t -> bool
    val issues_tests : string option
    val issues_tests_fields : IssuesTestField.t list
    val java_debug_source_file_info : string option
    val java_jar_compiler : string option
    val java_read_modules : bool
    val java_source_parser_experimental : bool
    val java_version : int option
    val javac_classes_out : string
    val job_id : string option
    val jobs : int
    val keep_going : bool
    val kotlin_capture : bool
    val lineage_source : string list
    val lineage_sink : string list
    val lineage_sanitizers : string list
    val lineage_limit : int option
    val lineage_dedup : bool
    val lineage_field_depth : int
    val lineage_field_max_cfg_size : int option
    val lineage_field_width : int
    val lineage_include_builtins : bool
    val lineage_json_report : bool
    val lineage_keep_temporaries : bool
    val lineage_max_cfg_size : int option
    val lineage_prevent_cycles : bool
    val lineage_seed : int
    val lineage_variant_width : int
    val list_categories : bool
    val list_checkers : bool
    val list_issue_types : bool
    val liveness_block_list_var_regex : IStdlib.IStd.Str.regexp option
    val liveness_dangerous_classes : Yojson.Safe.t
    val liveness_ignored_constant : string list
    val load_average : float option
    val lock_model : Yojson.Safe.t
    val log_pulse_disjunct_increase_after_model_call : bool
    val log_pulse_coverage : bool
    val log_missing_deps : bool
    val margin_html : int
    val mark_unchanged_procs : bool
    val mask_sajwa_exceptions : bool
    val max_nesting : int option
    val memtrace_analysis : bool
    val memtrace_sampling_rate : float
    val merge_capture : string list
    val merge_report : string list
    val merge_summaries : string list
    val modeled_expensive : string * Yojson.Safe.t
    val never_returning_null : string * Yojson.Safe.t
    val noescaping_function_list : string list
    val no_censor_report : IStdlib.IStd.Str.regexp list
    val no_translate_libs : bool
    val nullable_annotation : string option
    val only_cheap_debug : bool
    val oom_threshold : int option
    val objc_block_execution_macro : string option
    val objc_synthesize_dealloc : bool
    val pmd_xml : bool
    val preanalysis_html : bool
    val print_active_checkers : bool
    val print_builtins : bool
    val print_jbir : bool
    val print_logs : bool
    val print_types : bool
    val print_using_diff : bool
    val procedures : bool
    val procedures_attributes : bool
    val procedures_call_graph : bool
    val procedures_callees : bool
    val procedures_cfg : bool
    val procedures_definedness : bool
    val procedures_filter : string option
    val procedures_name : bool
    val procedures_source_file : bool
    val procedures_summary : bool
    val procedures_summary_json : bool
    val procedures_summary_skip_empty : bool
    val process_clang_ast : bool
    val procs_to_analyze_index : string option
    val progress_bar : [ `MultiLine | `Plain | `Quiet ]
    val project_root : string
    val pulse_balanced_disjuncts_strategy : bool
    val pulse_cut_to_one_path_procedures_pattern : IStdlib.IStd.Str.regexp option
    val pulse_force_continue : bool
    val pulse_havoc_arguments : bool
    val pulse_inline_global_init_func_pointer : bool
    val pulse_intraprocedural_only : bool
    val pulse_log_summary_count : bool
    val pulse_log_unknown_calls : bool
    val pulse_log_unknown_calls_sampled : int option
    val pulse_max_cfg_size : int
    val pulse_max_disjuncts : int
    val pulse_max_heap : int option
    val pulse_model_abort : string list
    val pulse_model_alloc_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_cheap_copy_type : IStdlib.IStd.Str.regexp option
    val pulse_model_free_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_malloc_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_realloc_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_release_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_return_first_arg : IStdlib.IStd.Str.regexp option
    val pulse_model_return_nonnull : IStdlib.IStd.Str.regexp option
    val pulse_model_return_this : IStdlib.IStd.Str.regexp option
    val pulse_model_returns_copy_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_skip_pattern : IStdlib.IStd.Str.regexp option
    val pulse_model_transfer_ownership : string list
    val pulse_model_transfer_ownership_namespace : (string * string) list
    val pulse_model_unreachable : string list
    val pulse_models_for_erlang : string list
    val pulse_monitor_transitive_callees : bool
    val pulse_monitor_transitive_missed_captures : bool
    val pulse_nullsafe_report_npe : bool
    val pulse_nullsafe_report_npe_as_separate_issue_type : bool
    val pulse_prevent_non_disj_top : bool
    val pulse_recency_limit : int
    val pulse_report_flows_from_taint_source : string option
    val pulse_report_flows_to_taint_sink : string option
    val pulse_report_issues_for_tests : bool
    val pulse_report_latent_issues : bool
    val pulse_sanity_checks : bool
    val pulse_skip_procedures : IStdlib.IStd.Str.regexp option
    val pulse_specialization_iteration_limit : int
    val pulse_specialization_limit : int
    val pulse_specialization_partial : bool
    val pulse_taint_config : pulse_taint_config
    val pulse_taint_follow_field_accesses : bool
    val pulse_taint_opaque_files : string list
    val pulse_taint_short_traces : bool
    val pulse_taint_skip_sources : bool
    val pulse_transitive_access_config : string list
    val pulse_transitive_access_enabled : bool
    val pulse_transitive_access_verbose : bool
    val pulse_unsafe_malloc : bool
    val pulse_widen_threshold : int
    val pure_by_default : bool
    val pyc_file : string list
    val python_files_index : string option
    val qualified_cpp_name_block_list : string list
    val quiet : bool
    val racerd_always_report_java : bool
    val racerd_guardedby : bool
    val racerd_ignore_classes : IStdlib.IStd.String.Set.t
    val reactive_mode : bool
    val reactive_capture : bool
    val reanalyze : bool
    val relative_path_backtrack : int
    val replay_analysis_schedule : bool
    val replay_ondemand_should_error : bool
    val report : bool
    val report_block_list_files_containing : string list
    val report_console_limit : int option
    val report_current : string option
    val report_custom_error : bool
    val report_force_relative_path : bool
    val report_formatter : [ `No_formatter | `Phabricator_formatter ]
    val report_path_regex_allow_list : string list
    val report_path_regex_block_list : string list
    val report_previous : string option
    val report_suppress_errors : string list
    val reports_include_ml_loc : bool
    val rest : string list
    val results_dir : string
    val run_as_child : int option
    val run_python_interpreter : bool
    val sarif : bool
    val scheduler : scheduler
    val scope_leakage_config : Yojson.Safe.t
    val scuba_logging : bool
    val scuba_normals : string IStdlib.IStd.String.Map.t
    val scuba_tags : string list IStdlib.IStd.String.Map.t
    val select : [ `All | `Select of int ] option
    val show_buckets : bool
    val shrink_analysis_db : bool
    val siof_check_iostreams : bool
    val siof_safe_methods : string list
    val skip_analysis_in_path : IStdlib.IStd.Str.regexp option
    val skip_analysis_in_path_skips_compilation : bool
    val skip_duplicated_types : bool
    val skip_non_capture_clang_commands : bool
    val skip_translation_headers : string list
    val source_files : bool
    val source_files_call_graph : bool
    val source_files_call_graph_partition : int option
    val source_files_cfg : bool
    val source_files_filter : string option
    val source_files_freshly_captured : bool
    val source_files_procedure_names : bool
    val source_files_type_environment : bool
    val source_preview : bool
    val sourcepath : string option
    val sources : string list
    val sqlite_cache_size : int
    val sqlite_lock_timeout : int
    val sqlite_max_blob_size : int
    val sqlite_mmap_size : int
    val sqlite_page_size : int
    val sqlite_vfs : string option
    val starvation_c_function_pointer_models : Yojson.Safe.t
    val starvation_c_named_threads_annot : Yojson.Safe.t
    val starvation_skip_analysis : Yojson.Safe.t
    val starvation_strict_mode : bool
    val starvation_whole_program : bool
    val stats_dir_current : string option
    val stats_dir_previous : string option
    val struct_as_cpp_class : bool
    val store_analysis_schedule : bool
    val subtype_multirange : bool
    val suffix_match_changed_files : bool
    val summaries_caches_max_size : int
    val suppress_lint_ignore_types : bool
    val suppressions : bool
    val tenv_json : string option
    val testing_mode : bool
    val threadsafe_aliases : Yojson.Safe.t
    val timeout : float option
    val top_longest_proc_duration_size : int option
    val topl_max_conjuncts : int
    val topl_max_disjuncts : int
    val topl_properties : ToplAst.t list
    val topl_report_latent_issues : bool
    val trace_absarray : bool
    val trace_error : bool
    val trace_events : bool
    val trace_ondemand : bool
    val trace_topl : bool
    val unix_fork : bool
    val workspace : string option
    val write_html : bool
    val write_html_allow_list_regex : string list
    val write_website : string option
    val xcode_developer_dir : string option
    val xcode_isysroot_suffix : string option
    val xcpretty : bool

    Configuration values derived from command-line options

    val toplevel_results_dir : string

    In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir.

    val java_package_is_external : string -> bool

    Check if a Java package is external to the repository

    val scuba_execution_id : IStdlib.IStd.Int64.t option

    a random number to (hopefully) uniquely identify this run

    val is_originator : bool

    is the current process (forked from) the root of the Infer process tree

    Global variables with initial values specified by command-line options

    val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list
    diff --git a/website/static/odoc/next/infer/IBase/IssueType/index.html b/website/static/odoc/next/infer/IBase/IssueType/index.html index dda5caae9fe..b9be894dc16 100644 --- a/website/static/odoc/next/infer/IBase/IssueType/index.html +++ b/website/static/odoc/next/infer/IBase/IssueType/index.html @@ -6,4 +6,4 @@ ?user_documentation:string -> severity -> Checker.t -> - t

    Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum` but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type.

    val checker_can_report : Checker.t -> t -> bool

    Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.

    val set_enabled : t -> bool -> unit
    val abduction_case_not_implemented : t
    val arbitrary_code_execution_under_lock : t
    val array_of_pointsto : t
    val array_out_of_bounds_l1 : t
    val array_out_of_bounds_l2 : t
    val array_out_of_bounds_l3 : t
    val assert_failure : t
    val bad_footprint : t
    val bad_arg : latent:bool -> t
    val bad_generator : latent:bool -> t
    val bad_key : latent:bool -> t
    val bad_map : latent:bool -> t
    val bad_record : latent:bool -> t
    val bad_return : latent:bool -> t
    val biabduction_analysis_stops : t
    val biabduction_retain_cycle : t
    val block_parameter_not_null_checked : t
    val buffer_overrun_l1 : t
    val buffer_overrun_l2 : t
    val buffer_overrun_l3 : t
    val buffer_overrun_l4 : t
    val buffer_overrun_l5 : t
    val buffer_overrun_s2 : t
    val buffer_overrun_u5 : t
    val cannot_star : t
    val captured_strong_self : t
    val checkers_allocates_memory : t

    Warning name when a performance critical method directly or indirectly calls a method allocating memory

    val checkers_annotation_reachability_error : t
    val checkers_calls_expensive_method : t

    Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive

    val checkers_expensive_overrides_unexpensive : t

    Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive

    val checkers_fragment_retain_view : t
    val class_cast_exception : t
    val compared_to_null_and_dereferenced : t
    val complexity_increase : kind:CostKind.t -> is_on_ui_thread:bool -> t
    val condition_always_false : t
    val condition_always_true : t
    val config_impact_analysis : t
    val config_impact_analysis_strict : t
    val pulse_config_usage : t
    val pulse_const_refable : t
    val constant_address_dereference : latent:bool -> t
    val cxx_string_captured_in_block : t
    val cxx_ref_captured_in_block : t
    val dangling_pointer_dereference : t
    val dangling_pointer_dereference_maybe : t
    val data_flow_to_sink : t
    val dead_store : t
    val deadlock : t
    val divide_by_zero : t
    val do_not_report : t

    an issue type that should never be reported

    val empty_vector_access : t
    val expensive_cost_call : kind:CostKind.t -> t
    val failure_exe : t
    val guardedby_violation : t
    val impure_function : t
    val inefficient_keyset_iterator : t
    val inferbo_alloc_is_big : t
    val inferbo_alloc_is_negative : t
    val inferbo_alloc_is_zero : t
    val inferbo_alloc_may_be_big : t
    val inferbo_alloc_may_be_negative : t
    val infinite_cost_call : kind:CostKind.t -> t
    val inherently_dangerous_function : t
    val integer_overflow_l1 : t
    val integer_overflow_l2 : t
    val integer_overflow_l5 : t
    val integer_overflow_u5 : t
    val interface_not_thread_safe : t
    val internal_error : t
    val invalid_sil : t
    val invariant_call : t
    val ipc_on_ui_thread : t
    val lab_resource_leak : t
    val leak_after_array_abstraction : t
    val leak_in_footprint : t
    val leak_unknown_origin : t
    val lockless_violation : t
    val lock_consistency_violation : t
    val expensive_loop_invariant_call : t
    val memory_leak : t
    val missing_fld : t
    val missing_required_prop : t
    val mixed_self_weakself : t
    val modifies_immutable : t
    val multiple_weakself : t
    val mutual_recursion_cycle : t
    val nil_block_call : latent:bool -> t
    val nil_insertion_into_collection : latent:bool -> t
    val nil_messaging_to_non_pod : latent:bool -> t
    val no_match_of_rhs : latent:bool -> t
    val no_matching_case_clause : latent:bool -> t
    val no_matching_else_clause : latent:bool -> t
    val no_matching_function_clause : latent:bool -> t
    val no_true_branch_in_if : latent:bool -> t
    val no_matching_branch_in_try : latent:bool -> t
    val null_argument : latent:bool -> t
    val null_dereference : t
    val nullptr_dereference : latent:bool -> t
    val nullptr_dereference_in_nullsafe_class : latent:bool -> t
    val optional_empty_access : latent:bool -> t
    val precondition_not_found : t
    val precondition_not_met : t
    val premature_nil_termination : t
    val pulse_cannot_instantiate_abstract_class : t
    val pulse_dict_missing_key : t
    val pulse_dynamic_type_mismatch : t
    val pulse_transitive_access : t
    val pulse_memory_leak_c : t
    val pulse_memory_leak_cpp : t
    val pulse_resource_leak : t
    val pulse_unawaited_awaitable : t
    val pulse_unfinished_builder : t
    val pulse_uninitialized_const : t
    val pure_function : t
    val readonly_shared_ptr_param : t
    val regex_op_on_ui_thread : t
    val resource_leak : t
    val retain_cycle : t
    val retain_cycle_no_weak_info : t
    val scope_leakage : t
    val self_in_block_passed_to_init : t
    val sensitive_data_flow : t
    val skip_function : t
    val stack_variable_address_escape : t
    val starvation : t
    val static_initialization_order_fiasco : t
    val strict_mode_violation : t
    val strong_self_not_checked : t
    val symexec_memory_error : t
    val taint_error : t
    val thread_safety_violation : t
    val topl_error : latent:bool -> t
    val uninitialized_value_pulse : t
    val unnecessary_copy_pulse : t
    val unnecessary_copy_assignment_pulse : t
    val unnecessary_copy_assignment_const_pulse : t
    val unnecessary_copy_assignment_movable_pulse : t
    val unnecessary_copy_intermediate_pulse : t
    val unnecessary_copy_intermediate_const_pulse : t
    val unnecessary_copy_movable_pulse : t
    val unnecessary_copy_optional_pulse : t
    val unnecessary_copy_optional_const_pulse : t
    val unnecessary_copy_return_pulse : t
    val unnecessary_copy_thrift_assignment_pulse : t
    val unreachable_code_after : t
    val use_after_delete : latent:bool -> t
    val use_after_free : latent:bool -> t
    val use_after_lifetime : latent:bool -> t
    val vector_invalidation : latent:bool -> t
    val pulse_reference_stability : t
    val weak_self_in_noescape_block : t
    val wrong_argument_number : t
    val unreachable_cost_call : kind:CostKind.t -> t
    val lineage_flow : t
    module Map : IStdlib.PrettyPrintable.PPMap with type key = t
    + t

    Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum` but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type.

    val checker_can_report : Checker.t -> t -> bool

    Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.

    val set_enabled : t -> bool -> unit
    val abduction_case_not_implemented : t
    val arbitrary_code_execution_under_lock : t
    val array_of_pointsto : t
    val array_out_of_bounds_l1 : t
    val array_out_of_bounds_l2 : t
    val array_out_of_bounds_l3 : t
    val assert_failure : t
    val bad_footprint : t
    val bad_arg : latent:bool -> t
    val bad_generator : latent:bool -> t
    val bad_key : latent:bool -> t
    val bad_map : latent:bool -> t
    val bad_record : latent:bool -> t
    val bad_return : latent:bool -> t
    val biabduction_analysis_stops : t
    val biabduction_retain_cycle : t
    val block_parameter_not_null_checked : t
    val buffer_overrun_l1 : t
    val buffer_overrun_l2 : t
    val buffer_overrun_l3 : t
    val buffer_overrun_l4 : t
    val buffer_overrun_l5 : t
    val buffer_overrun_s2 : t
    val buffer_overrun_u5 : t
    val cannot_star : t
    val captured_strong_self : t
    val checkers_allocates_memory : t

    Warning name when a performance critical method directly or indirectly calls a method allocating memory

    val checkers_annotation_reachability_error : t
    val checkers_calls_expensive_method : t

    Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive

    val checkers_expensive_overrides_unexpensive : t

    Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive

    val checkers_fragment_retain_view : t
    val class_cast_exception : t
    val compared_to_null_and_dereferenced : t
    val complexity_increase : kind:CostKind.t -> is_on_ui_thread:bool -> t
    val condition_always_false : t
    val condition_always_true : t
    val config_impact_analysis : t
    val config_impact_analysis_strict : t
    val pulse_config_usage : t
    val pulse_const_refable : t
    val constant_address_dereference : latent:bool -> t
    val cxx_string_captured_in_block : t
    val cxx_ref_captured_in_block : t
    val dangling_pointer_dereference : t
    val dangling_pointer_dereference_maybe : t
    val data_flow_to_sink : t
    val dead_store : t
    val deadlock : t
    val divide_by_zero : t
    val do_not_report : t

    an issue type that should never be reported

    val empty_vector_access : t
    val expensive_cost_call : kind:CostKind.t -> t
    val failure_exe : t
    val guardedby_violation : t
    val impure_function : t
    val inefficient_keyset_iterator : t
    val inferbo_alloc_is_big : t
    val inferbo_alloc_is_negative : t
    val inferbo_alloc_is_zero : t
    val inferbo_alloc_may_be_big : t
    val inferbo_alloc_may_be_negative : t
    val infinite_cost_call : kind:CostKind.t -> t
    val inherently_dangerous_function : t
    val integer_overflow_l1 : t
    val integer_overflow_l2 : t
    val integer_overflow_l5 : t
    val integer_overflow_u5 : t
    val interface_not_thread_safe : t
    val internal_error : t
    val invalid_sil : t
    val invariant_call : t
    val ipc_on_ui_thread : t
    val lab_resource_leak : t
    val leak_after_array_abstraction : t
    val leak_in_footprint : t
    val leak_unknown_origin : t
    val lockless_violation : t
    val lock_consistency_violation : t
    val expensive_loop_invariant_call : t
    val memory_leak : t
    val missing_fld : t
    val missing_required_prop : t
    val mixed_self_weakself : t
    val modifies_immutable : t
    val multiple_weakself : t
    val mutual_recursion_cycle : t
    val nil_block_call : latent:bool -> t
    val nil_insertion_into_collection : latent:bool -> t
    val nil_messaging_to_non_pod : latent:bool -> t
    val no_match_of_rhs : latent:bool -> t
    val no_matching_case_clause : latent:bool -> t
    val no_matching_else_clause : latent:bool -> t
    val no_matching_function_clause : latent:bool -> t
    val no_true_branch_in_if : latent:bool -> t
    val no_matching_branch_in_try : latent:bool -> t
    val null_argument : latent:bool -> t
    val null_dereference : t
    val nullptr_dereference : latent:bool -> t
    val nullptr_dereference_in_nullsafe_class : latent:bool -> t
    val optional_empty_access : latent:bool -> t
    val precondition_not_found : t
    val precondition_not_met : t
    val premature_nil_termination : t
    val pulse_cannot_instantiate_abstract_class : t
    val pulse_dict_missing_key : t
    val pulse_dynamic_type_mismatch : t
    val pulse_transitive_access : t
    val pulse_memory_leak_c : t
    val pulse_memory_leak_cpp : t
    val pulse_resource_leak : t
    val pulse_unawaited_awaitable : t
    val pulse_unfinished_builder : t
    val pulse_uninitialized_const : t
    val pulse_uninitialized_method : t
    val pure_function : t
    val readonly_shared_ptr_param : t
    val regex_op_on_ui_thread : t
    val resource_leak : t
    val retain_cycle : t
    val retain_cycle_no_weak_info : t
    val scope_leakage : t
    val self_in_block_passed_to_init : t
    val sensitive_data_flow : t
    val skip_function : t
    val stack_variable_address_escape : t
    val starvation : t
    val static_initialization_order_fiasco : t
    val strict_mode_violation : t
    val strong_self_not_checked : t
    val symexec_memory_error : t
    val taint_error : t
    val thread_safety_violation : t
    val topl_error : latent:bool -> t
    val uninitialized_value_pulse : t
    val unnecessary_copy_pulse : t
    val unnecessary_copy_assignment_pulse : t
    val unnecessary_copy_assignment_const_pulse : t
    val unnecessary_copy_assignment_movable_pulse : t
    val unnecessary_copy_intermediate_pulse : t
    val unnecessary_copy_intermediate_const_pulse : t
    val unnecessary_copy_movable_pulse : t
    val unnecessary_copy_optional_pulse : t
    val unnecessary_copy_optional_const_pulse : t
    val unnecessary_copy_return_pulse : t
    val unnecessary_copy_thrift_assignment_pulse : t
    val unreachable_code_after : t
    val use_after_delete : latent:bool -> t
    val use_after_free : latent:bool -> t
    val use_after_lifetime : latent:bool -> t
    val vector_invalidation : latent:bool -> t
    val pulse_reference_stability : t
    val weak_self_in_noescape_block : t
    val wrong_argument_number : t
    val unreachable_cost_call : kind:CostKind.t -> t
    val lineage_flow : t
    module Map : IStdlib.PrettyPrintable.PPMap with type key = t
    diff --git a/website/static/odoc/next/infer/IBase/IssuesTestField/index.html b/website/static/odoc/next/infer/IBase/IssuesTestField/index.html index 2b2aa8f217c..50a49ec5498 100644 --- a/website/static/odoc/next/infer/IBase/IssuesTestField/index.html +++ b/website/static/odoc/next/infer/IBase/IssuesTestField/index.html @@ -1,2 +1,2 @@ -IssuesTestField (infer.IBase.IssuesTestField)

    Module IBase.IssuesTestField

    type t =
    1. | BugType
    2. | Qualifier
    3. | Severity
    4. | Suggestion
    5. | Bucket
    6. | Line
    7. | Column
    8. | Procedure
    9. | ProcedureStartLine
    10. | File
    11. | BugTrace
    12. | Key
    13. | Hash
    14. | LineOffset
    15. | QualifierContainsPotentialExceptionNote
    16. | TaintExtra
    17. | TransitiveCalleesExtra
    18. | Suppressed
    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    val all_symbols : (string * t) list
    +IssuesTestField (infer.IBase.IssuesTestField)

    Module IBase.IssuesTestField

    type t =
    1. | BugType
    2. | Qualifier
    3. | Severity
    4. | Suggestion
    5. | Bucket
    6. | Line
    7. | Column
    8. | Procedure
    9. | ProcedureStartLine
    10. | File
    11. | BugTrace
    12. | Key
    13. | Hash
    14. | LineOffset
    15. | QualifierContainsPotentialExceptionNote
    16. | TaintExtra
    17. | TransitiveCalleesExtra
    18. | Suppressed
    19. | Autofix
    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    val all_symbols : (string * t) list
    diff --git a/website/static/odoc/next/infer/IBase/ProcessPool/TaskGenerator/index.html b/website/static/odoc/next/infer/IBase/ProcessPool/TaskGenerator/index.html index ff2907c8cf8..7e11825eac7 100644 --- a/website/static/odoc/next/infer/IBase/ProcessPool/TaskGenerator/index.html +++ b/website/static/odoc/next/infer/IBase/ProcessPool/TaskGenerator/index.html @@ -1,2 +1,2 @@ -TaskGenerator (infer.IBase.ProcessPool.TaskGenerator)

    Module ProcessPool.TaskGenerator

    type ('a, 'b) t = {
    1. remaining_tasks : unit -> int;
      (*

      number of tasks remaining to complete -- only used for reporting, so imprecision is not a bug

      *)
    2. is_empty : unit -> bool;
      (*

      when should the main loop of the task manager stop expecting new tasks

      *)
    3. finished : result:'b option -> 'a -> unit;
      (*

      Process pool calls finished result:r x when a worker finishes item x. result is None when the item was completed successfully and Some pname when it failed because it could not lock pname. This is only called if next () has previously returned Some x and x was sent to a worker.

      *)
    4. next : unit -> 'a option;
      (*

      next () generates the next work item. If is_empty () is true then next () must return None. However, it is OK to for next () to return None when is_empty is false. This corresponds to the case where there is more work to be done, but it is not schedulable until some already scheduled work is finished.

      *)
    }

    abstraction for generating jobs

    val chain : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t

    chain two generators in order

    val of_list : finish:('b option -> 'a -> 'a option) -> 'a list -> ('a, 'b) t

    schedule tasks out of a concrete list

    val finish_always_none : _ option -> _ -> _ option
    +TaskGenerator (infer.IBase.ProcessPool.TaskGenerator)

    Module ProcessPool.TaskGenerator

    type for_child_info = {
    1. child_slot : int;
    2. child_pid : IStdlib.IStd.Pid.t;
    3. is_first_update : bool;
    }
    type ('a, 'b) t = {
    1. remaining_tasks : unit -> int;
      (*

      number of tasks remaining to complete -- only used for reporting, so imprecision is not a bug

      *)
    2. is_empty : unit -> bool;
      (*

      when should the main loop of the task manager stop expecting new tasks

      *)
    3. finished : result:'b option -> 'a -> unit;
      (*

      Process pool calls finished result:r x when a worker finishes item x. result is None when the item was completed successfully and Some pname when it failed because it could not lock pname. This is only called if next () has previously returned Some x and x was sent to a worker.

      *)
    4. next : for_child_info -> ('a * (unit -> unit)) option;
      (*

      next () generates the next work item together with a "finalizer" for that work item that will be run once the work has completed (just before calling finished). If is_empty () is true then next () must return None. However, it is OK to for next () to return None when is_empty is false. This corresponds to the case where there is more work to be done, but it is not schedulable until some already scheduled work is finished.

      *)
    }

    abstraction for generating jobs

    val chain : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t

    chain two generators in order

    val of_list : finish:('b option -> 'a -> 'a option) -> 'a list -> ('a, 'b) t

    schedule tasks out of a concrete list

    val finish_always_none : _ option -> _ -> _ option
    diff --git a/website/static/odoc/next/infer/IBase/RestartSchedulerException/index.html b/website/static/odoc/next/infer/IBase/RestartSchedulerException/index.html index bd497fccaf6..aa4a97537d5 100644 --- a/website/static/odoc/next/infer/IBase/RestartSchedulerException/index.html +++ b/website/static/odoc/next/infer/IBase/RestartSchedulerException/index.html @@ -1,2 +1,2 @@ -RestartSchedulerException (infer.IBase.RestartSchedulerException)

    Module IBase.RestartSchedulerException

    exception ProcnameAlreadyLocked of {
    1. dependency_filename : string;
    }

    for the Restart scheduler: raise when a worker tries to analyze a procedure already being analyzed by another process

    val is_not_restart_exception : exn -> bool

    check if the exception passed is the one defined above

    +RestartSchedulerException (infer.IBase.RestartSchedulerException)

    Module IBase.RestartSchedulerException

    exception ProcnameAlreadyLocked of {
    1. dependency_filenames : string list;
    }

    for the Restart scheduler: raise when a worker tries to analyze a procedure already being analyzed by another process

    val is_not_restart_exception : exn -> bool

    check if the exception passed is the one defined above

    diff --git a/website/static/odoc/next/infer/IBase/Stats/index.html b/website/static/odoc/next/infer/IBase/Stats/index.html index 67bfe494794..3c3767efd88 100644 --- a/website/static/odoc/next/infer/IBase/Stats/index.html +++ b/website/static/odoc/next/infer/IBase/Stats/index.html @@ -1,2 +1,2 @@ -Stats (infer.IBase.Stats)

    Module IBase.Stats

    collect statistics about backend/analysis operations

    type t
    val incr_summary_file_try_load : unit -> unit

    a query to the filesystem attempting to load a summary file

    val incr_summary_read_from_disk : unit -> unit

    a summary file is deserialized from disk

    val incr_summary_cache_hits : unit -> unit
    val incr_summary_cache_misses : unit -> unit
    val incr_ondemand_procs_analyzed : unit -> unit
    val add_to_proc_locker_lock_time : ExecutionDuration.t -> unit
    val add_to_proc_locker_unlock_time : ExecutionDuration.t -> unit
    val add_to_restart_scheduler_total_time : ExecutionDuration.t -> unit
    val add_to_restart_scheduler_useful_time : ExecutionDuration.t -> unit
    val incr_pulse_aliasing_contradictions : unit -> unit
    val incr_pulse_args_length_contradictions : unit -> unit
    val incr_pulse_captured_vars_length_contradictions : unit -> unit
    val add_pulse_disjuncts_dropped : int -> unit
    val add_pulse_interrupted_loops : int -> unit
    val incr_pulse_unknown_calls : unit -> unit
    val incr_pulse_unknown_calls_on_hack_resource : unit -> unit
    val incr_pulse_summaries_contradictions : unit -> unit
    val incr_pulse_summaries_unsat_for_caller : unit -> unit
    val incr_pulse_summaries_with_some_unreachable_nodes : unit -> unit
    val incr_pulse_summaries_with_some_unreachable_returns : unit -> unit
    val incr_pulse_summaries_count_0_continue_program : unit -> unit
    val add_pulse_summaries_count : int -> unit
    val add_proc_duration_us : string -> string -> int -> unit
    val incr_topl_reachable_calls : unit -> unit
    val incr_timeouts : unit -> unit
    val add_timing : Timeable.t -> float -> unit
    val set_process_times : ExecutionDuration.t -> unit
    val set_useful_times : ExecutionDuration.t -> unit
    val incr_spec_store_times : ExecutionDuration.counter -> unit
    val reset : unit -> unit

    reset all stats

    val get : unit -> t

    get the stats so far

    val log_aggregate : t list -> unit

    log aggregated stats to infer's log file and to Scuba

    +Stats (infer.IBase.Stats)

    Module IBase.Stats

    collect statistics about backend/analysis operations

    type t
    val incr_summary_file_try_load : unit -> unit

    a query to the filesystem attempting to load a summary file

    val incr_summary_read_from_disk : unit -> unit

    a summary file is deserialized from disk

    val incr_summary_cache_hits : unit -> unit
    val incr_summary_cache_misses : unit -> unit
    val incr_summary_specializations : unit -> unit
    val incr_ondemand_procs_analyzed : unit -> unit
    val incr_ondemand_double_analysis_prevented : unit -> unit
    val add_to_proc_locker_lock_time : ExecutionDuration.t -> unit
    val add_to_proc_locker_unlock_time : ExecutionDuration.t -> unit
    val add_to_restart_scheduler_total_time : ExecutionDuration.t -> unit
    val add_to_restart_scheduler_useful_time : ExecutionDuration.t -> unit
    val incr_pulse_aliasing_contradictions : unit -> unit
    val incr_pulse_args_length_contradictions : unit -> unit
    val incr_pulse_captured_vars_length_contradictions : unit -> unit
    val add_pulse_disjuncts_dropped : int -> unit
    val add_pulse_interrupted_loops : int -> unit
    val incr_pulse_unknown_calls : unit -> unit
    val incr_pulse_unknown_calls_on_hack_resource : unit -> unit
    val incr_pulse_summaries_contradictions : unit -> unit
    val incr_pulse_summaries_unsat_for_caller : unit -> unit
    val incr_pulse_summaries_with_some_unreachable_nodes : unit -> unit
    val incr_pulse_summaries_with_some_unreachable_returns : unit -> unit
    val incr_pulse_summaries_count_0_continue_program : unit -> unit
    val add_pulse_summaries_count : int -> unit
    val add_proc_duration_us : string -> string -> int -> unit
    val incr_topl_reachable_calls : unit -> unit
    val incr_timeouts : unit -> unit
    val add_timing : Timeable.t -> float -> unit
    val set_process_times : ExecutionDuration.t -> unit
    val set_useful_times : ExecutionDuration.t -> unit
    val incr_spec_store_times : ExecutionDuration.counter -> unit
    val reset : unit -> unit

    reset all stats

    val get : unit -> t

    get the stats so far

    val log_aggregate : t list -> unit

    log aggregated stats to infer's log file and to Scuba

    diff --git a/website/static/odoc/next/infer/IBase/Utils/index.html b/website/static/odoc/next/infer/IBase/Utils/index.html index 3542f0e2337..cea561794e3 100644 --- a/website/static/odoc/next/infer/IBase/Utils/index.html +++ b/website/static/odoc/next/infer/IBase/Utils/index.html @@ -10,6 +10,7 @@ string -> string option

    Convert an absolute filename to one relative to a root directory. Returns None if filename is not under root. The backtrack level sets the maximum level of steps in the parent directories to search for a common prefix

    type outfile = {
    1. fname : string;
      (*

      name of the file

      *)
    2. out_c : IStdlib.IStd.Out_channel.t;
      (*

      output channel

      *)
    3. fmt : Stdlib.Format.formatter;
      (*

      formatter for printing

      *)
    }

    type for files used for printing

    val create_outfile : string -> outfile option

    create an outfile for the command line

    val close_outf : outfile -> unit

    close an outfile

    val directory_fold : ('a -> string -> 'a) -> 'a -> string -> 'a

    Functional fold function over all the files of a directory

    val directory_iter : (string -> unit) -> string -> unit

    Functional iter function over all the files of a directory

    val read_json_file : string -> (Yojson.Safe.t, string) IStdlib.IStd.Result.t
    val with_file_in : string -> f:(IStdlib.IStd.In_channel.t -> 'a) -> 'a
    val with_file_out : ?append:bool -> + ?fail_if_exists:bool -> string -> f:(IStdlib.IStd.Out_channel.t -> 'a) -> 'a
    val with_intermediate_temp_file_out : diff --git a/website/static/odoc/next/infer/IR/Exp/index.html b/website/static/odoc/next/infer/IR/Exp/index.html index b33f353b674..439eda8e305 100644 --- a/website/static/odoc/next/infer/IR/Exp/index.html +++ b/website/static/odoc/next/infer/IR/Exp/index.html @@ -1,14 +1,21 @@ -Exp (infer.IR.Exp)

    Module IR.Exp

    The Smallfoot Intermediate Language: Expressions

    NOTE: For doing substitutionson expressions, there are some functions in Sil.

    module F = Stdlib.Format
    type closure = {
    1. name : Procname.t;
    2. captured_vars : (t * CapturedVar.t) list;
    }
    and sizeof_data = {
    1. typ : Typ.t;
    2. nbytes : int option;
    3. dynamic_length : t option;
    4. subtype : Subtype.t;
    5. nullable : bool;
    }

    This records information about a sizeof(typ) expression.

    nbytes represents the result of the evaluation of sizeof(typ) if it is statically known.

    If typ is of the form Tarray elt (Some static_length), then dynamic_length is the number of elements of type elt in the array. The dynamic_length, tracked by symbolic execution, may differ from the static_length obtained from the type definition, e.g. when an array is over-allocated.

    If typ is a struct type, the dynamic_length is that of the final extensible array, if any.

    and t =
    1. | Var of Ident.t
      (*

      Pure variable: it is not an lvalue

      *)
    2. | UnOp of Unop.t * t * Typ.t option
      (*

      Unary operator with type of the result if known

      *)
    3. | BinOp of Binop.t * t * t
      (*

      Binary operator

      *)
    4. | Exn of t
      (*

      Exception

      *)
    5. | Closure of closure
      (*

      Anonymous function

      *)
    6. | Const of Const.t
      (*

      Constants

      *)
    7. | Cast of Typ.t * t
      (*

      Type cast

      *)
    8. | Lvar of Pvar.t
      (*

      The address of a program variable

      *)
    9. | Lfield of t * Fieldname.t * Typ.t
      (*

      A field offset, the type is the surrounding struct type

      *)
    10. | Lindex of t * t
      (*

      An array index offset: exp1[exp2]

      *)
    11. | Sizeof of sizeof_data

    Program expressions.

    val compare_closure : closure -> closure -> int
    val compare_sizeof_data : sizeof_data -> sizeof_data -> int
    val compare : t -> t -> int
    val hash_fold_closure : +Exp (infer.IR.Exp)

    Module IR.Exp

    The Smallfoot Intermediate Language: Expressions

    NOTE: For doing substitutionson expressions, there are some functions in Sil.

    module F = Stdlib.Format
    type closure = {
    1. name : Procname.t;
    2. captured_vars : (t * CapturedVar.t) list;
    }
    and sizeof_data = {
    1. typ : Typ.t;
    2. nbytes : int option;
    3. dynamic_length : t option;
    4. subtype : Subtype.t;
    5. nullable : bool;
    }

    This records information about a sizeof(typ) expression.

    nbytes represents the result of the evaluation of sizeof(typ) if it is statically known.

    If typ is of the form Tarray elt (Some static_length), then dynamic_length is the number of elements of type elt in the array. The dynamic_length, tracked by symbolic execution, may differ from the static_length obtained from the type definition, e.g. when an array is over-allocated.

    If typ is a struct type, the dynamic_length is that of the final extensible array, if any.

    and lfield_obj_data = {
    1. exp : t;
    2. is_implicit : bool;
    }
    and t =
    1. | Var of Ident.t
      (*

      Pure variable: it is not an lvalue

      *)
    2. | UnOp of Unop.t * t * Typ.t option
      (*

      Unary operator with type of the result if known

      *)
    3. | BinOp of Binop.t * t * t
      (*

      Binary operator

      *)
    4. | Exn of t
      (*

      Exception

      *)
    5. | Closure of closure
      (*

      Anonymous function

      *)
    6. | Const of Const.t
      (*

      Constants

      *)
    7. | Cast of Typ.t * t
      (*

      Type cast

      *)
    8. | Lvar of Pvar.t
      (*

      The address of a program variable

      *)
    9. | Lfield of lfield_obj_data * Fieldname.t * Typ.t
      (*

      A field offset, the type is the surrounding struct type

      *)
    10. | Lindex of t * t
      (*

      An array index offset: exp1[exp2]

      *)
    11. | Sizeof of sizeof_data

    Program expressions.

    val compare_closure : closure -> closure -> int
    val compare_sizeof_data : sizeof_data -> sizeof_data -> int
    val compare_lfield_obj_data : lfield_obj_data -> lfield_obj_data -> int
    val compare : t -> t -> int
    val hash_fold_closure : Ppx_hash_lib.Std.Hash.state -> closure -> Ppx_hash_lib.Std.Hash.state
    val hash_closure : closure -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_fold_sizeof_data : Ppx_hash_lib.Std.Hash.state -> sizeof_data -> - Ppx_hash_lib.Std.Hash.state
    val hash_sizeof_data : sizeof_data -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_fold_t : + Ppx_hash_lib.Std.Hash.state
    val hash_sizeof_data : sizeof_data -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_fold_lfield_obj_data : + Ppx_hash_lib.Std.Hash.state -> + lfield_obj_data -> + Ppx_hash_lib.Std.Hash.state
    val hash_lfield_obj_data : lfield_obj_data -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_fold_t : Ppx_hash_lib.Std.Hash.state -> t -> - Ppx_hash_lib.Std.Hash.state
    val hash : t -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_normalize_closure : closure -> closure
    val hash_normalize_closure_opt : closure option -> closure option
    val hash_normalize_closure_list : closure list -> closure list
    val hash_normalize_sizeof_data : sizeof_data -> sizeof_data
    val hash_normalize_sizeof_data_opt : sizeof_data option -> sizeof_data option
    val hash_normalize_sizeof_data_list : sizeof_data list -> sizeof_data list
    val hash_normalize : t -> t
    val hash_normalize_opt : t option -> t option
    val hash_normalize_list : t list -> t list
    val equal : t -> t -> bool

    Equality for expressions.

    module Set : IStdlib.IStd.Caml.Set.S with type elt = t

    Set of expressions.

    module Map : IStdlib.IStd.Caml.Map.S with type key = t

    Map with expression keys.

    module Hash : IStdlib.IStd.Caml.Hashtbl.S with type key = t

    Hashtable with expression keys.

    val is_null_literal : t -> bool
    val is_this : t -> bool

    return true if exp is the special this/self expression

    val is_zero : t -> bool
    val is_const : t -> bool

    Utility Functions for Expressions

    val texp_to_typ : Typ.t option -> t -> Typ.t

    Turn an expression representing a type into the type it represents If not a sizeof, return the default type if given, otherwise raise an exception

    val root_of_lexp : t -> t

    Return the root of lexp.

    val get_undefined : bool -> t

    Get an expression "undefined", the boolean indicates whether the undefined value goest into the footprint

    val pointer_arith : t -> bool

    Checks whether an expression denotes a location using pointer arithmetic. Currently, catches array - indexing expressions such as ai only.

    val has_local_addr : t -> bool

    returns true if the expression operates on address of local variable

    val zero : t

    Integer constant 0

    val null : t

    Null constant

    val one : t

    Integer constant 1

    val minus_one : t

    Integer constant -1

    val int : IntLit.t -> t

    Create integer constant

    val float : float -> t

    Create float constant

    val bool : bool -> t

    Create integer constant corresponding to the boolean value

    val eq : t -> t -> t

    Create expression e1 == e2

    val ne : t -> t -> t

    Create expression e1 != e2

    val le : t -> t -> t

    Create expression e1 <= e2

    val lt : t -> t -> t

    Create expression e1 < e2

    val free_vars : t -> Ident.t IStdlib.IStd.Sequence.t

    all the idents appearing in the expression

    val gen_free_vars : t -> (unit, Ident.t) IStdlib.IStd.Sequence.Generator.t
    val ident_mem : t -> Ident.t -> bool

    true if the identifier appears in the expression

    val program_vars : t -> Pvar.t IStdlib.IStd.Sequence.t

    all the program variables appearing in the expression

    val closures : t -> closure IStdlib.IStd.Sequence.t

    all closures appearing in the expression

    val fold_captured : f:('a -> t -> 'a) -> t -> 'a -> 'a

    Fold over the expressions captured by this expression.

    val pp_diff : ?print_types:bool -> IStdlib.Pp.env -> F.formatter -> t -> unit
    val pp : F.formatter -> t -> unit
    val pp_closure : F.formatter -> closure -> unit
    val to_string : t -> string
    val d_exp : t -> unit

    dump an expression.

    val pp_texp : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a type.

    val pp_texp_full : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a type with all the details.

    val d_texp_full : t -> unit

    Dump a type expression with all the details.

    val d_list : t list -> unit

    Dump a list of expressions.

    val is_cpp_closure : t -> bool
    val zero_of_type : Typ.t -> t option

    Returns the zero value of a type, for int, float and ptr types

    val zero_of_type_exn : Typ.t -> t
    val ignore_cast : t -> t
    val ignore_integer_cast : t -> t
    val get_java_class_initializer : + Ppx_hash_lib.Std.Hash.state
    val hash : t -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_normalize_closure : closure -> closure
    val hash_normalize_closure_opt : closure option -> closure option
    val hash_normalize_closure_list : closure list -> closure list
    val hash_normalize_sizeof_data : sizeof_data -> sizeof_data
    val hash_normalize_sizeof_data_opt : sizeof_data option -> sizeof_data option
    val hash_normalize_sizeof_data_list : sizeof_data list -> sizeof_data list
    val hash_normalize_lfield_obj_data : lfield_obj_data -> lfield_obj_data
    val hash_normalize_lfield_obj_data_opt : + lfield_obj_data option -> + lfield_obj_data option
    val hash_normalize_lfield_obj_data_list : + lfield_obj_data list -> + lfield_obj_data list
    val hash_normalize : t -> t
    val hash_normalize_opt : t option -> t option
    val hash_normalize_list : t list -> t list
    val equal : t -> t -> bool

    Equality for expressions.

    module Set : IStdlib.IStd.Caml.Set.S with type elt = t

    Set of expressions.

    module Map : IStdlib.IStd.Caml.Map.S with type key = t

    Map with expression keys.

    module Hash : IStdlib.IStd.Caml.Hashtbl.S with type key = t

    Hashtable with expression keys.

    val is_null_literal : t -> bool
    val is_this : t -> bool

    return true if exp is the special this/self expression

    val is_zero : t -> bool
    val is_const : t -> bool

    Utility Functions for Expressions

    val texp_to_typ : Typ.t option -> t -> Typ.t

    Turn an expression representing a type into the type it represents If not a sizeof, return the default type if given, otherwise raise an exception

    val root_of_lexp : t -> t

    Return the root of lexp.

    val get_undefined : bool -> t

    Get an expression "undefined", the boolean indicates whether the undefined value goest into the footprint

    val pointer_arith : t -> bool

    Checks whether an expression denotes a location using pointer arithmetic. Currently, catches array - indexing expressions such as ai only.

    val has_local_addr : t -> bool

    returns true if the expression operates on address of local variable

    val zero : t

    Integer constant 0

    val null : t

    Null constant

    val one : t

    Integer constant 1

    val minus_one : t

    Integer constant -1

    val int : IntLit.t -> t

    Create integer constant

    val float : float -> t

    Create float constant

    val bool : bool -> t

    Create integer constant corresponding to the boolean value

    val eq : t -> t -> t

    Create expression e1 == e2

    val ne : t -> t -> t

    Create expression e1 != e2

    val le : t -> t -> t

    Create expression e1 <= e2

    val lt : t -> t -> t

    Create expression e1 < e2

    val free_vars : t -> Ident.t IStdlib.IStd.Sequence.t

    all the idents appearing in the expression

    val gen_free_vars : t -> (unit, Ident.t) IStdlib.IStd.Sequence.Generator.t
    val ident_mem : t -> Ident.t -> bool

    true if the identifier appears in the expression

    val program_vars : t -> Pvar.t IStdlib.IStd.Sequence.t

    all the program variables appearing in the expression

    val closures : t -> closure IStdlib.IStd.Sequence.t

    all closures appearing in the expression

    val fold_captured : f:('a -> t -> 'a) -> t -> 'a -> 'a

    Fold over the expressions captured by this expression.

    val pp_diff : ?print_types:bool -> IStdlib.Pp.env -> F.formatter -> t -> unit
    val pp : F.formatter -> t -> unit
    val pp_closure : F.formatter -> closure -> unit
    val to_string : t -> string
    val d_exp : t -> unit

    dump an expression.

    val pp_texp : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a type.

    val pp_texp_full : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a type with all the details.

    val d_texp_full : t -> unit

    Dump a type expression with all the details.

    val d_list : t list -> unit

    Dump a list of expressions.

    val is_cpp_closure : t -> bool
    val zero_of_type : Typ.t -> t option

    Returns the zero value of a type, for int, float and ptr types

    val zero_of_type_exn : Typ.t -> t
    val ignore_cast : t -> t
    val ignore_integer_cast : t -> t
    val get_java_class_initializer : Tenv.t -> t -> (Procname.t * Pvar.t * Fieldname.t * Typ.t) option

    Returns the class initializer of the given expression in Java

    diff --git a/website/static/odoc/next/infer/IR/Procname/index.html b/website/static/odoc/next/infer/IR/Procname/index.html index 833033bc65b..51ac9da96db 100644 --- a/website/static/odoc/next/infer/IR/Procname/index.html +++ b/website/static/odoc/next/infer/IR/Procname/index.html @@ -22,4 +22,4 @@ class_name:PythonClassName.t option -> function_name:string -> arity:int option -> - t

    Create a Python procedure name.

    val empty_block : t

    Empty block name.

    val get_language : t -> IBase.Language.t

    Return the language of the procedure.

    val get_method : t -> string

    Return the method/function of a procname.

    val is_objc_block : t -> bool

    Return whether the procname is a block procname.

    val is_cpp_lambda : t -> bool

    Return whether the procname is a cpp lambda procname.

    val is_objc_dealloc : t -> bool

    Return whether the dealloc method of an Objective-C class.

    val is_objc_init : t -> bool

    Return whether the init method of an Objective-C class.

    val is_c_method : t -> bool

    Return true this is an Objective-C/C++ method name.

    val is_clang : t -> bool

    Return true this is an Objective-C/C++ method name or a C function.

    val is_constructor : t -> bool

    Check if this is a constructor.

    val is_csharp : t -> bool

    Check if this is a CSharp procedure name.

    val is_hack : t -> bool

    Check if this is a Hack procedure name.

    val is_java : t -> bool

    Check if this is a Java procedure name.

    val is_python : t -> bool

    Check if this is a Python procedure name.

    val objc_cpp_replace_method_name : t -> string -> t
    val is_infer_undefined : t -> bool

    Check if this is a special Infer undefined procedure.

    val is_static : t -> bool option

    Check if a procedure is a static class method or not. If the procedure is not a class method or is unknown to be static, it returns None. For now, this checking does not work on C++ methods.

    val get_global_name_of_initializer : t -> string option

    Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.

    val pp_without_templates : Stdlib.Format.formatter -> t -> unit

    Pretty print a c++ proc name for the user to see.

    val pp : Stdlib.Format.formatter -> t -> unit

    Pretty print a proc name for the user to see.

    val pp_verbose : Stdlib.Format.formatter -> t -> unit

    Pretty print a proc name for the user to see with verbosity parameter.

    val to_string : ?verbosity:detail_level -> t -> string

    Convert a proc name into a string for the user to see.

    val to_string_verbose : t -> string

    Convert a proc name into a string for the user to see with verbosity parameter.

    val describe : Stdlib.Format.formatter -> t -> unit

    to use in user messages

    val replace_class : t -> ?arity_incr:int -> Typ.Name.t -> t

    Replace the class name component of a procedure name. In case of Java, replace package and class name.

    val is_method_in_objc_protocol : t -> bool
    val pp_simplified_string : ?withclass:bool -> F.formatter -> t -> unit

    Pretty print a proc name as an easy string for the user to see in an IDE.

    val to_simplified_string : ?withclass:bool -> t -> string

    Convert a proc name into an easy string for the user to see in an IDE.

    val from_string_c_fun : string -> t

    Convert a string to a c function name.

    val replace_java_inner_class_prefix_regex : string -> string

    Replace "$[0-9]+" index into "$_" in Java proc name.

    val hashable_name : t -> string

    Convert the procedure name in a format suitable for computing the bug hash.

    val pp_unique_id : F.formatter -> t -> unit

    Print a proc name as a unique identifier.

    val to_unique_id : t -> string

    Convert a proc name into a unique identifier.

    val to_short_unique_name : t -> string

    Convert a proc name into a unique identfier guaranteed to be short (less than 50 characters)

    val to_filename : t -> string

    Convert a proc name to a filename.

    val get_qualifiers : t -> QualifiedCppName.t

    get qualifiers of C/objc/C++ method/function

    val decr_hack_arity : t -> t option

    return a Hack procname with decremented arity. Return None if input has no arity or 0 arity

    val get_hack_arity : t -> int option

    get the arity of a Hack procname

    val get_hack_static_constinit : is_trait:bool -> HackClassName.t -> t

    get the constinit procname in Hack

    val pp_name_only : F.formatter -> t -> unit

    Print name of procedure with at most one-level path. For example,

    • In C++: "<ClassName>::<ProcName>"
    • In Java, ObjC, C#: "<ClassName>.<ProcName>"
    • In C: "<ProcName>"
    • In Erlang: "<ModuleName>:<ProcName>"
    val pp_fullname_only : F.formatter -> t -> unit

    Like pp_name_only, but include package name for Java.

    val is_c : t -> bool
    val is_lambda_name : string -> bool
    val is_lambda : t -> bool
    val is_lambda_or_block : t -> bool
    val patterns_match : IStdlib.IStd.Str.regexp list -> t -> bool

    Test whether a proc name matches to one of the regular expressions.

    val is_erlang_unsupported : t -> bool
    val is_erlang : t -> bool
    val erlang_call_unqualified : arity:int -> t

    A special infer-erlang procname that represents a syntactic erlang (unqualified) function call. arity is the arity of the erlang function. First parameter of this procedure is expecteed to be the erlang function name, and the remaining parameters are the erlang parameters (given one-by-one and not as an erlang list).

    val erlang_call_qualified : arity:int -> t

    Same as erlang_call_unqualified but is expected to have an erlang module name as the first parameter, and the function name as second. arity is (still) the erlang arity of the function.

    val is_erlang_call_unqualified : t -> bool
    val is_erlang_call_qualified : t -> bool
    val is_hack_builtins : t -> bool
    val is_hack_constinit : t -> bool
    val has_hack_classname : t -> bool
    val is_hack_async_name : t -> bool
    val is_hack_construct : t -> bool
    + t

    Create a Python procedure name.

    val empty_block : t

    Empty block name.

    val get_language : t -> IBase.Language.t

    Return the language of the procedure.

    val get_method : t -> string

    Return the method/function of a procname.

    val is_objc_block : t -> bool

    Return whether the procname is a block procname.

    val is_cpp_lambda : t -> bool

    Return whether the procname is a cpp lambda procname.

    val is_cpp_method : t -> bool

    Return whether the procname is a cpp method.

    val is_objc_dealloc : t -> bool

    Return whether the dealloc method of an Objective-C class.

    val is_objc_init : t -> bool

    Return whether the init method of an Objective-C class.

    val is_c_method : t -> bool

    Return true this is an Objective-C/C++ method name.

    val is_clang : t -> bool

    Return true this is an Objective-C/C++ method name or a C function.

    val is_constructor : t -> bool

    Check if this is a constructor.

    val is_csharp : t -> bool

    Check if this is a CSharp procedure name.

    val is_hack : t -> bool

    Check if this is a Hack procedure name.

    val is_java : t -> bool

    Check if this is a Java procedure name.

    val is_python : t -> bool

    Check if this is a Python procedure name.

    val objc_cpp_replace_method_name : t -> string -> t
    val is_infer_undefined : t -> bool

    Check if this is a special Infer undefined procedure.

    val is_static : t -> bool option

    Check if a procedure is a static class method or not. If the procedure is not a class method or is unknown to be static, it returns None. For now, this checking does not work on C++ methods.

    val get_global_name_of_initializer : t -> string option

    Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.

    val pp_without_templates : Stdlib.Format.formatter -> t -> unit

    Pretty print a c++ proc name for the user to see.

    val pp : Stdlib.Format.formatter -> t -> unit

    Pretty print a proc name for the user to see.

    val pp_verbose : Stdlib.Format.formatter -> t -> unit

    Pretty print a proc name for the user to see with verbosity parameter.

    val to_string : ?verbosity:detail_level -> t -> string

    Convert a proc name into a string for the user to see.

    val to_string_verbose : t -> string

    Convert a proc name into a string for the user to see with verbosity parameter.

    val describe : Stdlib.Format.formatter -> t -> unit

    to use in user messages

    val replace_class : t -> ?arity_incr:int -> Typ.Name.t -> t

    Replace the class name component of a procedure name. In case of Java, replace package and class name.

    val is_method_in_objc_protocol : t -> bool
    val pp_simplified_string : ?withclass:bool -> F.formatter -> t -> unit

    Pretty print a proc name as an easy string for the user to see in an IDE.

    val to_simplified_string : ?withclass:bool -> t -> string

    Convert a proc name into an easy string for the user to see in an IDE.

    val from_string_c_fun : string -> t

    Convert a string to a c function name.

    val replace_java_inner_class_prefix_regex : string -> string

    Replace "$[0-9]+" index into "$_" in Java proc name.

    val hashable_name : t -> string

    Convert the procedure name in a format suitable for computing the bug hash.

    val pp_unique_id : F.formatter -> t -> unit

    Print a proc name as a unique identifier.

    val to_unique_id : t -> string

    Convert a proc name into a unique identifier.

    val to_short_unique_name : t -> string

    Convert a proc name into a unique identfier guaranteed to be short (less than 50 characters)

    val to_filename : t -> string

    Convert a proc name to a filename.

    val get_qualifiers : t -> QualifiedCppName.t

    get qualifiers of C/objc/C++ method/function

    val decr_hack_arity : t -> t option

    return a Hack procname with decremented arity. Return None if input has no arity or 0 arity

    val get_hack_arity : t -> int option

    get the arity of a Hack procname

    val get_hack_static_constinit : is_trait:bool -> HackClassName.t -> t

    get the constinit procname in Hack

    val pp_name_only : F.formatter -> t -> unit

    Print name of procedure with at most one-level path. For example,

    • In C++: "<ClassName>::<ProcName>"
    • In Java, ObjC, C#: "<ClassName>.<ProcName>"
    • In C: "<ProcName>"
    • In Erlang: "<ModuleName>:<ProcName>"
    val pp_fullname_only : F.formatter -> t -> unit

    Like pp_name_only, but include package name for Java.

    val is_c : t -> bool
    val is_lambda_name : string -> bool
    val is_lambda : t -> bool
    val is_lambda_or_block : t -> bool
    val patterns_match : IStdlib.IStd.Str.regexp list -> t -> bool

    Test whether a proc name matches to one of the regular expressions.

    val is_erlang_unsupported : t -> bool
    val is_erlang : t -> bool
    val erlang_call_unqualified : arity:int -> t

    A special infer-erlang procname that represents a syntactic erlang (unqualified) function call. arity is the arity of the erlang function. First parameter of this procedure is expecteed to be the erlang function name, and the remaining parameters are the erlang parameters (given one-by-one and not as an erlang list).

    val erlang_call_qualified : arity:int -> t

    Same as erlang_call_unqualified but is expected to have an erlang module name as the first parameter, and the function name as second. arity is (still) the erlang arity of the function.

    val is_erlang_call_unqualified : t -> bool
    val is_erlang_call_qualified : t -> bool
    val is_hack_builtins : t -> bool
    val is_hack_constinit : t -> bool
    val has_hack_classname : t -> bool
    val is_hack_async_name : t -> bool
    val is_hack_construct : t -> bool
    val is_hack_xinit : t -> bool
    diff --git a/website/static/odoc/next/infer/IR/Pvar/index.html b/website/static/odoc/next/infer/IR/Pvar/index.html index b73cdaaba0c..9dbe3d6f446 100644 --- a/website/static/odoc/next/infer/IR/Pvar/index.html +++ b/website/static/odoc/next/infer/IR/Pvar/index.html @@ -1,5 +1,5 @@ -Pvar (infer.IR.Pvar)

    Module IR.Pvar

    Program variables.

    module F = Stdlib.Format
    type translation_unit = IBase.SourceFile.t option
    type t

    Type for program variables. There are 4 kinds of variables:

    1. local variables, used for local variables and formal parameters
    2. callee program variables, used to handle recursion (x | callee is distinguished from x)
    3. global variables
    4. seed variables, used to store the initial value of formal parameters
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    val yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.t
    include Sexplib0.Sexpable.S with type t := t
    val t_of_sexp : Sexplib0__.Sexp.t -> t
    val sexp_of_t : t -> Sexplib0__.Sexp.t
    include Ppx_hash_lib.Hashable.S with type t := t
    val hash_fold_t : t Base__Ppx_hash_lib.hash_fold
    val hash : t -> Base__Ppx_hash_lib.Std.Hash.hash_value
    val hash_normalize : t -> t
    val hash_normalize_opt : t option -> t option
    val hash_normalize_list : t list -> t list
    val compare_modulo_this : t -> t -> int

    Comparison considering all pvars named 'this'/'self' to be equal

    val equal : t -> t -> bool

    Equality for pvar's

    val get_declaring_function : t -> Procname.t option

    if not a global, return function declaring var

    val d : t -> unit

    Dump a program variable.

    val get_name : t -> Mangled.t

    Get the name component of a program variable.

    val get_ret_pvar : Procname.t -> t

    get_ret_pvar proc_name retuns the return pvar associated with the procedure name

    val get_ret_param_pvar : Procname.t -> t

    get_ret_param_pvar proc_name retuns the return_param pvar associated with the procedure name

    val get_simplified_name : t -> string

    Get a simplified version of the name component of a program variable.

    val is_abduced : t -> bool

    Check if the pvar is an abduced return var or param passed by ref

    val is_callee : t -> bool

    Check if the pvar is a callee var

    val is_global : t -> bool

    Check if the pvar is a global var or a static local var

    val is_static_companion : t -> bool

    Check if the pvar is a global var of a static companion

    val is_static_local : t -> bool

    Check if the pvar is a static variable declared inside a function

    val is_constant_array : t -> bool

    Check if the pvar has a constant array type

    val is_const : t -> bool

    Check if the pvar has a const type

    val is_local : t -> bool

    Check if the pvar is a (non-static) local var

    val is_seed : t -> bool

    Check if the pvar is a seed var

    val is_return : t -> bool

    Check if the pvar is a return var

    val is_this : t -> bool

    Check if a pvar is the special "this" var

    val is_self : t -> bool

    Check if a pvar is the special "self" var

    val is_artificial : t -> bool

    Check if a pvar is an artificial variable related coroutine, "__promise" or "__coro_frame"

    val is_frontend_tmp : t -> bool

    return true if pvar is a temporary variable generated by the frontend

    val is_clang_tmp : t -> bool

    return true if pvar is a temporary variable generated by clang

    val is_ssa_frontend_tmp : t -> bool

    return true if pvar is a temporary variable generated by the frontend and is only assigned once on a non-looping control-flow path

    val is_cpp_temporary : t -> bool

    return true if this pvar represents a C++ temporary object (see http://en.cppreference.com/w/cpp/language/lifetime)

    val is_cpp_unnamed_param : t -> bool

    return true if this pvar represents an unnamed parameter

    val is_gmock_param : t -> bool

    return true if the parameter is for mock methods of GoogleTest

    val is_objc_static_local_of_proc_name : string -> t -> bool

    Check if a pvar is a local static in objc

    val is_block_pvar : t -> bool

    Check if a pvar is a local pointing to a block in objc

    val get_tmp_id : t -> Ident.t option

    In case of a temporary variable, returns the id used to create it, or None otherwise.

    val mk : Mangled.t -> Procname.t -> t

    mk name proc_name creates a program var with the given function name

    val mk_abduced_ref_param : Procname.t -> int -> IBase.Location.t -> t

    create an abduced variable for a parameter passed by reference

    val mk_abduced_ret : Procname.t -> IBase.Location.t -> t

    create an abduced return variable for a call to proc_name at loc

    val mk_callee : Mangled.t -> Procname.t -> t

    mk_callee name proc_name creates a program var for a callee function with the given function name

    val mk_global : +Pvar (infer.IR.Pvar)

    Module IR.Pvar

    Program variables.

    module F = Stdlib.Format
    type translation_unit = IBase.SourceFile.t option
    type t

    Type for program variables. There are 4 kinds of variables:

    1. local variables, used for local variables and formal parameters
    2. callee program variables, used to handle recursion (x | callee is distinguished from x)
    3. global variables
    4. seed variables, used to store the initial value of formal parameters
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    val yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.t
    include Sexplib0.Sexpable.S with type t := t
    val t_of_sexp : Sexplib0__.Sexp.t -> t
    val sexp_of_t : t -> Sexplib0__.Sexp.t
    include Ppx_hash_lib.Hashable.S with type t := t
    val hash_fold_t : t Base__Ppx_hash_lib.hash_fold
    val hash : t -> Base__Ppx_hash_lib.Std.Hash.hash_value
    val hash_normalize : t -> t
    val hash_normalize_opt : t option -> t option
    val hash_normalize_list : t list -> t list
    val compare_modulo_this : t -> t -> int

    Comparison considering all pvars named 'this'/'self' to be equal

    val equal : t -> t -> bool

    Equality for pvar's

    val get_declaring_function : t -> Procname.t option

    if not a global, return function declaring var

    val d : t -> unit

    Dump a program variable.

    val get_name : t -> Mangled.t

    Get the name component of a program variable.

    val get_ret_pvar : Procname.t -> t

    get_ret_pvar proc_name retuns the return pvar associated with the procedure name

    val get_ret_param_pvar : Procname.t -> t

    get_ret_param_pvar proc_name retuns the return_param pvar associated with the procedure name

    val get_simplified_name : t -> string

    Get a simplified version of the name component of a program variable.

    val is_abduced : t -> bool

    Check if the pvar is an abduced return var or param passed by ref

    val is_callee : t -> bool

    Check if the pvar is a callee var

    val is_global : t -> bool

    Check if the pvar is a global var or a static local var

    val is_static_companion : t -> bool

    Check if the pvar is a global var of a static companion

    val is_static_local : t -> bool

    Check if the pvar is a static variable declared inside a function

    val is_constant_array : t -> bool

    Check if the pvar has a constant array type

    val is_const : t -> bool

    Check if the pvar has a const type

    val is_local : t -> bool

    Check if the pvar is a (non-static) local var

    val is_seed : t -> bool

    Check if the pvar is a seed var

    val is_return : t -> bool

    Check if the pvar is a return var

    val is_this : t -> bool

    Check if a pvar is the special "this" var

    val is_self : t -> bool

    Check if a pvar is the special "self" var

    val is_artificial : t -> bool

    Check if a pvar is an artificial variable related coroutine, "__promise" or "__coro_frame"

    val is_frontend_tmp : t -> bool

    return true if pvar is a temporary variable generated by the frontend

    val is_clang_tmp : t -> bool

    return true if pvar is a temporary variable generated by clang

    val is_ssa_frontend_tmp : t -> bool

    return true if pvar is a temporary variable generated by the frontend and is only assigned once on a non-looping control-flow path

    val is_cpp_temporary : t -> bool

    return true if this pvar represents a C++ temporary object (see http://en.cppreference.com/w/cpp/language/lifetime)

    val is_cpp_unnamed_param : t -> bool

    return true if this pvar represents an unnamed parameter

    val is_gmock_param : t -> bool

    return true if the parameter is for mock methods of GoogleTest

    val is_objc_static_local_of_proc_name : string -> t -> bool

    Check if a pvar is a local static in objc

    val is_block_pvar : t -> bool

    Check if a pvar is a local pointing to a block in objc

    val get_tmp_id : t -> Ident.t option

    In case of a temporary variable, returns the id used to create it, or None otherwise.

    val mk : ?is_syntactic:bool -> Mangled.t -> Procname.t -> t

    mk name proc_name creates a program var with the given function name

    val mk_abduced_ref_param : Procname.t -> int -> IBase.Location.t -> t

    create an abduced variable for a parameter passed by reference

    val mk_abduced_ret : Procname.t -> IBase.Location.t -> t

    create an abduced return variable for a call to proc_name at loc

    val mk_callee : Mangled.t -> Procname.t -> t

    mk_callee name proc_name creates a program var for a callee function with the given function name

    val mk_global : ?is_constexpr:bool -> ?is_ice:bool -> ?is_pod:bool -> @@ -10,4 +10,4 @@ ?translation_unit:IBase.SourceFile.t -> ?template_args:Typ.template_spec_info -> Mangled.t -> - t

    create a global variable with the given name

    val mk_tmp : string -> Procname.t -> t

    create a fresh temporary variable local to procedure pname. for use in the frontends only!

    val pp : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a program variable.

    val pp_value : F.formatter -> t -> unit

    Pretty print a pvar which denotes a value, not an address

    val pp_value_non_verbose : F.formatter -> t -> unit

    Non-verbose version of pp_value

    val pp_translation_unit : F.formatter -> translation_unit -> unit
    val to_callee : Procname.t -> t -> t

    Turn an ordinary program variable into a callee program variable

    val to_seed : t -> t

    Turn a pvar into a seed pvar (which stores the initial value of a stack var)

    val to_string : t -> string

    Convert a pvar to string.

    val unnamed_param_prefix : string
    val get_translation_unit : t -> translation_unit

    Get the translation unit corresponding to a global. Raises Invalid_arg if not a global.

    val is_compile_constant : t -> bool

    Is the variable's value a compile-time constant? Always (potentially incorrectly) returns false for non-globals.

    val is_ice : t -> bool

    Is the variable's type an integral constant expression? Always (potentially incorrectly) returns false for non-globals.

    val is_pod : t -> bool

    Is the variable's type a "Plain Old Data" type (C++)? Always (potentially incorrectly) returns true for non-globals.

    val get_initializer_pname : t -> Procname.t option

    Get the procname of the initializer function for the given global variable

    val get_template_args : t -> Typ.template_spec_info
    val materialized_cpp_temporary : string
    module Set : IStdlib.PrettyPrintable.PPSet with type elt = t
    module Map : IStdlib.PrettyPrintable.PPMap with type key = t
    + t

    create a global variable with the given name

    val mk_tmp : string -> Procname.t -> t

    create a fresh temporary variable local to procedure pname. for use in the frontends only!

    val pp : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a program variable.

    val pp_value : F.formatter -> t -> unit

    Pretty print a pvar which denotes a value, not an address

    val pp_value_non_verbose : F.formatter -> t -> unit

    Non-verbose version of pp_value

    val pp_translation_unit : F.formatter -> translation_unit -> unit
    val to_callee : Procname.t -> t -> t

    Turn an ordinary program variable into a callee program variable

    val to_seed : t -> t

    Turn a pvar into a seed pvar (which stores the initial value of a stack var)

    val to_string : t -> string

    Convert a pvar to string.

    val unnamed_param_prefix : string
    val get_translation_unit : t -> translation_unit

    Get the translation unit corresponding to a global. Raises Invalid_arg if not a global.

    val is_compile_constant : t -> bool

    Is the variable's value a compile-time constant? Always (potentially incorrectly) returns false for non-globals.

    val is_ice : t -> bool

    Is the variable's type an integral constant expression? Always (potentially incorrectly) returns false for non-globals.

    val is_pod : t -> bool

    Is the variable's type a "Plain Old Data" type (C++)? Always (potentially incorrectly) returns true for non-globals.

    val is_syntactic : t -> bool
    val get_initializer_pname : t -> Procname.t option

    Get the procname of the initializer function for the given global variable

    val get_template_args : t -> Typ.template_spec_info
    val materialized_cpp_temporary : string
    module Set : IStdlib.PrettyPrintable.PPSet with type elt = t
    module Map : IStdlib.PrettyPrintable.PPMap with type key = t
    diff --git a/website/static/odoc/next/infer/IR/Tenv/index.html b/website/static/odoc/next/infer/IR/Tenv/index.html index 19e4b871d90..74454a2068c 100644 --- a/website/static/odoc/next/infer/IR/Tenv/index.html +++ b/website/static/odoc/next/infer/IR/Tenv/index.html @@ -28,12 +28,12 @@ t -> Typ.Name.t -> f:(Typ.Name.t -> Struct.t option -> 'a option) -> - 'a option
    val get_fields_trans : t -> Typ.Name.t -> Struct.field list

    Get all fields from the super classes transitively

    type per_file =
    1. | Global
    2. | FileLocal of t
    val pp_per_file : Stdlib.Format.formatter -> per_file -> unit

    print per file type environment

    val merge : src:t -> dst:t -> unit

    Merge src into dst

    val merge_per_file : src:per_file -> dst:per_file -> per_file

    Best-effort merge of src into dst. If a procedure is both in dst and src, the one in dst will get overwritten.

    module MethodInfo : sig ... end
    type resolution_result =
    1. | ResolvedTo of MethodInfo.t
    2. | Unresolved of Typ.Name.Set.t
    val resolve_method : + 'a option
    val get_fields_trans : t -> Typ.Name.t -> Struct.field list

    Get all fields from the super classes transitively

    type per_file =
    1. | Global
    2. | FileLocal of t
    val pp_per_file : Stdlib.Format.formatter -> per_file -> unit

    print per file type environment

    val merge : src:t -> dst:t -> unit

    Merge src into dst

    val merge_per_file : src:per_file -> dst:per_file -> per_file

    Best-effort merge of src into dst. If a procedure is both in dst and src, the one in dst will get overwritten.

    module MethodInfo : sig ... end
    type unresolved_reason =
    1. | MaybeMissingDueToMissedCapture
    2. | MaybeMissingDueToIncompleteModel
    type resolution_result =
    1. | ResolvedTo of MethodInfo.t
    2. | Unresolved of {
      1. missed_captures : Typ.Name.Set.t;
      2. unresolved_reason : unresolved_reason option;
      }
    val resolve_method : method_exists:(Procname.t -> Procname.t list -> bool) -> t -> Typ.Name.t -> Procname.t -> - resolution_result

    resolve_method ~method_exists tenv class_name procname returns either ResolvedTo info where info resolves procname to a method in class_name or its super-classes, that is non-virtual (non-Java-interface method); or, it returns Unresolved missed_captures where missed_captures is the set of classnames for which the hierarchy traversal needs to examine its members but which have not been captured. method_exists adapted_procname methods should check if adapted_procname (procname but with its class potentially changed to some other_class) is among the methods of other_class.

    val resolve_field_info : + resolution_result

    resolve_method ~method_exists tenv class_name procname returns either ResolvedTo info where info resolves procname to a method in class_name or its super-classes, that is non-virtual (non-Java-interface method); or, it returns Unresolved {missed_captures; unresolved_reason} where missed_captures is the set of classnames for which the hierarchy traversal needs to examine its members but which have not been captured and unresolved_reason is an additional information about the unresolved reasons which are for suppressing FP issues. method_exists adapted_procname methods should check if adapted_procname (procname but with its class potentially changed to some other_class) is among the methods of other_class.

    val resolve_field_info : t -> Typ.Name.t -> Fieldname.t -> diff --git a/website/static/odoc/next/infer/IR/Typ/index.html b/website/static/odoc/next/infer/IR/Typ/index.html index 8824ce41bf9..059040ba2ce 100644 --- a/website/static/odoc/next/infer/IR/Typ/index.html +++ b/website/static/odoc/next/infer/IR/Typ/index.html @@ -2,23 +2,34 @@ Typ (infer.IR.Typ)

    Module IR.Typ

    The Smallfoot Intermediate Language: Types

    module F = Stdlib.Format
    type ikind =
    1. | IChar
      (*

      char

      *)
    2. | ISChar
      (*

      signed char

      *)
    3. | IUChar
      (*

      unsigned char

      *)
    4. | IBool
      (*

      bool

      *)
    5. | IInt
      (*

      int

      *)
    6. | IUInt
      (*

      unsigned int

      *)
    7. | IShort
      (*

      short

      *)
    8. | IUShort
      (*

      unsigned short

      *)
    9. | ILong
      (*

      long

      *)
    10. | IULong
      (*

      unsigned long

      *)
    11. | ILongLong
      (*

      long long (or _int64 on Microsoft Visual C)

      *)
    12. | IULongLong
      (*

      unsigned long long (or unsigned _int64 on Microsoft Visual C)

      *)
    13. | I128
      (*

      __int128_t

      *)
    14. | IU128
      (*

      __uint128_t

      *)

    Kinds of integers

    val compare_ikind : ikind -> ikind -> int
    val equal_ikind : ikind -> ikind -> bool
    val hash_fold_ikind : Ppx_hash_lib.Std.Hash.state -> ikind -> - Ppx_hash_lib.Std.Hash.state
    val hash_ikind : ikind -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_normalize_ikind : ikind -> ikind
    val hash_normalize_ikind_opt : ikind option -> ikind option
    val hash_normalize_ikind_list : ikind list -> ikind list
    val ikind_is_char : ikind -> bool

    Check whether the integer kind is a char

    val ikind_is_unsigned : ikind -> bool

    Check whether the integer kind is unsigned

    type fkind =
    1. | FFloat
      (*

      float

      *)
    2. | FDouble
      (*

      double

      *)
    3. | FLongDouble
      (*

      long double

      *)

    Kinds of floating-point numbers

    val compare_fkind : fkind -> fkind -> int
    type ptr_kind =
    1. | Pk_pointer
      (*

      C/C++, Java, Objc standard/__strong pointer

      *)
    2. | Pk_lvalue_reference
      (*

      C++ lvalue reference

      *)
    3. | Pk_rvalue_reference
      (*

      C++ rvalue reference

      *)
    4. | Pk_objc_weak
      (*

      Obj-C __weak pointer

      *)
    5. | Pk_objc_unsafe_unretained
      (*

      Obj-C __unsafe_unretained pointer

      *)
    6. | Pk_objc_autoreleasing
      (*

      Obj-C __autoreleasing pointer

      *)

    kind of pointer

    val compare_ptr_kind : ptr_kind -> ptr_kind -> int
    val equal_ptr_kind : ptr_kind -> ptr_kind -> bool
    type type_quals
    val compare_type_quals : type_quals -> type_quals -> int
    val equal_type_quals : type_quals -> type_quals -> bool
    val mk_type_quals : + Ppx_hash_lib.Std.Hash.state
    val hash_ikind : ikind -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_normalize_ikind : ikind -> ikind
    val hash_normalize_ikind_opt : ikind option -> ikind option
    val hash_normalize_ikind_list : ikind list -> ikind list
    val ikind_is_char : ikind -> bool

    Check whether the integer kind is a char

    val ikind_is_unsigned : ikind -> bool

    Check whether the integer kind is unsigned

    type fkind =
    1. | FFloat
      (*

      float

      *)
    2. | FDouble
      (*

      double

      *)
    3. | FLongDouble
      (*

      long double

      *)

    Kinds of floating-point numbers

    val compare_fkind : fkind -> fkind -> int
    type ptr_kind =
    1. | Pk_pointer
      (*

      C/C++, Java, Objc standard/__strong pointer

      *)
    2. | Pk_lvalue_reference
      (*

      C++ lvalue reference

      *)
    3. | Pk_rvalue_reference
      (*

      C++ rvalue reference

      *)
    4. | Pk_objc_weak
      (*

      Obj-C __weak pointer

      *)
    5. | Pk_objc_unsafe_unretained
      (*

      Obj-C __unsafe_unretained pointer

      *)
    6. | Pk_objc_autoreleasing
      (*

      Obj-C __autoreleasing pointer

      *)
    7. | Pk_objc_nullable_block
      (*

      Obj-C block annotated with nullable

      *)
    8. | Pk_objc_nonnull_block
      (*

      Obj-C block annotated with nonnull

      *)

    kind of pointer

    val compare_ptr_kind : ptr_kind -> ptr_kind -> int
    val equal_ptr_kind : ptr_kind -> ptr_kind -> bool
    type type_quals
    val compare_type_quals : type_quals -> type_quals -> int
    val equal_type_quals : type_quals -> type_quals -> bool
    val mk_type_quals : ?default:type_quals -> ?is_const:bool -> ?is_reference:bool -> ?is_restrict:bool -> ?is_volatile:bool -> unit -> - type_quals
    val is_const : type_quals -> bool
    val is_restrict : type_quals -> bool
    val is_volatile : type_quals -> bool
    type t = {
    1. desc : desc;
    2. quals : type_quals;
    }

    types for sil (structured) expressions

    and desc =
    1. | Tint of ikind
      (*

      integer type

      *)
    2. | Tfloat of fkind
      (*

      float type

      *)
    3. | Tvoid
      (*

      void type

      *)
    4. | Tfun
      (*

      function type

      *)
    5. | Tptr of t * ptr_kind
      (*

      pointer type

      *)
    6. | Tstruct of name
      (*

      structured value type name

      *)
    7. | TVar of string
      (*

      type variable (ie. C++ template variables)

      *)
    8. | Tarray of {
      1. elt : t;
      2. length : IntLit.t option;
      3. stride : IntLit.t option;
      }
      (*

      array type with statically fixed length and stride

      *)
    and objc_block_sig = {
    1. class_name : name option;
    2. name : string;
    3. mangled : string;
    }
    and c_function_sig = {
    1. c_name : QualifiedCppName.t;
    2. c_mangled : string option;
    3. c_template_args : template_spec_info;
    }
    and name =
    1. | CStruct of QualifiedCppName.t
    2. | CUnion of QualifiedCppName.t
    3. | CppClass of {
      1. name : QualifiedCppName.t;
      2. template_spec_info : template_spec_info;
      3. is_union : bool;
      }
    4. | CSharpClass of CSharpClassName.t
    5. | ErlangType of ErlangTypeName.t
    6. | HackClass of HackClassName.t
    7. | JavaClass of JavaClassName.t
    8. | ObjcClass of QualifiedCppName.t
    9. | ObjcProtocol of QualifiedCppName.t
    10. | PythonClass of PythonClassName.t
    11. | ObjcBlock of objc_block_sig
    12. | CFunction of c_function_sig
    and template_arg =
    1. | TType of t
    2. | TInt of IStdlib.IStd.Int64.t
    3. | TNull
    4. | TNullPtr
    5. | TOpaque
    and template_spec_info =
    1. | NoTemplate
    2. | Template of {
      1. mangled : string option;
        (*

        WARNING: because of type substitutions performed by sub_type and sub_tname, mangling is not guaranteed to be unique to a single type. All the information in the template arguments is also needed for uniqueness.

        *)
      2. args : template_arg list;
      }
    val compare : t -> t -> int
    val compare_desc : desc -> desc -> int
    val compare_objc_block_sig : objc_block_sig -> objc_block_sig -> int
    val compare_c_function_sig : c_function_sig -> c_function_sig -> int
    val compare_name : name -> name -> int
    val compare_template_arg : template_arg -> template_arg -> int
    val compare_template_spec_info : + type_quals
    val is_const : type_quals -> bool
    val is_restrict : type_quals -> bool
    val is_volatile : type_quals -> bool
    type t = {
    1. desc : desc;
    2. quals : type_quals;
    }

    types for sil (structured) expressions

    and function_prototype = {
    1. params_type : t list;
    2. return_type : t;
    }
    and desc =
    1. | Tint of ikind
      (*

      integer type

      *)
    2. | Tfloat of fkind
      (*

      float type

      *)
    3. | Tvoid
      (*

      void type

      *)
    4. | Tfun of function_prototype option
      (*

      function type

      *)
    5. | Tptr of t * ptr_kind
      (*

      pointer type

      *)
    6. | Tstruct of name
      (*

      structured value type name

      *)
    7. | TVar of string
      (*

      type variable (ie. C++ template variables)

      *)
    8. | Tarray of {
      1. elt : t;
      2. length : IntLit.t option;
      3. stride : IntLit.t option;
      }
      (*

      array type with statically fixed length and stride

      *)
    and objc_block_sig = {
    1. class_name : name option;
    2. name : string;
    3. mangled : string;
    }
    and c_function_sig = {
    1. c_name : QualifiedCppName.t;
    2. c_mangled : string option;
    3. c_template_args : template_spec_info;
    }
    and name =
    1. | CStruct of QualifiedCppName.t
    2. | CUnion of QualifiedCppName.t
    3. | CppClass of {
      1. name : QualifiedCppName.t;
      2. template_spec_info : template_spec_info;
      3. is_union : bool;
      }
    4. | CSharpClass of CSharpClassName.t
    5. | ErlangType of ErlangTypeName.t
    6. | HackClass of HackClassName.t
    7. | JavaClass of JavaClassName.t
    8. | ObjcClass of QualifiedCppName.t
    9. | ObjcProtocol of QualifiedCppName.t
    10. | PythonClass of PythonClassName.t
    11. | ObjcBlock of objc_block_sig
    12. | CFunction of c_function_sig
    and template_arg =
    1. | TType of t
    2. | TInt of IStdlib.IStd.Int64.t
    3. | TNull
    4. | TNullPtr
    5. | TOpaque
    and template_spec_info =
    1. | NoTemplate
    2. | Template of {
      1. mangled : string option;
        (*

        WARNING: because of type substitutions performed by sub_type and sub_tname, mangling is not guaranteed to be unique to a single type. All the information in the template arguments is also needed for uniqueness.

        *)
      2. args : template_arg list;
      }
    val compare : t -> t -> int
    val compare_function_prototype : + function_prototype -> + function_prototype -> + int
    val compare_desc : desc -> desc -> int
    val compare_objc_block_sig : objc_block_sig -> objc_block_sig -> int
    val compare_c_function_sig : c_function_sig -> c_function_sig -> int
    val compare_name : name -> name -> int
    val compare_template_arg : template_arg -> template_arg -> int
    val compare_template_spec_info : template_spec_info -> template_spec_info -> - int
    val equal_objc_block_sig : objc_block_sig -> objc_block_sig -> bool
    val equal_c_function_sig : c_function_sig -> c_function_sig -> bool
    val equal_template_arg : template_arg -> template_arg -> bool
    val equal_template_spec_info : template_spec_info -> template_spec_info -> bool
    val yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_desc : desc -> Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_objc_block_sig : + int
    val equal_function_prototype : function_prototype -> function_prototype -> bool
    val equal_objc_block_sig : objc_block_sig -> objc_block_sig -> bool
    val equal_c_function_sig : c_function_sig -> c_function_sig -> bool
    val equal_template_arg : template_arg -> template_arg -> bool
    val equal_template_spec_info : template_spec_info -> template_spec_info -> bool
    val yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_function_prototype : + function_prototype -> + Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_desc : desc -> Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_objc_block_sig : objc_block_sig -> Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_c_function_sig : c_function_sig -> Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_name : name -> Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_template_arg : template_arg -> Ppx_yojson_conv_lib.Yojson.Safe.t
    val yojson_of_template_spec_info : template_spec_info -> - Ppx_yojson_conv_lib.Yojson.Safe.t
    val hash_normalize : t -> t
    val hash_normalize_opt : t option -> t option
    val hash_normalize_list : t list -> t list
    val hash_normalize_desc : desc -> desc
    val hash_normalize_desc_opt : desc option -> desc option
    val hash_normalize_desc_list : desc list -> desc list
    val hash_normalize_objc_block_sig : objc_block_sig -> objc_block_sig
    val hash_normalize_objc_block_sig_opt : + Ppx_yojson_conv_lib.Yojson.Safe.t
    val hash_normalize : t -> t
    val hash_normalize_opt : t option -> t option
    val hash_normalize_list : t list -> t list
    val hash_normalize_function_prototype : + function_prototype -> + function_prototype
    val hash_normalize_function_prototype_opt : + function_prototype option -> + function_prototype option
    val hash_normalize_function_prototype_list : + function_prototype list -> + function_prototype list
    val hash_normalize_desc : desc -> desc
    val hash_normalize_desc_opt : desc option -> desc option
    val hash_normalize_desc_list : desc list -> desc list
    val hash_normalize_objc_block_sig : objc_block_sig -> objc_block_sig
    val hash_normalize_objc_block_sig_opt : objc_block_sig option -> objc_block_sig option
    val hash_normalize_objc_block_sig_list : objc_block_sig list -> @@ -37,7 +48,12 @@ template_spec_info list
    val hash_fold_t : Ppx_hash_lib.Std.Hash.state -> t -> - Ppx_hash_lib.Std.Hash.state
    val hash : t -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_fold_desc : + Ppx_hash_lib.Std.Hash.state
    val hash : t -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_fold_function_prototype : + Ppx_hash_lib.Std.Hash.state -> + function_prototype -> + Ppx_hash_lib.Std.Hash.state
    val hash_function_prototype : + function_prototype -> + Ppx_hash_lib.Std.Hash.hash_value
    val hash_fold_desc : Ppx_hash_lib.Std.Hash.state -> desc -> Ppx_hash_lib.Std.Hash.state
    val hash_desc : desc -> Ppx_hash_lib.Std.Hash.hash_value
    val hash_fold_objc_block_sig : @@ -57,7 +73,7 @@ template_spec_info -> Ppx_hash_lib.Std.Hash.state
    val hash_template_spec_info : template_spec_info -> - Ppx_hash_lib.Std.Hash.hash_value
    val sexp_of_t : t -> Sexplib0.Sexp.t
    val sexp_of_desc : desc -> Sexplib0.Sexp.t
    val sexp_of_objc_block_sig : objc_block_sig -> Sexplib0.Sexp.t
    val sexp_of_c_function_sig : c_function_sig -> Sexplib0.Sexp.t
    val sexp_of_name : name -> Sexplib0.Sexp.t
    val sexp_of_template_arg : template_arg -> Sexplib0.Sexp.t
    val sexp_of_template_spec_info : template_spec_info -> Sexplib0.Sexp.t
    val t_of_sexp : Sexplib0.Sexp.t -> t
    val desc_of_sexp : Sexplib0.Sexp.t -> desc
    val objc_block_sig_of_sexp : Sexplib0.Sexp.t -> objc_block_sig
    val c_function_sig_of_sexp : Sexplib0.Sexp.t -> c_function_sig
    val name_of_sexp : Sexplib0.Sexp.t -> name
    val template_arg_of_sexp : Sexplib0.Sexp.t -> template_arg
    val template_spec_info_of_sexp : Sexplib0.Sexp.t -> template_spec_info
    val pp_template_spec_info : + Ppx_hash_lib.Std.Hash.hash_value
    val sexp_of_t : t -> Sexplib0.Sexp.t
    val sexp_of_function_prototype : function_prototype -> Sexplib0.Sexp.t
    val sexp_of_desc : desc -> Sexplib0.Sexp.t
    val sexp_of_objc_block_sig : objc_block_sig -> Sexplib0.Sexp.t
    val sexp_of_c_function_sig : c_function_sig -> Sexplib0.Sexp.t
    val sexp_of_name : name -> Sexplib0.Sexp.t
    val sexp_of_template_arg : template_arg -> Sexplib0.Sexp.t
    val sexp_of_template_spec_info : template_spec_info -> Sexplib0.Sexp.t
    val t_of_sexp : Sexplib0.Sexp.t -> t
    val function_prototype_of_sexp : Sexplib0.Sexp.t -> function_prototype
    val desc_of_sexp : Sexplib0.Sexp.t -> desc
    val objc_block_sig_of_sexp : Sexplib0.Sexp.t -> objc_block_sig
    val c_function_sig_of_sexp : Sexplib0.Sexp.t -> c_function_sig
    val name_of_sexp : Sexplib0.Sexp.t -> name
    val template_arg_of_sexp : Sexplib0.Sexp.t -> template_arg
    val template_spec_info_of_sexp : Sexplib0.Sexp.t -> template_spec_info
    val pp_template_spec_info : IStdlib.Pp.env -> F.formatter -> template_spec_info -> @@ -67,4 +83,4 @@ ?length:IntLit.t -> ?stride:IntLit.t -> t -> - t

    Create an array type from a given element type. If length or stride value is given, use them as static length and size.

    val mk_struct : name -> t
    val mk_ptr : ?ptr_kind:ptr_kind -> t -> t

    make a pointer to t, default kind is Pk_pointer

    val set_ptr_to_const : t -> t
    val set_to_const : t -> t
    val get_ikind_opt : t -> ikind option

    Get ikind if the type is integer.

    val size_t : ikind

    ikind of size_t

    val is_weak_pointer : t -> bool
    val is_strong_pointer : t -> bool
    module Name : sig ... end
    val equal : t -> t -> bool

    Equality for types.

    val equal_desc : desc -> desc -> bool
    val equal_name : name -> name -> bool
    val equal_ignore_quals : t -> t -> bool

    Equality for types, but ignoring quals in it.

    val overloading_resolution : (t -> t -> bool) list

    overloading_resolution is a list of predicates that compare whether a type T1 binds a type T2.

    val pp_full : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a type with all the details.

    val pp : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a type.

    val pp_desc : IStdlib.Pp.env -> F.formatter -> desc -> unit

    Pretty print a type desc.

    val pp_java : verbose:bool -> F.formatter -> t -> unit

    Pretty print a Java type. Raises if type isn't produced by the Java frontend

    val pp_cs : verbose:bool -> F.formatter -> t -> unit

    Pretty print a Java type. Raises if type isn't produced by the CSharp frontend

    val to_string : t -> string
    val desc_to_string : desc -> string
    val d_full : t -> unit

    Dump a type with all the details.

    val d_list : t list -> unit

    Dump a list of types.

    val name : t -> Name.t option

    The name of a type

    val strip_ptr : t -> t

    turn a *T into a T. fails if t is not a pointer type

    val is_ptr_to_ignore_quals : t -> ptr:t -> bool

    check if ptr is a pointer type to t, ignoring quals

    val is_ptr_to_const : t -> bool

    check if typ is a pointer type to const

    val array_elem : t option -> t -> t

    If an array type, return the type of the element. If not, return the default type if given, otherwise raise an exception

    val is_objc_class : t -> bool
    val is_cpp_class : t -> bool
    val is_pointer_to_cpp_class : t -> bool
    val is_pointer_to_smart_pointer : t -> bool
    val is_unique_pointer : t -> bool
    val is_pointer_to_unique_pointer : t -> bool
    val shared_pointer_matcher : QualifiedCppName.Match.quals_matcher
    val is_shared_pointer : t -> bool
    val is_folly_coro : t -> bool
    val is_thrift_field_ref : t -> bool
    val is_thrift_field_ref_str : string -> bool
    val is_pointer_to_void : t -> bool
    val is_void : t -> bool
    val is_pointer_to_int : t -> bool
    val is_pointer_to_const : t -> bool
    val is_pointer_to_function : t -> bool
    val is_pointer : t -> bool
    val is_reference : t -> bool
    val is_rvalue_reference : t -> bool
    val is_const_reference_on_source : t -> bool
    val is_struct : t -> bool
    val is_int : t -> bool
    val is_unsigned_int : t -> bool
    val is_char : t -> bool
    val is_csharp_type : t -> bool

    is t a type produced by the Java frontend?

    val is_java_type : t -> bool

    is t a type produced by the Java frontend?

    val unsome : string -> t option -> t
    + t

    Create an array type from a given element type. If length or stride value is given, use them as static length and size.

    val mk_struct : name -> t
    val mk_ptr : ?ptr_kind:ptr_kind -> t -> t

    make a pointer to t, default kind is Pk_pointer

    val set_ptr_to_const : t -> t
    val set_to_const : t -> t
    val get_ikind_opt : t -> ikind option

    Get ikind if the type is integer.

    val size_t : ikind

    ikind of size_t

    val is_weak_pointer : t -> bool
    val is_block_nonnull_pointer : t -> bool
    val is_strong_pointer : t -> bool
    module Name : sig ... end
    val equal : t -> t -> bool

    Equality for types.

    val equal_desc : desc -> desc -> bool
    val equal_name : name -> name -> bool
    val equal_ignore_quals : t -> t -> bool

    Equality for types, but ignoring quals in it.

    val overloading_resolution : (t -> t -> bool) list

    overloading_resolution is a list of predicates that compare whether a type T1 binds a type T2.

    val pp_full : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a type with all the details.

    val pp : IStdlib.Pp.env -> F.formatter -> t -> unit

    Pretty print a type.

    val pp_desc : IStdlib.Pp.env -> F.formatter -> desc -> unit

    Pretty print a type desc.

    val pp_java : verbose:bool -> F.formatter -> t -> unit

    Pretty print a Java type. Raises if type isn't produced by the Java frontend

    val pp_cs : verbose:bool -> F.formatter -> t -> unit

    Pretty print a Java type. Raises if type isn't produced by the CSharp frontend

    val to_string : t -> string
    val desc_to_string : desc -> string
    val d_full : t -> unit

    Dump a type with all the details.

    val d_list : t list -> unit

    Dump a list of types.

    val name : t -> Name.t option

    The name of a type

    val strip_ptr : t -> t

    turn a *T into a T. fails if t is not a pointer type

    val is_ptr_to_ignore_quals : t -> ptr:t -> bool

    check if ptr is a pointer type to t, ignoring quals

    val is_ptr_to_const : t -> bool

    check if typ is a pointer type to const

    val array_elem : t option -> t -> t

    If an array type, return the type of the element. If not, return the default type if given, otherwise raise an exception

    val is_objc_class : t -> bool
    val is_cpp_class : t -> bool
    val is_pointer_to_cpp_class : t -> bool
    val is_pointer_to_smart_pointer : t -> bool
    val is_unique_pointer : t -> bool
    val is_pointer_to_unique_pointer : t -> bool
    val shared_pointer_matcher : QualifiedCppName.Match.quals_matcher
    val is_shared_pointer : t -> bool
    val is_folly_coro : t -> bool
    val is_thrift_field_ref : t -> bool
    val is_thrift_field_ref_str : string -> bool
    val is_pointer_to_void : t -> bool
    val is_void : t -> bool
    val is_pointer_to_int : t -> bool
    val is_pointer_to_const : t -> bool
    val is_pointer_to_function : t -> bool
    val is_pointer : t -> bool
    val is_reference : t -> bool
    val is_rvalue_reference : t -> bool
    val is_const_reference_on_source : t -> bool
    val is_struct : t -> bool
    val is_int : t -> bool
    val is_unsigned_int : t -> bool
    val is_char : t -> bool
    val is_csharp_type : t -> bool

    is t a type produced by the Java frontend?

    val is_java_type : t -> bool

    is t a type produced by the Java frontend?

    val unsome : string -> t option -> t
    diff --git a/website/static/odoc/next/infer/IStdlib/Escape/index.html b/website/static/odoc/next/infer/IStdlib/Escape/index.html index 777c2cc9de0..0906f572a89 100644 --- a/website/static/odoc/next/infer/IStdlib/Escape/index.html +++ b/website/static/odoc/next/infer/IStdlib/Escape/index.html @@ -1,2 +1,2 @@ -Escape (infer.IStdlib.Escape)

    Module IStdlib.Escape

    Escape a string, eg replace reserved characters with escape sequences

    val escape_dotty : string -> string

    escape a string to be used in a dotty file

    val escape_path : string -> string

    escape a path replacing the directory separator with an underscore

    val escape_xml : string -> string

    escape a string to be used in an xml file

    val escape_url : string -> string
    val escape_json : string -> string

    escape characters in the string so it becomes a valid JSON string

    val escape_double_quotes : string -> string

    replaces double-quote with backslash double-quote

    val escape_in_single_quotes : string -> string

    put the string inside single quotes and escape the single quotes within that string

    val escape_shell : string -> string

    escape the string so it can be passed to the shell without remorse

    val escape_filename : string -> string

    escape the characters that cannot be used in filenames

    +Escape (infer.IStdlib.Escape)

    Module IStdlib.Escape

    Escape a string, eg replace reserved characters with escape sequences

    val escape_dotty : string -> string

    escape a string to be used in a dotty file

    val escape_path : string -> string

    escape a path replacing the directory separator with an underscore

    val escape_xml : string -> string

    escape a string to be used in an xml file

    val escape_url : string -> string
    val escape_json : string -> string

    escape characters in the string so it becomes a valid JSON string

    val escape_double_quotes : string -> string

    replaces double-quote with backslash double-quote

    val escape_in_single_quotes : string -> string

    put the string inside single quotes and escape the single quotes within that string

    val escape_line_space : string -> string

    replaces a line space with backslash n

    val escape_shell : string -> string

    escape the string so it can be passed to the shell without remorse

    val escape_filename : string -> string

    escape the characters that cannot be used in filenames

    diff --git a/website/static/odoc/next/infer/IStdlib/IList/index.html b/website/static/odoc/next/infer/IStdlib/IList/index.html index 26702af0239..6846003e00b 100644 --- a/website/static/odoc/next/infer/IStdlib/IList/index.html +++ b/website/static/odoc/next/infer/IStdlib/IList/index.html @@ -34,4 +34,4 @@ init:'acc -> f:(int -> 'acc -> 'a -> ('acc, 'err) Core.result) -> 'a list -> - ('acc, 'err) Core.result
    val move_last_to_first : 'a list -> 'a list
    val traverse_opt : 'a list -> f:('a -> 'b option) -> 'b list option

    Applies f to the elements of the list and returns None if any application results in None otherwise returns Some list'.

    + ('acc, 'err) Core.result
    val move_last_to_first : 'a list -> 'a list
    val traverse_opt : 'a list -> f:('a -> 'b option) -> 'b list option

    Applies f to the elements of the list and returns None if any application results in None otherwise returns Some list'.

    val k_first_columns_same_cell : equal:('a -> 'a -> bool) -> 'a list list -> int

    k_first_columns_same_cell ~equal lines returns an integer k such that

    • 0 <= k <= length lines
    • forall i such that 0 <= i < k, forall j such that 0 <= j < length lines, linesji = linesj0
    diff --git a/website/static/odoc/next/infer/Pulselib/PulseCallEvent/index.html b/website/static/odoc/next/infer/Pulselib/PulseCallEvent/index.html index c04226f71f1..aab6b1ddaf3 100644 --- a/website/static/odoc/next/infer/Pulselib/PulseCallEvent/index.html +++ b/website/static/odoc/next/infer/Pulselib/PulseCallEvent/index.html @@ -1,2 +1,2 @@ -PulseCallEvent (infer.Pulselib.PulseCallEvent)

    Module Pulselib.PulseCallEvent

    module F = Stdlib.Format
    type t =
    1. | Call of IR.Procname.t
      (*

      known function with summary

      *)
    2. | Model of string
      (*

      hardcoded model with hardcoded name

      *)
    3. | ModelName of IR.Procname.t
      (*

      hardcoded model taking the name of the original procedure

      *)
    4. | SkippedKnownCall of IR.Procname.t
      (*

      known function without summary

      *)
    5. | SkippedUnknownCall of IR.Exp.t
      (*

      couldn't link the expression to a proc name

      *)
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    val pp : F.formatter -> t -> unit
    val describe : F.formatter -> t -> unit
    val pp_name_only : F.formatter -> t -> unit
    val to_name_only : t -> string
    +PulseCallEvent (infer.Pulselib.PulseCallEvent)

    Module Pulselib.PulseCallEvent

    module F = Stdlib.Format
    type t =
    1. | Call of IR.Procname.t
      (*

      known function with summary

      *)
    2. | Model of string
      (*

      hardcoded model with hardcoded name

      *)
    3. | ModelName of IR.Procname.t
      (*

      hardcoded model taking the name of the original procedure

      *)
    4. | SkippedKnownCall of IR.Procname.t
      (*

      known function without summary

      *)
    5. | SkippedUnknownCall of IR.Exp.t
      (*

      couldn't link the expression to a proc name

      *)
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    val pp : F.formatter -> t -> unit
    val describe : F.formatter -> t -> unit
    val pp_name_only : with_class:bool -> F.formatter -> t -> unit
    val to_name_only : t -> string
    diff --git a/website/static/odoc/next/infer/Pulselib/PulseCallOperations/index.html b/website/static/odoc/next/infer/Pulselib/PulseCallOperations/index.html index 0712ff5cf10..0ac4c02a8a8 100644 --- a/website/static/odoc/next/infer/Pulselib/PulseCallOperations/index.html +++ b/website/static/odoc/next/infer/Pulselib/PulseCallOperations/index.html @@ -4,6 +4,7 @@ PulseSummary.t Absint.InterproceduralAnalysis.t -> Pulselib.PulseDomainInterface.PathContext.t -> IBase.Location.t -> + ?unresolved_reason:IR.Tenv.unresolved_reason -> IR.Procname.t -> ret:(IR.Ident.t * IR.Typ.t) -> actuals: diff --git a/website/static/odoc/next/infer/Pulselib/PulseDecompilerExpr/index.html b/website/static/odoc/next/infer/Pulselib/PulseDecompilerExpr/index.html index ae5011fcc71..c895747f045 100644 --- a/website/static/odoc/next/infer/Pulselib/PulseDecompilerExpr/index.html +++ b/website/static/odoc/next/infer/Pulselib/PulseDecompilerExpr/index.html @@ -1,2 +1,2 @@ -PulseDecompilerExpr (infer.Pulselib.PulseDecompilerExpr)

    Module Pulselib.PulseDecompilerExpr

    module F = Stdlib.Format
    module AbstractValue = PulseAbstractValue
    module CallEvent = PulseCallEvent
    type base =
    1. | PVar of IR.Pvar.t
    2. | Block of string
    3. | ReturnValue of CallEvent.t
    val compare_base : base -> base -> int
    val equal_base : base -> base -> bool
    type access =
    1. | CaptureFieldAccess of string
    2. | FieldAccess of IR.Fieldname.t
    3. | ArrayAccess of source_expr option
    4. | Dereference
    and source_expr = base * access list
    val compare_access : access -> access -> int
    val compare_source_expr : source_expr -> source_expr -> int
    val equal_access : access -> access -> bool
    val equal_source_expr : source_expr -> source_expr -> bool
    type t =
    1. | SourceExpr of source_expr * AbstractValue.t option
    2. | Unknown of AbstractValue.t option
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    val pp : F.formatter -> t -> unit
    val pp_source_expr : F.formatter -> source_expr -> unit
    val includes_captured_variable : t -> bool
    val includes_block : t -> bool
    val pp_with_abstract_value : Stdlib.Format.formatter -> t -> unit
    val abstract_value_of_expr : t -> AbstractValue.t option
    val is_unknown : t -> bool
    val yojson_of_t : t -> Yojson.Safe.t
    val reset_abstract_value : t -> t

    forget the underlying abstract value in the argument: abstract_value_of_expr (reset_abstract_value expr) is None

    +PulseDecompilerExpr (infer.Pulselib.PulseDecompilerExpr)

    Module Pulselib.PulseDecompilerExpr

    module F = Stdlib.Format
    module AbstractValue = PulseAbstractValue
    module CallEvent = PulseCallEvent
    type base =
    1. | PVar of IR.Pvar.t
    2. | Block of string
    3. | ReturnValue of CallEvent.t
    val compare_base : base -> base -> int
    val equal_base : base -> base -> bool
    type access =
    1. | CaptureFieldAccess of string
    2. | FieldAccess of IR.Fieldname.t
    3. | ArrayAccess of source_expr option
    4. | Dereference
    5. | MethodCall of CallEvent.t
    and source_expr = base * access list
    val compare_access : access -> access -> int
    val compare_source_expr : source_expr -> source_expr -> int
    val equal_access : access -> access -> bool
    val equal_source_expr : source_expr -> source_expr -> bool
    type t =
    1. | SourceExpr of source_expr * AbstractValue.t option
    2. | Unknown of AbstractValue.t option
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    val pp : F.formatter -> t -> unit
    val pp_source_expr : F.formatter -> source_expr -> unit
    val includes_captured_variable : t -> bool
    val includes_block : t -> bool
    val pp_with_abstract_value : Stdlib.Format.formatter -> t -> unit
    val abstract_value_of_expr : t -> AbstractValue.t option
    val is_unknown : t -> bool
    val yojson_of_t : t -> Yojson.Safe.t
    val reset_abstract_value : t -> t

    forget the underlying abstract value in the argument: abstract_value_of_expr (reset_abstract_value expr) is None

    diff --git a/website/static/odoc/next/infer/Pulselib/PulseDiagnostic/index.html b/website/static/odoc/next/infer/Pulselib/PulseDiagnostic/index.html index 60acc1d2fbc..e43e970fa12 100644 --- a/website/static/odoc/next/infer/Pulselib/PulseDiagnostic/index.html +++ b/website/static/odoc/next/infer/Pulselib/PulseDiagnostic/index.html @@ -7,4 +7,4 @@ access_to_invalid_address -> bool
    val yojson_of_access_to_invalid_address : access_to_invalid_address -> - Ppx_yojson_conv_lib.Yojson.Safe.t
    module ErlangError : sig ... end
    module ReadUninitialized : sig ... end
    type flow_kind =
    1. | TaintedFlow
    2. | FlowToSink
    3. | FlowFromSource
    val equal_flow_kind : flow_kind -> flow_kind -> bool
    type retain_cycle_data = {
    1. expr : DecompilerExpr.t;
    2. location : IBase.Location.t option;
    3. trace : Trace.t option;
    }
    val equal_retain_cycle_data : retain_cycle_data -> retain_cycle_data -> bool
    type resource =
    1. | CSharpClass of IR.CSharpClassName.t
    2. | JavaClass of IR.JavaClassName.t
    3. | HackAsync
    4. | HackBuilderResource of IR.HackClassName.t
    5. | Memory of Attribute.allocator
    type t =
    1. | AccessToInvalidAddress of access_to_invalid_address
    2. | ConfigUsage of {
      1. pname : IR.Procname.t;
      2. config : ConfigName.t;
      3. branch_location : IBase.Location.t;
      4. location : IBase.Location.t;
      5. trace : Trace.t;
      }
    3. | ConstRefableParameter of {
      1. param : IR.Var.t;
      2. typ : IR.Typ.t;
      3. location : IBase.Location.t;
      }
    4. | DynamicTypeMismatch of {
      1. location : IBase.Location.t;
      }
    5. | ErlangError of ErlangError.t
    6. | HackCannotInstantiateAbstractClass of {
      1. type_name : IR.Typ.Name.t;
      2. trace : Trace.t;
      }
    7. | MutualRecursionCycle of {
      1. cycle : PulseMutualRecursion.t;
      2. location : IBase.Location.t;
      }
    8. | ReadonlySharedPtrParameter of {
      1. param : IR.Var.t;
      2. typ : IR.Typ.t;
      3. location : IBase.Location.t;
      4. used_locations : IBase.Location.t list;
      }
    9. | ReadUninitialized of ReadUninitialized.t
    10. | ResourceLeak of {
      1. resource : resource;
      2. allocation_trace : Trace.t;
      3. location : IBase.Location.t;
      }
    11. | RetainCycle of {
      1. values : retain_cycle_data list;
      2. location : IBase.Location.t;
      3. unknown_access_type : bool;
      }
    12. | StackVariableAddressEscape of {
      1. variable : IR.Var.t;
      2. history : ValueHistory.t;
      3. location : IBase.Location.t;
      }
    13. | TaintFlow of {
      1. expr : DecompilerExpr.t;
      2. source : TaintItem.t * ValueHistory.t;
      3. sink : TaintItem.t * Trace.t;
      4. location : IBase.Location.t;
      5. flow_kind : flow_kind;
      6. policy_description : string;
      7. policy_id : int;
      8. policy_privacy_effect : string option;
      9. report_as_issue_type : string option;
      10. report_as_category : string option;
      }
    14. | TransitiveAccess of {
      1. tag : string;
      2. description : string;
      3. call_trace : Trace.t;
      4. transitive_callees : TransitiveInfo.Callees.t;
      5. transitive_missed_captures : IR.Typ.Name.Set.t;
      }
    15. | UnnecessaryCopy of {
      1. copied_into : PulseAttribute.CopiedInto.t;
      2. source_typ : IR.Typ.t option;
      3. source_opt : DecompilerExpr.source_expr option;
      4. location : IBase.Location.t;
      5. copied_location : (IR.Procname.t * IBase.Location.t) option;
      6. location_instantiated : IBase.Location.t option;
      7. from : PulseAttribute.CopyOrigin.t;
      }

    an error to report to the user

    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    val pp : F.formatter -> t -> unit
    val aborts_execution : t -> bool

    whether the presence of an error should abort the execution

    val get_message_and_suggestion : t -> string * string option
    val get_location : t -> IBase.Location.t
    val get_location_instantiated : t -> IBase.Location.t option
    val get_copy_type : t -> IR.Typ.t option
    val get_issue_type : latent:bool -> t -> IBase.IssueType.t
    val get_trace : t -> Absint.Errlog.loc_trace
    + Ppx_yojson_conv_lib.Yojson.Safe.t
    module ErlangError : sig ... end
    module ReadUninitialized : sig ... end
    type flow_kind =
    1. | TaintedFlow
    2. | FlowToSink
    3. | FlowFromSource
    val equal_flow_kind : flow_kind -> flow_kind -> bool
    type retain_cycle_data = {
    1. expr : DecompilerExpr.t;
    2. location : IBase.Location.t option;
    3. trace : Trace.t option;
    }
    val equal_retain_cycle_data : retain_cycle_data -> retain_cycle_data -> bool
    type resource =
    1. | CSharpClass of IR.CSharpClassName.t
    2. | JavaClass of IR.JavaClassName.t
    3. | HackAsync
    4. | HackBuilderResource of IR.HackClassName.t
    5. | Memory of Attribute.allocator
    type t =
    1. | AccessToInvalidAddress of access_to_invalid_address
    2. | ConfigUsage of {
      1. pname : IR.Procname.t;
      2. config : ConfigName.t;
      3. branch_location : IBase.Location.t;
      4. location : IBase.Location.t;
      5. trace : Trace.t;
      }
    3. | ConstRefableParameter of {
      1. param : IR.Var.t;
      2. typ : IR.Typ.t;
      3. location : IBase.Location.t;
      }
    4. | DynamicTypeMismatch of {
      1. location : IBase.Location.t;
      }
    5. | ErlangError of ErlangError.t
    6. | HackCannotInstantiateAbstractClass of {
      1. type_name : IR.Typ.Name.t;
      2. trace : Trace.t;
      }
    7. | MutualRecursionCycle of {
      1. cycle : PulseMutualRecursion.t;
      2. location : IBase.Location.t;
      }
    8. | ReadonlySharedPtrParameter of {
      1. param : IR.Var.t;
      2. typ : IR.Typ.t;
      3. location : IBase.Location.t;
      4. used_locations : IBase.Location.t list;
      }
    9. | ReadUninitialized of ReadUninitialized.t
    10. | ResourceLeak of {
      1. resource : resource;
      2. allocation_trace : Trace.t;
      3. location : IBase.Location.t;
      }
    11. | RetainCycle of {
      1. values : retain_cycle_data list;
      2. location : IBase.Location.t;
      3. unknown_access_type : bool;
      }
    12. | StackVariableAddressEscape of {
      1. variable : IR.Var.t;
      2. history : ValueHistory.t;
      3. location : IBase.Location.t;
      }
    13. | TaintFlow of {
      1. expr : DecompilerExpr.t;
      2. source : TaintItem.t * ValueHistory.t;
      3. sink : TaintItem.t * Trace.t;
      4. location : IBase.Location.t;
      5. flow_kind : flow_kind;
      6. policy_description : string;
      7. policy_id : int;
      8. policy_privacy_effect : string option;
      9. report_as_issue_type : string option;
      10. report_as_category : string option;
      }
    14. | TransitiveAccess of {
      1. tag : string;
      2. description : string;
      3. call_trace : Trace.t;
      4. transitive_callees : TransitiveInfo.Callees.t;
      5. transitive_missed_captures : IR.Typ.Name.Set.t;
      }
    15. | UninitMethod of {
      1. callee : IR.Procname.t;
      2. history : ValueHistory.t;
      3. location : IBase.Location.t;
      }
    16. | UnnecessaryCopy of {
      1. copied_into : PulseAttribute.CopiedInto.t;
      2. source_typ : IR.Typ.t option;
      3. source_opt : DecompilerExpr.source_expr option;
      4. location : IBase.Location.t;
      5. copied_location : (IR.Procname.t * IBase.Location.t) option;
      6. location_instantiated : IBase.Location.t option;
      7. from : PulseAttribute.CopyOrigin.t;
      }

    an error to report to the user

    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    val pp : F.formatter -> t -> unit
    val aborts_execution : t -> bool

    whether the presence of an error should abort the execution

    val get_message_and_suggestion : t -> string * string option
    val get_autofix : IR.Procdesc.t -> t -> ATDGenerated.Jsonbug_t.autofix option
    val get_location : t -> IBase.Location.t
    val get_location_instantiated : t -> IBase.Location.t option
    val get_copy_type : t -> IR.Typ.t option
    val get_issue_type : latent:bool -> t -> IBase.IssueType.t
    val get_trace : t -> Absint.Errlog.loc_trace
    diff --git a/website/static/odoc/next/infer/Pulselib/PulseModelsCpp/Function/index.html b/website/static/odoc/next/infer/Pulselib/PulseModelsCpp/Function/index.html index 5ae3948482a..bcfa81a6761 100644 --- a/website/static/odoc/next/infer/Pulselib/PulseModelsCpp/Function/index.html +++ b/website/static/odoc/next/infer/Pulselib/PulseModelsCpp/Function/index.html @@ -1,5 +1,6 @@ Function (infer.Pulselib.PulseModelsCpp.Function)

    Module PulseModelsCpp.Function

    val operator_call : + deref_lambda_ptr:bool -> (Pulselib.PulseBasicInterface.AbstractValue.t * Pulselib.PulseBasicInterface.ValueHistory.t) Absint.ProcnameDispatcher.Call.FuncArg.t -> diff --git a/website/static/odoc/next/infer/Pulselib/PulseModelsDSL/Syntax/index.html b/website/static/odoc/next/infer/Pulselib/PulseModelsDSL/Syntax/index.html index 8a6637c4b57..f149cfb7670 100644 --- a/website/static/odoc/next/infer/Pulselib/PulseModelsDSL/Syntax/index.html +++ b/website/static/odoc/next/infer/Pulselib/PulseModelsDSL/Syntax/index.html @@ -52,7 +52,7 @@ ?must_be_valid_reason: Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason -> Pulselib.PulseBasicInterface.ValueOrigin.t -> - unit model_monad
    val binop : IR.Binop.t -> aval -> aval -> aval model_monad
    val binop_int : IR.Binop.t -> aval -> IR.IntLit.t -> aval model_monad
    val read : IR.Exp.t -> aval model_monad
    val int : + unit model_monad
    val binop : IR.Binop.t -> aval -> aval -> aval model_monad
    val binop_int : IR.Binop.t -> aval -> IR.IntLit.t -> aval model_monad
    val unop : IR.Unop.t -> aval -> aval model_monad
    val read : IR.Exp.t -> aval model_monad
    val string : string -> aval model_monad
    val string_concat : aval -> aval -> aval model_monad
    val access : diff --git a/website/static/odoc/next/infer/PythonFrontend/FFI/Code/index.html b/website/static/odoc/next/infer/PythonFrontend/FFI/Code/index.html index 37a31ee9896..c2b2a921e01 100644 --- a/website/static/odoc/next/infer/PythonFrontend/FFI/Code/index.html +++ b/website/static/odoc/next/infer/PythonFrontend/FFI/Code/index.html @@ -1,2 +1,2 @@ -Code (infer.PythonFrontend.FFI.Code)

    Module FFI.Code

    type t = private {
    1. co_name : string;
    2. co_filename : string;
    3. co_flags : int;
    4. co_cellvars : string array;
      (*

      A tuple containing the names of nonlocal variables. These are the local variables of a function accessed by its inner functions.

      *)
    5. co_freevars : string array;
      (*

      A tuple containing the names of free variables. Free variables are the local variables of an outer function which are accessed by its inner function.

      *)
    6. co_names : string array;
      (*

      A tuple containing the names used by the bytecode which can be global variables, functions, and classes or also attributes loaded from objects. There are "global names". Local variables & the like are going in other arrays

      *)
    7. co_varnames : string array;
      (*

      A tuple containing the local names used by the bytecode (arguments first, then the local variables).

      *)
    8. co_nlocals : int;
    9. co_argcount : int;
    10. co_firstlineno : int;
    11. co_posonlyargcount : int;
    12. co_stacksize : int;
    13. co_kwonlyargcount : int;
    14. co_lnotab : char array;
    15. co_consts : Constant.t array;
      (*

      A tuple containing the literals used by the bytecode. By experience, it is only int, string, tuples, None or code objects

      *)
    16. instructions : Instruction.t list;
    }
    val pp : Ppx_show_runtime.Format.formatter -> t -> unit
    val show : t -> string
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    val full_show : t -> string
    val is_closure : t -> bool
    val get_arguments : t -> string array
    val get_locals : t -> string array
    +Code (infer.PythonFrontend.FFI.Code)

    Module FFI.Code

    type t = private {
    1. co_name : string;
    2. co_firstlineno : int;
    3. co_filename : string;
    4. co_flags : int;
    5. co_cellvars : string array;
      (*

      A tuple containing the names of nonlocal variables. These are the local variables of a function accessed by its inner functions.

      *)
    6. co_freevars : string array;
      (*

      A tuple containing the names of free variables. Free variables are the local variables of an outer function which are accessed by its inner function.

      *)
    7. co_names : string array;
      (*

      A tuple containing the names used by the bytecode which can be global variables, functions, and classes or also attributes loaded from objects. There are "global names". Local variables & the like are going in other arrays

      *)
    8. co_varnames : string array;
      (*

      A tuple containing the local names used by the bytecode (arguments first, then the local variables).

      *)
    9. co_nlocals : int;
    10. co_argcount : int;
    11. co_posonlyargcount : int;
    12. co_stacksize : int;
    13. co_kwonlyargcount : int;
    14. co_lnotab : char array;
    15. co_consts : Constant.t array;
      (*

      A tuple containing the literals used by the bytecode. By experience, it is only int, string, tuples, None or code objects

      *)
    16. instructions : Instruction.t list;
    }
    val pp : Ppx_show_runtime.Format.formatter -> t -> unit
    val show : t -> string
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    diff --git a/website/static/odoc/next/infer/PythonFrontend/FFI/Constant/index.html b/website/static/odoc/next/infer/PythonFrontend/FFI/Constant/index.html index 659827fd000..e069a314329 100644 --- a/website/static/odoc/next/infer/PythonFrontend/FFI/Constant/index.html +++ b/website/static/odoc/next/infer/PythonFrontend/FFI/Constant/index.html @@ -1,2 +1,2 @@ -Constant (infer.PythonFrontend.FFI.Constant)

    Module FFI.Constant

    type t = private
    1. | PYCBool of bool
    2. | PYCInt of Z.t
    3. | PYCFloat of float
    4. | PYCComplex of {
      1. real : float;
      2. imag : float;
      }
    5. | PYCString of string
    6. | PYCInvalidUnicode of int array
    7. | PYCBytes of bytes
    8. | PYCTuple of t array
    9. | PYCFrozenSet of t list
    10. | PYCCode of Code.t
    11. | PYCNone
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    val show : ?full:bool -> t -> string

    Only shows the name of a PYCCode constant if full is false. Otherwise, shows everything.

    val pp : Stdlib.Format.formatter -> t -> unit
    val as_code : t -> Code.t option
    val as_name : t -> string option
    +Constant (infer.PythonFrontend.FFI.Constant)

    Module FFI.Constant

    type t = private
    1. | PYCBool of bool
    2. | PYCInt of Z.t
    3. | PYCFloat of float
    4. | PYCComplex of {
      1. real : float;
      2. imag : float;
      }
    5. | PYCString of string
    6. | PYCInvalidUnicode of int array
    7. | PYCBytes of bytes
    8. | PYCTuple of t array
    9. | PYCFrozenSet of t list
    10. | PYCCode of Code.t
    11. | PYCNone
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    include Ppx_compare_lib.Equal.S with type t := t
    val equal : t Base__Ppx_compare_lib.equal
    diff --git a/website/static/odoc/next/infer/PythonFrontend/FFI/Instruction/index.html b/website/static/odoc/next/infer/PythonFrontend/FFI/Instruction/index.html index 8644c242533..d6f8a681c6e 100644 --- a/website/static/odoc/next/infer/PythonFrontend/FFI/Instruction/index.html +++ b/website/static/odoc/next/infer/PythonFrontend/FFI/Instruction/index.html @@ -1,2 +1,2 @@ -Instruction (infer.PythonFrontend.FFI.Instruction)

    Module FFI.Instruction

    type t = private {
    1. opname : string;
    2. opcode : int;
    3. arg : int;
    4. argval : Constant.t;
    5. offset : int;
    6. starts_line : int option;
    7. is_jump_target : bool;
    }
    val pp : Ppx_show_runtime.Format.formatter -> t -> unit
    val show : t -> string
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    +Instruction (infer.PythonFrontend.FFI.Instruction)

    Module FFI.Instruction

    type t = private {
    1. opname : string;
    2. opcode : int;
    3. arg : int;
    4. argval : Constant.t;
    5. offset : int;
    6. starts_line : int option;
    7. is_jump_target : bool;
    }
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    val pp : ?code:Code.t -> Stdlib.Format.formatter -> t -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/Compare/index.html b/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/Compare/index.html deleted file mode 100644 index a7bee3fa145..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/Compare/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Compare (infer.PythonFrontend.PyBuiltin.Compare)

    Module PyBuiltin.Compare

    type t =
    1. | Lt
    2. | Le
    3. | Eq
    4. | Neq
    5. | Gt
    6. | Ge
    7. | In
    8. | NotIn
    9. | Is
    10. | IsNot
    11. | Exception
    12. | BAD
    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    include Ppx_enumerate_lib.Enumerable.S with type t := t
    val all : t list
    val to_string : t -> string
    val pp : Stdlib.Format.formatter -> t -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/Set/index.html b/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/Set/index.html deleted file mode 100644 index 5369ef9c11d..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/Set/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Set (infer.PythonFrontend.PyBuiltin.Set)

    Module PyBuiltin.Set

    type t

    This module keeps track of the builtins used by a code unit. Only the necessary Textual declarations are generated. Note that primitive wrappers are always generated (python_int, ...)

    val supported_builtins : unit -> string list
    val empty : t
    val to_textual : t -> Textuallib.Textual.Module.decl list

    Encode a set of builtin declarations into Textual declarations

    val register : t -> builtin -> t
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/index.html b/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/index.html deleted file mode 100644 index 160a3df9706..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyBuiltin/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -PyBuiltin (infer.PythonFrontend.PyBuiltin)

    Module PythonFrontend.PyBuiltin

    module Compare : sig ... end
    type binary_op =
    1. | Add
    2. | And
    3. | FloorDivide
    4. | LShift
    5. | MatrixMultiply
    6. | Modulo
    7. | Multiply
    8. | Or
    9. | Power
    10. | RShift
    11. | Subtract
    12. | TrueDivide
    13. | Xor
    val compare_binary_op : binary_op -> binary_op -> int
    type unary_op =
    1. | Positive
    2. | Negative
    3. | Not
    4. | Invert
    val compare_unary_op : unary_op -> unary_op -> int
    type builder =
    1. | List
    2. | Set
    3. | Tuple
    4. | Map
    5. | String
    6. | Slice
    val compare_builder : builder -> builder -> int
    type textual =
    1. | IsTrue
    2. | Binary of binary_op
    3. | Inplace of binary_op
    4. | Unary of unary_op
    5. | PythonCall
    6. | PythonCallKW
    7. | PythonKWArg
    8. | PythonClass
    9. | PythonClassName
    10. | PythonCode
    11. | PythonIter
    12. | PythonIterNext
    13. | PythonBuild of builder
    14. | PythonIndex
    15. | PythonSubscriptGet
    16. | PythonSubscriptSet
    17. | PythonFormatRepr
    18. | PythonFormatStr
    19. | PythonFormatAscii
    20. | PythonFormat
    21. | CompareOp of Compare.t
    val compare_textual : textual -> textual -> int
    type builtin
    val textual : textual -> builtin
    val of_string : string -> builtin option
    module Set : sig ... end
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/Error/index.html b/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/Error/index.html deleted file mode 100644 index 07e099feb43..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/Error/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Error (infer.PythonFrontend.PyClassDecl.Error)

    Module PyClassDecl.Error

    type kind
    val pp_kind : Stdlib.Format.formatter -> kind -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/State/index.html b/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/State/index.html deleted file mode 100644 index db66517963d..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/State/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -State (infer.PythonFrontend.PyClassDecl.State)

    Module PyClassDecl.State

    type method_info = private {
    1. name : string;
    2. raw_qualified_name : string;
    3. code : FFI.Constant.t;
    4. signature : PyCommon.signature;
    5. defaults : PyEnv.DataStack.cell list;
    6. is_static : bool;
    7. is_abstract : bool;
    8. flags : PyCommon.MakeFunctionFlags.t;
    }
    type t = private {
    1. members : PyCommon.annotated_name list;
    2. methods : method_info list;
    3. static_methods : method_info list;
    4. has_annotations : bool;
    5. has_init : PyCommon.annotated_name list option;
    6. has_new : PyCommon.annotated_name list option;
    }
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/index.html b/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/index.html deleted file mode 100644 index 43ae32dc2d4..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyClassDecl/index.html +++ /dev/null @@ -1,6 +0,0 @@ - -PyClassDecl (infer.PythonFrontend.PyClassDecl)

    Module PythonFrontend.PyClassDecl

    module Error : sig ... end
    module State : sig ... end
    val parse_class_declaration : - FFI.Code.t -> - string -> - FFI.Instruction.t list -> - (State.t, Error.kind) IStdlib.IStd.result
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyCommon/ABC/index.html b/website/static/odoc/next/infer/PythonFrontend/PyCommon/ABC/index.html deleted file mode 100644 index b62df612985..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyCommon/ABC/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -ABC (infer.PythonFrontend.PyCommon.ABC)

    Module PyCommon.ABC

    val abstract_method : string
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyCommon/Ident/index.html b/website/static/odoc/next/infer/PythonFrontend/PyCommon/Ident/index.html deleted file mode 100644 index 443a55ecdb1..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyCommon/Ident/index.html +++ /dev/null @@ -1,13 +0,0 @@ - -Ident (infer.PythonFrontend.PyCommon.Ident)

    Module PyCommon.Ident

    type t

    Python uses qualified identifiers such as sys.exit. Locally defined names don't have any prefix, but we still add some in textual to deal with ambiguity. The only identifiers without any prefix are local variables.

    include Ppx_compare_lib.Comparable.S with type t := t
    val compare : t Base__Ppx_compare_lib.compare
    val root : t -> t

    Strip the whole path of an identifier, only keeping its root

    val from_string : - ?on:char -> - ?global:bool -> - ?loc:Textuallib.Textual.Location.t -> - string -> - t option
    val pp : Stdlib.Format.formatter -> t -> unit
    val fold : - f_root: - ('a -> global:bool -> loc:Textuallib.Textual.Location.t -> string -> 'b) -> - f_path:(string -> 'b -> 'b) -> - init:'a -> - t -> - 'b
    val to_string : sep:string -> t -> string
    val to_qualified_procname : t -> Textuallib.Textual.QualifiedProcName.t
    val to_type_name : ?static:bool -> t -> Textuallib.Textual.TypeName.t
    val to_proc_name : t -> Textuallib.Textual.ProcName.t
    val to_constructor : t -> Textuallib.Textual.ProcName.t
    val to_typ : t -> Textuallib.Textual.Typ.t
    val is_primitive_type : t -> bool
    val to_var_name : t -> Textuallib.Textual.VarName.t
    val mk_unknown_ident : ?loc:Textuallib.Textual.Location.t -> string -> t

    Wrap a variable name into a special enclosing class when a global's origin can't be found.

    val extend_unknown_ident : t -> t

    Wrap an existing identifier into a special enclosing class when a global's origin can't be found.

    val mk : ?global:bool -> ?loc:Textuallib.Textual.Location.t -> string -> t
    val extend : prefix:t -> string -> t
    val pop : t -> string * t option
    val mk_builtin : string -> t
    val is_imported_ABC : t -> bool

    Checks if an id is the standard abc.ABC metaclass name

    module Map : IStdlib.IStd.Caml.Map.S with type key = t
    module Set : IStdlib.IStd.Caml.Set.S with type elt = t
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyCommon/MakeFunctionFlags/index.html b/website/static/odoc/next/infer/PythonFrontend/PyCommon/MakeFunctionFlags/index.html deleted file mode 100644 index b475d608516..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyCommon/MakeFunctionFlags/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -MakeFunctionFlags (infer.PythonFrontend.PyCommon.MakeFunctionFlags)

    Module PyCommon.MakeFunctionFlags

    Flags used by MAKE_FUNCTION

    type flag =
    1. | DefaultValues
    2. | DictDefaultValues
    3. | Annotations
    4. | Closure
    type t
    val pp : Stdlib.Format.formatter -> t -> unit
    val mk : int -> t
    val mem : t -> flag -> bool
    val set : t -> flag -> t
    val unset : t -> flag -> t
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyCommon/index.html b/website/static/odoc/next/infer/PythonFrontend/PyCommon/index.html deleted file mode 100644 index fa52abc22ae..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyCommon/index.html +++ /dev/null @@ -1,19 +0,0 @@ - -PyCommon (infer.PythonFrontend.PyCommon)

    Module PythonFrontend.PyCommon

    module SMap : IStdlib.IStd.Caml.Map.S with type key = string
    module SSet : IStdlib.IStd.Caml.Set.S with type elt = string
    module IMap : IStdlib.IStd.Caml.Map.S with type key = int
    val proc_name : - ?loc:Textuallib.Textual.Location.t -> - string -> - Textuallib.Textual.ProcName.t
    val var_name : - ?loc:Textuallib.Textual.Location.t -> - string -> - Textuallib.Textual.VarName.t
    val node_name : - ?loc:Textuallib.Textual.Location.t -> - string -> - Textuallib.Textual.NodeName.t
    val field_name : - ?loc:Textuallib.Textual.Location.t -> - string -> - Textuallib.Textual.FieldName.t
    val mk_type : string -> Textuallib.Textual.Typ.t
    val builtin_name : string -> Textuallib.Textual.QualifiedProcName.t

    Helper function to encode known builtin names correctly

    Encoding of Python int type. Since Python integers are of arbitrary precision, they are not modeled directly with int.

    Encoding of Python float type.

    Encoding of Python str type.

    Encoding of Python bytes type.

    Encoding of Python bool type.

    Encoding of Python tuple type. It is the raw "untyped" one where every item is of type object.

    object is the top type of Python. It helps us when no type information is available.

    code is a builtin Python type to describe any code (function, class, ...) object

    Like pyCode but for class creation

    val pyIterItem : Textuallib.Textual.Typ.t

    Wrapper type to implement next access on an iterator. Declared as pyIterItemStruct

    val py_iter_item_has_item : Textuallib.Textual.qualified_fieldname
    val py_iter_item_next_item : Textuallib.Textual.qualified_fieldname
    val pyIterItemStruct : Textuallib.Textual.Struct.t

    Textual structure with two fields. has_item indicates if something was read from the iterator or if it was empty. If has_item is true, next_item holds the value read from the iterator.

    Textual encoding of the primitive Python type int

    Textual encoding of the primitive Python type str

    Textual encoding of the primitive Python type bytes

    Textual encoding of the primitive Python type bool

    Textual encoding of the primitive Python type float

    Textual encoding of the primitive Python type None

    Python's builtin list type

    Python's builtin map type

    Python's builtin set type

    Python's builtin tuple type

    val mk_int : Z.t -> Textuallib.Textual.Exp.t

    Helper function to define typed Textual expression for literal integers.

    val mk_float : float -> Textuallib.Textual.Exp.t

    Helper function to define typed Textual expression for literal floats.

    val mk_string : string -> Textuallib.Textual.Exp.t

    Helper function to define typed Textual expression for literal strings.

    val get_string : Textuallib.Textual.Exp.t -> string option

    Helper to get back a string built with mk_string

    val get_tuple_as_list : - Textuallib.Textual.Exp.t -> - Textuallib.Textual.Exp.t list option

    Helper to get back the inner elements of a python_tuple

    val mk_bytes : bytes -> Textuallib.Textual.Exp.t

    Helper function to define typed Textual expression for literal bytes.

    val mk_bool : bool -> Textuallib.Textual.Exp.t

    Helper function to define typed Textual expression for boolean.

    module Ident : sig ... end
    type annotated_name = {
    1. name : string;
    2. annotation : Ident.t;
    }

    Encoding of some type annotation like x: int

    val pp_annotated_name : Stdlib.Format.formatter -> annotated_name -> unit
    type signature = annotated_name list
    val pp_signature : Stdlib.Format.formatter -> signature -> unit
    val toplevel_function : string
    val static_method : string
    val static_companion : string -> string
    module ABC : sig ... end
    val init__ : string

    Name of the Python initialization method

    val new__ : string

    Name of the Python instantiation method

    val exit : string

    Name of the Python context exit method

    val enter : string

    Name of the Python context enter method

    val return : string

    Name of the binding name of return types of functions / methods

    val class__ : string

    Special name for __class__

    val classcell : string

    Special name for __classcell__

    val annotations : string

    Special name for __annotations__

    val entry : string

    Textual label name for entry points of function we synthesized (constructors, __init__, ...)

    val self : string

    Common name of the self argument in Python

    module MakeFunctionFlags : sig ... end

    Flags used by MAKE_FUNCTION

    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyDebug/index.html b/website/static/odoc/next/infer/PythonFrontend/PyDebug/index.html deleted file mode 100644 index 7fc6072757d..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyDebug/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -PyDebug (infer.PythonFrontend.PyDebug)

    Module PythonFrontend.PyDebug

    val p : ('a, Stdlib.Format.formatter, unit, unit) IStdlib.IStd.format4 -> 'a
    val todo : ('a, Stdlib.Format.formatter, unit, unit) IStdlib.IStd.format4 -> 'a
    val enable_debug : unit -> unit
    val disable_debug : unit -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyEnv/DataStack/index.html b/website/static/odoc/next/infer/PythonFrontend/PyEnv/DataStack/index.html deleted file mode 100644 index e6f383e81b1..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyEnv/DataStack/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -DataStack (infer.PythonFrontend.PyEnv.DataStack)

    Module PyEnv.DataStack

    In Python, everything is an object, and the interpreter maintains a stack of references to such objects. Pushing and popping on the stack are always references to objets that leave in a heap. There is no need to model this heap, but the data stack is quite important.

    type cell =
    1. | Const of FFI.Constant.t
      (*

      constant from co_consts

      *)
    2. | Name of {
      1. global : bool;
      2. name : string;
      }
      (*

      reference to a name, from co_names.

      *)
    3. | VarName of string
      (*

      reference to a local name, fromco_varnames

      *)
    4. | Temp of T.Ident.t
      (*

      SSA variable

      *)
    5. | Code of {
      1. fun_or_class : bool;
      2. code_name : string;
      3. code : FFI.Code.t;
      }
      (*

      code Python object with its name. It can be a function, class, closure, ...

      *)
    6. | List of PyBuiltin.builder * cell list
      (*

      Light encoding of raw Python tuples/lists.

      *)
    7. | Map of (T.Exp.t * cell) list
      (*

      Light encoding of raw Python maps/dicts.

      *)
    8. | BuiltinBuildClass
      (*

      see Python's LOAD_BUILD_CLASS

      *)
    9. | Import of {
      1. import_path : Ident.t;
      2. from_list : string list;
      }
      (*

      imported module path, with optional names of symbols from that module

      *)
    10. | ImportFrom of {
      1. import_path : Ident.t;
      2. imported_name : string;
      }
      (*

      imported symbol from a module. Must have been loaded via Import first

      *)
    11. | ImportCall of {
      1. id : Ident.t;
      2. loc : T.Location.t;
      }
      (*

      Static call to export definition

      *)
    12. | MethodCall of {
      1. receiver : T.Exp.t;
      2. name : T.QualifiedProcName.t;
      }
      (*

      Virtual call, usually of a method of a class. Could be an access to a closure that is called straight away

      *)
    13. | StaticCall of {
      1. call_name : T.QualifiedProcName.t;
      2. receiver : T.Exp.t option;
      }
      (*

      call to static method in class. Because we turn some method calls into static ones, we have to keep the receiver around, just in case.

      *)
    14. | Super
      (*

      special name to refer to the parent class, like in super().__init__()

      *)
    15. | Path of Ident.t
      (*

      Qualified path for sequence of imports, attribute accesses, ...

      *)
    16. | WithContext of T.Ident.t
      (*

      value to be used for calling __enter__ and __exit__ with the `with context` statement

      *)
    17. | NoException
      (*

      Special NONE symbol pushed by the exception infra to express that no exception has been raised

      *)
    val pp_cell : Stdlib.Format.formatter -> cell -> unit
    val as_code : cell -> FFI.Code.t option
    val as_name : cell -> string option
    val as_id : cell -> Ident.t option
    val is_path : cell -> bool
    val is_no_exception : cell -> bool
    type t = cell list
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyEnv/Info/index.html b/website/static/odoc/next/infer/PythonFrontend/PyEnv/Info/index.html deleted file mode 100644 index 94554431621..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyEnv/Info/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Info (infer.PythonFrontend.PyEnv.Info)

    Module PyEnv.Info

    Type information about various entities (toplevel declarations, temporaries, ...).

    type kind =
    1. | Code
    2. | Class
    3. | Other
    type t = {
    1. kind : kind;
    2. typ : T.Typ.t;
    }
    val default : T.Typ.t -> t
    val is_code : kind -> bool
    val is_class : kind -> bool
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyEnv/Label/index.html b/website/static/odoc/next/infer/PythonFrontend/PyEnv/Label/index.html deleted file mode 100644 index ab464bf5d4a..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyEnv/Label/index.html +++ /dev/null @@ -1,10 +0,0 @@ - -Label (infer.PythonFrontend.PyEnv.Label)

    Module PyEnv.Label

    type info

    Information about a "yet to reach" label location, with its name, type of ssa parameters, and a function to update the environment before processing the code after the label. For example, inserting some pruning operations before the label and the code. Since we don't always know the location of the label before-hand, the prelude is expecting one.

    We also keep track of the label status: if we already processed it within the nodes function. This is to avoid infinite loops.

    val mk : - ?ssa_parameters:T.Typ.t list -> - ?prelude:(T.Location.t -> t -> t) -> - string -> - info

    Create a label_info with the provided arguments. Mostly used with the defaults

    val update_ssa_parameters : info -> T.Typ.t list -> info

    Update the ssa_parameters of a label

    val is_processed : info -> bool

    Returns true iff the label was already encountered during processing

    val name : info -> string

    Returns the name of a label

    val to_textual : - t -> - T.Location.t -> - info -> - t * string * (T.Ident.t * T.Typ.t) list

    Process a label info and turn it into Textual information

    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyEnv/Signature/index.html b/website/static/odoc/next/infer/PythonFrontend/PyEnv/Signature/index.html deleted file mode 100644 index 7ee308326f8..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyEnv/Signature/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Signature (infer.PythonFrontend.PyEnv.Signature)

    Module PyEnv.Signature

    type t = {
    1. annotations : PyCommon.annotated_name list;
    2. is_static : bool;
    3. is_abstract : bool;
    }
    val pp : Stdlib.Format.formatter -> t -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyEnv/Symbol/index.html b/website/static/odoc/next/infer/PythonFrontend/PyEnv/Symbol/index.html deleted file mode 100644 index 52032ce7001..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyEnv/Symbol/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Symbol (infer.PythonFrontend.PyEnv.Symbol)

    Module PyEnv.Symbol

    type kind =
    1. | Name of {
      1. is_imported : bool;
      2. typ : T.Typ.t;
      }
      (*

      The identifier is a name, like a variable name, or any name that might have been imported

      *)
    2. | Builtin
      (*

      The identifier is a known builtin, like print or range

      *)
    3. | Code
      (*

      The identifier is a code object, like a function declaration

      *)
    4. | Class
      (*

      The identifier is a class name

      *)
    5. | ImportCall
      (*

      The identifier is an imported name that has been used in a call, so we can suppose it is a function

      *)
    6. | Import
      (*

      The identifier is the name of an imported module

      *)
    val pp_kind : Stdlib.Format.formatter -> kind -> unit
    type t = {
    1. id : Ident.t;
    2. kind : kind;
    3. loc : T.Location.t;
    }
    type key =
    1. | Global of Ident.t
    2. | Local of string
    val pp_key : Stdlib.Format.formatter -> key -> unit
    val pp : Stdlib.Format.formatter -> t -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyEnv/index.html b/website/static/odoc/next/infer/PythonFrontend/PyEnv/index.html deleted file mode 100644 index 132e905c329..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyEnv/index.html +++ /dev/null @@ -1,32 +0,0 @@ - -PyEnv (infer.PythonFrontend.PyEnv)

    Module PythonFrontend.PyEnv

    module Ident = PyCommon.Ident
    module Info : sig ... end

    Type information about various entities (toplevel declarations, temporaries, ...).

    module Symbol : sig ... end
    module Signature : sig ... end
    module DataStack : sig ... end

    In Python, everything is an object, and the interpreter maintains a stack of references to such objects. Pushing and popping on the stack are always references to objets that leave in a heap. There is no need to model this heap, but the data stack is quite important.

    type t

    Global environment used during bytecode processing. Stores common global information like the toplevel symbols processed so far, or more local ones like the set of labels or variable ids currently used by a declaration.

    module Label : sig ... end
    type class_info = {
    1. qualified_name : Ident.t;
    2. parents : Ident.t list;
    }

    Class level info. For now, only the parent info (if present) is tracked, supporting multiple inheritance and its full qualified name (for nested classes). We may track more information in the future, like being an abstract class, a dataclass, ...

    type method_info = {
    1. signature : Signature.t;
    2. default_arguments : T.Exp.t list;
    }

    Method level info. We store a method/function signature, and its default arugments

    val empty : Ident.t -> t
    val loc : t -> T.Location.t

    Return the last recorded line information from the Python code-unit, if any.

    val stack : t -> DataStack.t

    Returns the DataStack.t for the current declaration

    val globals : t -> Symbol.t Ident.Map.t

    Return the globals map

    val get_used_builtins : t -> PyBuiltin.Set.t

    Return a set of Builtin the we spotted in the code

    val instructions : t -> T.Instr.t list

    Returns the list of all instructions recorded for the current code unit

    val label_of_offset : t -> int -> Label.info option

    Check if the instruction is a possible jump location, and return the label information found there, if any.

    val mk_fresh_ident : t -> Info.t -> t * T.Ident.t

    Generate a fresh temporary name

    val get_ident_info : t -> T.Ident.t -> Info.t option

    Get back the information of a temporary

    val mk_fresh_label : t -> t * string

    Generate a fresh label name

    val map : f:(t -> 'a -> t * 'b) -> env:t -> 'a list -> t * 'b list

    Similar to List.map but an env is threaded along the way

    val map_result : - f:(t -> 'a -> (t * 'b, 'c) IStdlib.IStd.result) -> - env:t -> - 'a list -> - (t * 'b list, 'c) IStdlib.IStd.result

    Similar to map but supports functions that return Result.t

    val enter_proc : - is_toplevel:bool -> - is_static:bool -> - module_name:Ident.t -> - params:string list -> - t -> - t

    Set the environment when entering a new code unit (like reset the instruction buffer, or id/label generators.

    val set_annotations : t -> t

    Configure the environment to keep track of variable annotations in the dedicated __annotations__ dictionary. Right now, we register its existence but don't store anything in it

    val has_annotations : t -> bool

    Returns the fact that annotations are tracked or not

    val enter_node : t -> t

    Set the environment when entering a new node. Reset the instructions buffer.

    val reset_stack : t -> t

    Reset the stack field of a node

    val update_last_line : t -> int option -> t

    Update the last_line field of an env, if new information is availbe.

    val push : t -> DataStack.cell -> t

    Push a new DataStack.cell on the datastack

    val pop : t -> (t * DataStack.cell) option

    Pop a DataStack.cell from the datastack, if any is available

    val peek : t -> DataStack.cell option

    Peek a DataStack.cell from the datastack, if any is available

    val push_instr : t -> T.Instr.t -> t

    Record a new instruction for the current code unit

    val register_label : offset:int -> Label.info -> t -> t

    Register the fact that a new label info must be inserted before the instruction at offset

    val register_with_target : offset:int -> t -> t

    Register the location of a with statement clean up code

    val is_with_target : offset:int -> t -> bool

    Check whether a code offset is the target of a with statement

    val process_label : offset:int -> Label.info -> t -> t

    Mark the label info at offset as processed

    val register_symbol : t -> Symbol.key -> Symbol.t -> t

    Register a name (function, variable, ...). It might be a global symbol at the module level or in a local object.

    val lookup_symbol : t -> Symbol.key -> Symbol.t option

    Lookup information about a global/local symbol previously registered via register_symbol

    val register_call : t -> Ident.t -> t

    Register a function call. It enables us to deal correctly with builtin declaration.

    val mk_builtin_call : - t -> - PyBuiltin.textual -> - T.Exp.t list -> - t * T.Ident.t * T.Typ.t

    Wrapper to compute the Textual version of a call to a "textual" builtin * function (a builtin we introduced for modeling purpose)

    val register_function : - t -> - string -> - T.Location.t -> - PyCommon.signature -> - T.Exp.t list -> - t

    Register a function declaration. We keep track of them since they might shadow Python builtins or previous definitions

    val register_method : - t -> - enclosing_class:Ident.t -> - method_name:string -> - Signature.t -> - T.Exp.t list -> - t

    Register a method declaration. We mostly keep track of their signatures

    val register_fields : t -> T.TypeName.t -> PyCommon.signature -> t

    Extended the set of fields of class class_name with class_fields. We might have multiple calls to this function with the same class name in a best effort attempt: Python is dynamic, and any self.foo access could give rise to such a registration

    val lookup_method : - t -> - enclosing_class:Ident.t -> - string -> - method_info option

    Lookup the information stored for a function/method in the relevant enclosing_class

    val lookup_fields : t -> T.TypeName.t -> PyCommon.signature option

    Lookup the signature of a function / method

    val register_class : t -> string -> Ident.t -> Ident.t list -> t

    Register a class declaration (based on LOAD_BUILD_CLASS)

    val get_declared_classes : t -> class_info PythonFrontend.PyCommon.SMap.t

    Return information of classes defined in the current module

    val register_imported_value : t -> Ident.t -> t

    register global names imported from other modules

    val get_textual_imports : t -> T.Module.decl list

    Get back the list of registered imports

    val is_toplevel : t -> bool

    Are we processing top level instructions, or something in a function/class ?

    val is_static : t -> bool

    Are we processing instructions from a static method ?

    val get_params : t -> string list

    Return the name of the method/function parameters, if any

    val module_name : t -> Ident.t

    Returns the name of the current module

    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/BinaryOp/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/BinaryOp/index.html new file mode 100644 index 00000000000..e61a8795484 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/BinaryOp/index.html @@ -0,0 +1,2 @@ + +BinaryOp (infer.PythonFrontend.PyIR.BinaryOp)

    Module PyIR.BinaryOp

    type t =
    1. | Add
    2. | And
    3. | FloorDivide
    4. | LShift
    5. | MatrixMultiply
    6. | Modulo
    7. | Multiply
    8. | Or
    9. | Power
    10. | RShift
    11. | Subtract
    12. | TrueDivide
    13. | Xor
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/BuiltinCaller/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/BuiltinCaller/index.html new file mode 100644 index 00000000000..2b9acf92e61 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/BuiltinCaller/index.html @@ -0,0 +1,2 @@ + +BuiltinCaller (infer.PythonFrontend.PyIR.BuiltinCaller)

    Module PyIR.BuiltinCaller

    type t =
    1. | BuildClass
    2. | BuildConstKeyMap
    3. | Format
    4. | FormatFn of FormatFunction.t
    5. | CallFunctionEx
      (*

      CALL_FUNCTION_EX

      *)
    6. | Inplace of BinaryOp.t
    7. | ImportName of string
    8. | ImportFrom of string
    9. | ImportStar
    10. | Binary of BinaryOp.t
    11. | Unary of UnaryOp.t
    12. | Compare of CompareOp.t
    13. | LoadClosure of {
      1. name : Ident.t;
      2. slot : int;
      }
      (*

      LOAD_CLOSURE

      *)
    14. | LoadDeref of {
      1. name : Ident.t;
      2. slot : int;
      }
      (*

      LOAD_DEREF

      *)
    15. | LoadClassDeref of {
      1. name : Ident.t;
      2. slot : int;
      }
      (*

      LOAD_CLASSDEREF

      *)
    16. | StoreDeref of {
      1. name : Ident.t;
      2. slot : int;
      }
      (*

      STORE_DEREF

      *)
    17. | Function of {
      1. qual_name : QualName.t;
      2. short_name : Ident.t;
      }
    18. | GetAIter
    19. | GetIter
    20. | NextIter
    21. | HasNextIter
    22. | IterData
    23. | GetYieldFromIter
    24. | ListAppend
    25. | SetAdd
    26. | DictSetItem
    27. | Delete of ScopedIdent.t
    28. | DeleteDeref of {
      1. name : Ident.t;
      2. slot : int;
      }
      (*

      DELETE_DEREF

      *)
    29. | DeleteAttr of string
    30. | DeleteSubscr
    31. | YieldFrom
    32. | GetAwaitable
    33. | UnpackEx
    34. | GetPreviousException
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/CFG/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/CFG/index.html new file mode 100644 index 00000000000..65a15e97f5e --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/CFG/index.html @@ -0,0 +1,2 @@ + +CFG (infer.PythonFrontend.PyIR.CFG)

    Module PyIR.CFG

    type t = {
    1. entry : NodeName.t;
    2. nodes : Node.t NodeName.Map.t;
    3. code_info : CodeInfo.t;
    }
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/CodeInfo/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/CodeInfo/index.html new file mode 100644 index 00000000000..4b2e0fab271 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/CodeInfo/index.html @@ -0,0 +1,2 @@ + +CodeInfo (infer.PythonFrontend.PyIR.CodeInfo)

    Module PyIR.CodeInfo

    type t = {
    1. co_name : string;
    2. co_nlocals : int;
    3. co_argcount : int;
    4. co_posonlyargcount : int;
    5. co_kwonlyargcount : int;
    6. co_cellvars : string array;
    7. co_freevars : string array;
    8. co_names : string array;
    9. co_varnames : string array;
    10. has_star_arguments : bool;
    11. has_star_keywords : bool;
    12. is_generator : bool;
    }
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/CompareOp/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/CompareOp/index.html new file mode 100644 index 00000000000..94fe7132fde --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/CompareOp/index.html @@ -0,0 +1,2 @@ + +CompareOp (infer.PythonFrontend.PyIR.CompareOp)

    Module PyIR.CompareOp

    type t =
    1. | Lt
    2. | Le
    3. | Eq
    4. | Neq
    5. | Gt
    6. | Ge
    7. | In
    8. | NotIn
    9. | Is
    10. | IsNot
    11. | Exception
    12. | BAD
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/Const/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/Const/index.html new file mode 100644 index 00000000000..9822dc4bf9d --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/Const/index.html @@ -0,0 +1,2 @@ + +Const (infer.PythonFrontend.PyIR.Const)

    Module PyIR.Const

    type t =
    1. | Bool of bool
    2. | Int of Z.t
    3. | Float of float
    4. | Complex of {
      1. real : float;
      2. imag : float;
      }
    5. | String of string
    6. | InvalidUnicode of int array
    7. | Bytes of bytes
    8. | None
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/Exp/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/Exp/index.html new file mode 100644 index 00000000000..8a5940fe307 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/Exp/index.html @@ -0,0 +1,2 @@ + +Exp (infer.PythonFrontend.PyIR.Exp)

    Module PyIR.Exp

    type collection =
    1. | List
    2. | Set
    3. | Tuple
    4. | Map
    type t =
    1. | Const of Const.t
    2. | Var of ScopedIdent.t
    3. | Temp of SSA.t
    4. | Subscript of {
      1. exp : t;
      2. index : t;
      }
    5. | BuildSlice of t list
    6. | BuildString of t list
    7. | BuildFrozenSet of t list
    8. | Collection of {
      1. kind : collection;
      2. values : t list;
      3. unpack : bool;
      }
    9. | GetAttr of t * string
    10. | Yield of t
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/FormatFunction/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/FormatFunction/index.html new file mode 100644 index 00000000000..236167e0a67 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/FormatFunction/index.html @@ -0,0 +1,2 @@ + +FormatFunction (infer.PythonFrontend.PyIR.FormatFunction)

    Module PyIR.FormatFunction

    type t =
    1. | Str
    2. | Repr
    3. | Ascii
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/Ident/Special/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/Ident/Special/index.html new file mode 100644 index 00000000000..d75b6c28713 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/Ident/Special/index.html @@ -0,0 +1,2 @@ + +Special (infer.PythonFrontend.PyIR.Ident.Special)

    Module Ident.Special

    val print : t
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/Ident/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/Ident/index.html new file mode 100644 index 00000000000..5ae09b5b1c1 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/Ident/index.html @@ -0,0 +1,2 @@ + +Ident (infer.PythonFrontend.PyIR.Ident)

    Module PyIR.Ident

    type t
    val pp : Stdlib.Format.formatter -> t -> unit
    module Hashtbl : IStdlib.IStd.Caml.Hashtbl.S with type key = t
    module Special : sig ... end
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/Module/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/Module/index.html index 22c5cc38d1c..153bd085891 100644 --- a/website/static/odoc/next/infer/PythonFrontend/PyIR/Module/index.html +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/Module/index.html @@ -1,2 +1,2 @@ -Module (infer.PythonFrontend.PyIR.Module)

    Module PyIR.Module

    type t
    val pp : Stdlib.Format.formatter -> t -> unit
    +Module (infer.PythonFrontend.PyIR.Module)

    Module PyIR.Module

    type t = {
    1. name : Ident.t;
    2. toplevel : CFG.t;
    3. functions : CFG.t QualName.Map.t;
    }
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/Node/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/Node/index.html new file mode 100644 index 00000000000..5405a6ad17d --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/Node/index.html @@ -0,0 +1,2 @@ + +Node (infer.PythonFrontend.PyIR.Node)

    Module PyIR.Node

    type t = {
    1. name : NodeName.t;
    2. first_loc : Location.t;
    3. last_loc : Location.t;
    4. ssa_parameters : SSA.t list;
    5. stmts : (Location.t * Stmt.t) list;
    6. last : Terminator.t;
    }
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/NodeName/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/NodeName/index.html new file mode 100644 index 00000000000..23a3c63b51d --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/NodeName/index.html @@ -0,0 +1,2 @@ + +NodeName (infer.PythonFrontend.PyIR.NodeName)

    Module PyIR.NodeName

    type t
    module Map : IStdlib.IStd.Caml.Map.S with type key = t
    val pp : Stdlib.Format.formatter -> t -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/QualName/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/QualName/index.html new file mode 100644 index 00000000000..9c319020664 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/QualName/index.html @@ -0,0 +1,2 @@ + +QualName (infer.PythonFrontend.PyIR.QualName)

    Module PyIR.QualName

    type t
    module Map : IStdlib.IStd.Caml.Map.S with type key = t
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/SSA/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/SSA/index.html new file mode 100644 index 00000000000..fb313eab3d8 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/SSA/index.html @@ -0,0 +1,2 @@ + +SSA (infer.PythonFrontend.PyIR.SSA)

    Module PyIR.SSA

    type t
    val pp : Stdlib.Format.formatter -> t -> unit
    module Hashtbl : IStdlib.IStd.Caml.Hashtbl.S with type key = t
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/ScopedIdent/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/ScopedIdent/index.html new file mode 100644 index 00000000000..0afe899bd42 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/ScopedIdent/index.html @@ -0,0 +1,2 @@ + +ScopedIdent (infer.PythonFrontend.PyIR.ScopedIdent)

    Module PyIR.ScopedIdent

    type scope =
    1. | Global
    2. | Fast
    3. | Name
    type t = {
    1. scope : scope;
    2. ident : Ident.t;
    }
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/Stmt/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/Stmt/index.html new file mode 100644 index 00000000000..c08f61c4b70 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/Stmt/index.html @@ -0,0 +1,2 @@ + +Stmt (infer.PythonFrontend.PyIR.Stmt)

    Module PyIR.Stmt

    type call_arg = Exp.t
    type t =
    1. | Let of {
      1. lhs : SSA.t;
      2. rhs : Exp.t;
      }
    2. | SetAttr of {
      1. lhs : Exp.t;
      2. attr : string;
      3. rhs : Exp.t;
      }
    3. | Store of {
      1. lhs : ScopedIdent.t;
      2. rhs : Exp.t;
      }
    4. | StoreSubscript of {
      1. lhs : Exp.t;
      2. index : Exp.t;
      3. rhs : Exp.t;
      }
    5. | Call of {
      1. lhs : SSA.t;
      2. exp : Exp.t;
      3. args : call_arg list;
      4. arg_names : Exp.t;
      }
    6. | CallMethod of {
      1. lhs : SSA.t;
      2. name : Ident.t;
      3. self_if_needed : Exp.t;
      4. args : Exp.t list;
      5. arg_names : Exp.t;
      }
    7. | BuiltinCall of {
      1. lhs : SSA.t;
      2. call : BuiltinCaller.t;
      3. args : call_arg list;
      4. arg_names : Exp.t;
      }
    8. | SetupAnnotations
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/Terminator/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/Terminator/index.html new file mode 100644 index 00000000000..b36ebe75db4 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/Terminator/index.html @@ -0,0 +1,2 @@ + +Terminator (infer.PythonFrontend.PyIR.Terminator)

    Module PyIR.Terminator

    type node_call = {
    1. label : NodeName.t;
    2. ssa_args : Exp.t list;
    }
    type t =
    1. | Return of Exp.t
    2. | Jump of node_call
    3. | If of {
      1. exp : Exp.t;
      2. then_ : node_call;
      3. else_ : node_call;
      }
    4. | Throw of Exp.t
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/UnaryOp/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/UnaryOp/index.html new file mode 100644 index 00000000000..b594c5cde1b --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/UnaryOp/index.html @@ -0,0 +1,2 @@ + +UnaryOp (infer.PythonFrontend.PyIR.UnaryOp)

    Module PyIR.UnaryOp

    type t =
    1. | Positive
    2. | Negative
    3. | Not
    4. | Invert
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIR/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIR/index.html index 6caf43e1709..319eecfc0ce 100644 --- a/website/static/odoc/next/infer/PythonFrontend/PyIR/index.html +++ b/website/static/odoc/next/infer/PythonFrontend/PyIR/index.html @@ -1,2 +1,7 @@ -PyIR (infer.PythonFrontend.PyIR)

    Module PythonFrontend.PyIR

    module Location : sig ... end
    module Error : sig ... end
    module Module : sig ... end
    val mk : debug:bool -> FFI.Code.t -> (Module.t, Error.t) IStdlib.IStd.result
    +PyIR (infer.PythonFrontend.PyIR)

    Module PythonFrontend.PyIR

    module Location : sig ... end
    module Error : sig ... end
    module NodeName : sig ... end
    module SSA : sig ... end
    module Ident : sig ... end
    module ScopedIdent : sig ... end
    module QualName : sig ... end
    module UnaryOp : sig ... end
    module BinaryOp : sig ... end
    module CompareOp : sig ... end
    module FormatFunction : sig ... end
    module BuiltinCaller : sig ... end
    module Const : sig ... end
    module Exp : sig ... end
    module Stmt : sig ... end
    module Terminator : sig ... end
    module Node : sig ... end
    module CodeInfo : sig ... end
    module CFG : sig ... end
    module Module : sig ... end
    val mk : debug:bool -> FFI.Code.t -> (Module.t, Error.t) IStdlib.IStd.result
    val test : + ?filename:string -> + ?debug:bool -> + ?run:(Module.t -> unit) -> + string -> + unit
    val test_cfg_skeleton : ?filename:string -> string -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyIRExec/index.html b/website/static/odoc/next/infer/PythonFrontend/PyIRExec/index.html new file mode 100644 index 00000000000..2989c5ec790 --- /dev/null +++ b/website/static/odoc/next/infer/PythonFrontend/PyIRExec/index.html @@ -0,0 +1,2 @@ + +PyIRExec (infer.PythonFrontend.PyIRExec)

    Module PythonFrontend.PyIRExec

    val run : PyIR.Module.t -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyTrans/Error/index.html b/website/static/odoc/next/infer/PythonFrontend/PyTrans/Error/index.html deleted file mode 100644 index 372a63404a4..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyTrans/Error/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Error (infer.PythonFrontend.PyTrans.Error)

    Module PyTrans.Error

    type kind
    val ffi : FFI.Error.t -> t
    val textual_parser : Textuallib.Textual.SourceFile.t -> t
    val pp_kind : Stdlib.Format.formatter -> kind -> unit
    diff --git a/website/static/odoc/next/infer/PythonFrontend/PyTrans/index.html b/website/static/odoc/next/infer/PythonFrontend/PyTrans/index.html deleted file mode 100644 index 89167bbfb04..00000000000 --- a/website/static/odoc/next/infer/PythonFrontend/PyTrans/index.html +++ /dev/null @@ -1,5 +0,0 @@ - -PyTrans (infer.PythonFrontend.PyTrans)

    Module PythonFrontend.PyTrans

    module Error : sig ... end

    Translate a Python code object into its Textual counter part

    diff --git a/website/static/odoc/next/infer/PythonFrontend/index.html b/website/static/odoc/next/infer/PythonFrontend/index.html index a6da3633c22..19577b2c8aa 100644 --- a/website/static/odoc/next/infer/PythonFrontend/index.html +++ b/website/static/odoc/next/infer/PythonFrontend/index.html @@ -1,2 +1,2 @@ -PythonFrontend (infer.PythonFrontend)

    Module PythonFrontend

    module FFI : sig ... end

    This file is about translating Python3.8 code objects into an OCaml representation. Some interesting readings:

    module PyBuiltin : sig ... end
    module PyClassDecl : sig ... end
    module PyCommon : sig ... end
    module PyDebug : sig ... end
    module PyEnv : sig ... end
    module PyIR : sig ... end
    module PyTrans : sig ... end
    +PythonFrontend (infer.PythonFrontend)

    Module PythonFrontend

    module FFI : sig ... end

    This file is about translating Python3.8 code objects into an OCaml representation. Some interesting readings:

    module PyIR : sig ... end
    module PyIRExec : sig ... end
    diff --git a/website/static/odoc/next/infer/Textuallib/Textual/index.html b/website/static/odoc/next/infer/Textuallib/Textual/index.html index 4c97f8eb598..a9a2e9bbd97 100644 --- a/website/static/odoc/next/infer/Textuallib/Textual/index.html +++ b/website/static/odoc/next/infer/Textuallib/Textual/index.html @@ -1,2 +1,2 @@ -Textual (infer.Textuallib.Textual)

    Module Textuallib.Textual

    module F = Stdlib.Format
    module Hashtbl = IStdlib.IStd.Caml.Hashtbl
    module Lang : sig ... end
    module Location : sig ... end
    module type NAME = sig ... end
    module ProcName : NAME
    module VarName : sig ... end
    module FieldName : NAME
    val builtin_allocate : string
    module NodeName : NAME
    module TypeName : sig ... end
    module QualifiedProcName : sig ... end
    type qualified_fieldname = {
    1. enclosing_class : TypeName.t;
    2. name : FieldName.t;
    }
    val pp_qualified_fieldname : F.formatter -> qualified_fieldname -> unit
    module Attr : sig ... end
    module Typ : sig ... end
    module Ident : sig ... end
    module Const : sig ... end
    module ProcSig : sig ... end
    module ProcDecl : sig ... end
    module Global : sig ... end
    module FieldDecl : sig ... end
    module Exp : sig ... end
    module BoolExp : sig ... end
    module Instr : sig ... end
    module Terminator : sig ... end
    module Node : sig ... end
    module ProcDesc : sig ... end
    module Body : sig ... end
    module Struct : sig ... end
    module SsaVerification : sig ... end
    module SourceFile : sig ... end
    module Module : sig ... end
    type transform_error = {
    1. loc : Location.t;
    2. msg : string IStdlib.IStd.Lazy.t;
    }
    val pp_transform_error : SourceFile.t -> F.formatter -> transform_error -> unit
    exception TextualTransformError of transform_error list
    exception SpecialSyntaxError of Location.t * string
    +Textual (infer.Textuallib.Textual)

    Module Textuallib.Textual

    module F = Stdlib.Format
    module Hashtbl = IStdlib.IStd.Caml.Hashtbl
    module Lang : sig ... end
    module Location : sig ... end
    module type NAME = sig ... end
    module ProcName : NAME
    module VarName : sig ... end
    module FieldName : NAME
    module NodeName : NAME
    module TypeName : sig ... end
    module QualifiedProcName : sig ... end
    type qualified_fieldname = {
    1. enclosing_class : TypeName.t;
    2. name : FieldName.t;
    }
    val pp_qualified_fieldname : F.formatter -> qualified_fieldname -> unit
    module Attr : sig ... end
    module Typ : sig ... end
    module Ident : sig ... end
    module Const : sig ... end
    module ProcSig : sig ... end
    module ProcDecl : sig ... end
    module Global : sig ... end
    module FieldDecl : sig ... end
    module Exp : sig ... end
    module BoolExp : sig ... end
    module Instr : sig ... end
    module Terminator : sig ... end
    module Node : sig ... end
    module ProcDesc : sig ... end
    module Body : sig ... end
    module Struct : sig ... end
    module SsaVerification : sig ... end
    module SourceFile : sig ... end
    module Module : sig ... end
    type transform_error = {
    1. loc : Location.t;
    2. msg : string IStdlib.IStd.Lazy.t;
    }
    val pp_transform_error : SourceFile.t -> F.formatter -> transform_error -> unit
    exception TextualTransformError of transform_error list
    exception SpecialSyntaxError of Location.t * string
    diff --git a/website/static/odoc/next/infer/Textuallib/TextualParser/TextualFile/index.html b/website/static/odoc/next/infer/Textuallib/TextualParser/TextualFile/index.html index 3bc99af34d7..2c50ef02ca3 100644 --- a/website/static/odoc/next/infer/Textuallib/TextualParser/TextualFile/index.html +++ b/website/static/odoc/next/infer/Textuallib/TextualParser/TextualFile/index.html @@ -1,7 +1,4 @@ -TextualFile (infer.Textuallib.TextualParser.TextualFile)

    Module TextualParser.TextualFile

    type t =
    1. | StandaloneFile of string
      (*

      Path to a file with textual SIL as content.

      *)
    2. | TranslatedFile of {
      1. source_path : string;
      2. content : string;
      3. line_map : LineMap.t;
      }
      (*

      File with textual SIL content which is a result of translation of a file at source_path.

      *)
    type sil = {
    1. sourcefile : Textual.SourceFile.t;
    2. cfg : IR.Cfg.t;
    3. tenv : IR.Tenv.t;
    }
    val translate : +TextualFile (infer.Textuallib.TextualParser.TextualFile)

    Module TextualParser.TextualFile

    type t =
    1. | StandaloneFile of string
      (*

      Path to a file with textual SIL as content.

      *)
    2. | TranslatedFile of {
      1. source_path : string;
      2. content : string;
      3. line_map : LineMap.t;
      }
      (*

      File with textual SIL content which is a result of translation of a file at source_path.

      *)
    type sil = {
    1. sourcefile : Textual.SourceFile.t;
    2. cfg : IR.Cfg.t;
    3. tenv : IR.Tenv.t;
    }
    val translate : t -> (sil, Textual.SourceFile.t * error list) IStdlib.IStd.result
    val capture : use_global_tenv:bool -> sil -> unit
    val line_map : t -> LineMap.t option
    diff --git a/website/static/odoc/next/infer/UnitTests/IListTests/index.html b/website/static/odoc/next/infer/UnitTests/IListTests/index.html index 1b37dd1e30a..a0d98bd0b49 100644 --- a/website/static/odoc/next/infer/UnitTests/IListTests/index.html +++ b/website/static/odoc/next/infer/UnitTests/IListTests/index.html @@ -1,2 +1,2 @@ -IListTests (infer.UnitTests.IListTests)

    Module UnitTests.IListTests

    val inputs : (string * int list) list
    val inter_tests : OUnit2.test list
    val traverse_test : OUnit2.test list
    val tests : OUnit2.test
    +IListTests (infer.UnitTests.IListTests)

    Module UnitTests.IListTests

    val inputs : (string * int list) list
    val inter_tests : OUnit2.test list
    val traverse_test : OUnit2.test list
    val k_last_columns_same_cell_test : OUnit2.test list
    val tests : OUnit2.test