@@ -2851,7 +2851,32 @@ class ArrayHelper_CXCursor_data_level0 {
2851
2851
2852
2852
/// Describes the availability of a given entity on a particular platform, e.g.,
2853
2853
/// a particular class might only be available on Mac OS 10.7 or newer.
2854
- class CXPlatformAvailability extends ffi.Struct {}
2854
+ class CXPlatformAvailability extends ffi.Struct {
2855
+ /// A string that describes the platform for which this structure
2856
+ /// provides availability information.
2857
+ ///
2858
+ /// Possible values are "ios" or "macos".
2859
+ CXString Platform ;
2860
+
2861
+ /// The version number in which this entity was introduced.
2862
+ CXVersion Introduced ;
2863
+
2864
+ /// The version number in which this entity was deprecated (but is
2865
+ /// still available).
2866
+ CXVersion Deprecated ;
2867
+
2868
+ /// The version number in which this entity was obsoleted, and therefore
2869
+ /// is no longer available.
2870
+ CXVersion Obsoleted ;
2871
+
2872
+ /// Whether the entity is unconditionally unavailable on this platform.
2873
+ @ffi .Int32 ()
2874
+ int Unavailable ;
2875
+
2876
+ /// An optional message to provide to a user of this API, e.g., to
2877
+ /// suggest replacement APIs.
2878
+ CXString Message ;
2879
+ }
2855
2880
2856
2881
class CXCursorSetImpl extends ffi.Struct {}
2857
2882
@@ -3202,20 +3227,127 @@ class ArrayHelper_CXIdxLoc_ptr_data_level0 {
3202
3227
}
3203
3228
3204
3229
/// Data for ppIncludedFile callback.
3205
- class CXIdxIncludedFileInfo extends ffi.Struct {}
3230
+ class CXIdxIncludedFileInfo extends ffi.Struct {
3231
+ /// Location of '#' in the \#include/\#import directive.
3232
+ CXIdxLoc hashLoc;
3233
+
3234
+ /// Filename as written in the \#include/\#import directive.
3235
+ ffi.Pointer <ffi.Int8 > filename;
3236
+
3237
+ /// The actual file that the \#include/\#import directive resolved to.
3238
+ ffi.Pointer <ffi.Void > file;
3239
+
3240
+ @ffi .Int32 ()
3241
+ int isImport;
3242
+
3243
+ @ffi .Int32 ()
3244
+ int isAngled;
3245
+
3246
+ /// Non-zero if the directive was automatically turned into a module
3247
+ /// import.
3248
+ @ffi .Int32 ()
3249
+ int isModuleImport;
3250
+ }
3206
3251
3207
3252
/// Data for IndexerCallbacks#importedASTFile.
3208
- class CXIdxImportedASTFileInfo extends ffi.Struct {}
3253
+ class CXIdxImportedASTFileInfo extends ffi.Struct {
3254
+ /// Top level AST file containing the imported PCH, module or submodule.
3255
+ ffi.Pointer <ffi.Void > file;
3256
+
3257
+ /// The imported module or NULL if the AST file is a PCH.
3258
+ ffi.Pointer <ffi.Void > module;
3259
+
3260
+ /// Location where the file is imported. Applicable only for modules.
3261
+ CXIdxLoc loc;
3262
+
3263
+ /// Non-zero if an inclusion directive was automatically turned into
3264
+ /// a module import. Applicable only for modules.
3265
+ @ffi .Int32 ()
3266
+ int isImplicit;
3267
+ }
3268
+
3269
+ class CXIdxAttrInfo extends ffi.Struct {
3270
+ @ffi .Int32 ()
3271
+ int kind;
3272
+
3273
+ CXCursor cursor;
3274
+
3275
+ CXIdxLoc loc;
3276
+ }
3277
+
3278
+ class CXIdxEntityInfo extends ffi.Struct {
3279
+ @ffi .Int32 ()
3280
+ int kind;
3281
+
3282
+ @ffi .Int32 ()
3283
+ int templateKind;
3284
+
3285
+ @ffi .Int32 ()
3286
+ int lang;
3209
3287
3210
- class CXIdxAttrInfo extends ffi.Struct {}
3288
+ ffi.Pointer <ffi. Int8 > name;
3211
3289
3212
- class CXIdxEntityInfo extends ffi.Struct {}
3290
+ ffi.Pointer <ffi. Int8 > USR ;
3213
3291
3214
- class CXIdxContainerInfo extends ffi.Struct {}
3292
+ CXCursor cursor;
3293
+
3294
+ ffi.Pointer <ffi.Pointer <CXIdxAttrInfo >> attributes;
3295
+
3296
+ @ffi .Uint32 ()
3297
+ int numAttributes;
3298
+ }
3299
+
3300
+ class CXIdxContainerInfo extends ffi.Struct {
3301
+ CXCursor cursor;
3302
+ }
3303
+
3304
+ class CXIdxIBOutletCollectionAttrInfo extends ffi.Struct {
3305
+ ffi.Pointer <CXIdxAttrInfo > attrInfo;
3306
+
3307
+ ffi.Pointer <CXIdxEntityInfo > objcClass;
3308
+
3309
+ CXCursor classCursor;
3310
+
3311
+ CXIdxLoc classLoc;
3312
+ }
3215
3313
3216
- class CXIdxIBOutletCollectionAttrInfo extends ffi.Struct {}
3314
+ class CXIdxDeclInfo extends ffi.Struct {
3315
+ ffi.Pointer <CXIdxEntityInfo > entityInfo;
3217
3316
3218
- class CXIdxDeclInfo extends ffi.Struct {}
3317
+ CXCursor cursor;
3318
+
3319
+ CXIdxLoc loc;
3320
+
3321
+ ffi.Pointer <CXIdxContainerInfo > semanticContainer;
3322
+
3323
+ /// Generally same as #semanticContainer but can be different in
3324
+ /// cases like out-of-line C++ member functions.
3325
+ ffi.Pointer <CXIdxContainerInfo > lexicalContainer;
3326
+
3327
+ @ffi .Int32 ()
3328
+ int isRedeclaration;
3329
+
3330
+ @ffi .Int32 ()
3331
+ int isDefinition;
3332
+
3333
+ @ffi .Int32 ()
3334
+ int isContainer;
3335
+
3336
+ ffi.Pointer <CXIdxContainerInfo > declAsContainer;
3337
+
3338
+ /// Whether the declaration exists in code or was created implicitly
3339
+ /// by the compiler, e.g. implicit Objective-C methods for properties.
3340
+ @ffi .Int32 ()
3341
+ int isImplicit;
3342
+
3343
+ ffi.Pointer <ffi.Pointer <CXIdxAttrInfo >> attributes;
3344
+
3345
+ @ffi .Uint32 ()
3346
+ int numAttributes;
3347
+
3348
+ @ffi .Uint32 ()
3349
+ int flags;
3350
+ }
3219
3351
3220
3352
class CXIdxObjCContainerDeclInfo extends ffi.Struct {
3221
3353
ffi.Pointer <CXIdxDeclInfo > declInfo;
@@ -3224,9 +3356,21 @@ class CXIdxObjCContainerDeclInfo extends ffi.Struct {
3224
3356
int kind;
3225
3357
}
3226
3358
3227
- class CXIdxBaseClassInfo extends ffi.Struct {}
3359
+ class CXIdxBaseClassInfo extends ffi.Struct {
3360
+ ffi.Pointer <CXIdxEntityInfo > base ;
3228
3361
3229
- class CXIdxObjCProtocolRefInfo extends ffi.Struct {}
3362
+ CXCursor cursor;
3363
+
3364
+ CXIdxLoc loc;
3365
+ }
3366
+
3367
+ class CXIdxObjCProtocolRefInfo extends ffi.Struct {
3368
+ ffi.Pointer <CXIdxEntityInfo > protocol;
3369
+
3370
+ CXCursor cursor;
3371
+
3372
+ CXIdxLoc loc;
3373
+ }
3230
3374
3231
3375
class CXIdxObjCProtocolRefListInfo extends ffi.Struct {
3232
3376
ffi.Pointer <ffi.Pointer <CXIdxObjCProtocolRefInfo >> protocols;
@@ -3243,7 +3387,17 @@ class CXIdxObjCInterfaceDeclInfo extends ffi.Struct {
3243
3387
ffi.Pointer <CXIdxObjCProtocolRefListInfo > protocols;
3244
3388
}
3245
3389
3246
- class CXIdxObjCCategoryDeclInfo extends ffi.Struct {}
3390
+ class CXIdxObjCCategoryDeclInfo extends ffi.Struct {
3391
+ ffi.Pointer <CXIdxObjCContainerDeclInfo > containerInfo;
3392
+
3393
+ ffi.Pointer <CXIdxEntityInfo > objcClass;
3394
+
3395
+ CXCursor classCursor;
3396
+
3397
+ CXIdxLoc classLoc;
3398
+
3399
+ ffi.Pointer <CXIdxObjCProtocolRefListInfo > protocols;
3400
+ }
3247
3401
3248
3402
class CXIdxObjCPropertyDeclInfo extends ffi.Struct {
3249
3403
ffi.Pointer <CXIdxDeclInfo > declInfo;
@@ -3263,7 +3417,36 @@ class CXIdxCXXClassDeclInfo extends ffi.Struct {
3263
3417
}
3264
3418
3265
3419
/// Data for IndexerCallbacks#indexEntityReference.
3266
- class CXIdxEntityRefInfo extends ffi.Struct {}
3420
+ class CXIdxEntityRefInfo extends ffi.Struct {
3421
+ @ffi .Int32 ()
3422
+ int kind;
3423
+
3424
+ /// Reference cursor.
3425
+ CXCursor cursor;
3426
+
3427
+ CXIdxLoc loc;
3428
+
3429
+ /// The entity that gets referenced.
3430
+ ffi.Pointer <CXIdxEntityInfo > referencedEntity;
3431
+
3432
+ /// Immediate "parent" of the reference. For example:
3433
+ ///
3434
+ /// \code
3435
+ /// Foo *var;
3436
+ /// \endcode
3437
+ ///
3438
+ /// The parent of reference of type 'Foo' is the variable 'var'.
3439
+ /// For references inside statement bodies of functions/methods,
3440
+ /// the parentEntity will be the function/method.
3441
+ ffi.Pointer <CXIdxEntityInfo > parentEntity;
3442
+
3443
+ /// Lexical container context of the reference.
3444
+ ffi.Pointer <CXIdxContainerInfo > container;
3445
+
3446
+ /// Sets of symbol roles of the reference.
3447
+ @ffi .Int32 ()
3448
+ int role;
3449
+ }
3267
3450
3268
3451
/// A group of callbacks used by #clang_indexSourceFile and
3269
3452
/// #clang_indexTranslationUnit.
0 commit comments