clang: include/clang/APINotes/Types.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_CLANG_APINOTES_TYPES_H
10#define LLVM_CLANG_APINOTES_TYPES_H
11
13#include "llvm/ADT/ArrayRef.h"
14#include "llvm/ADT/StringRef.h"
15#include
16#include
17#include
18
19namespace llvm {
20class raw_ostream;
21}
22
32
33
34
35
41
42
48
50
51
52
53
55public:
56
58
59
60 LLVM_PREFERRED_TYPE(bool)
62
63
64 LLVM_PREFERRED_TYPE(bool)
66
67private:
68
69 LLVM_PREFERRED_TYPE(bool)
70 unsigned SwiftPrivateSpecified : 1;
71
72
73 LLVM_PREFERRED_TYPE(bool)
74 unsigned SwiftPrivate : 1;
75
76 LLVM_PREFERRED_TYPE(bool)
77 unsigned SwiftSafetyAudited : 1;
78
80 unsigned SwiftSafety : 2;
81
82public:
83
85
88 SwiftPrivate(0), SwiftSafetyAudited(0), SwiftSafety(0) {}
89
91 return SwiftPrivateSpecified ? std::optional(SwiftPrivate)
92 : std::nullopt;
93 }
94
96 SwiftPrivateSpecified = Private.has_value();
97 SwiftPrivate = Private.value_or(0);
98 }
99
101 return SwiftSafetyAudited ? std::optional(
103 : std::nullopt;
104 }
105
107 SwiftSafetyAudited = 1;
108 SwiftSafety = static_cast<unsigned>(Safety);
109 }
110
112
114
119 }
120
125 }
126
127 if (!SwiftPrivateSpecified)
129
130 if (!SwiftSafetyAudited && RHS.SwiftSafetyAudited)
132
135
136 return *this;
137 }
138
139 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const;
140};
141
147 LHS.SwiftPrivateSpecified == RHS.SwiftPrivateSpecified &&
148 LHS.SwiftPrivate == RHS.SwiftPrivate &&
149 LHS.SwiftSafetyAudited == RHS.SwiftSafetyAudited &&
150 LHS.SwiftSafety == RHS.SwiftSafety && LHS.SwiftName == RHS.SwiftName;
151}
152
155 return !(LHS == RHS);
156}
157
158
160
161
162
163 std::optionalstd::string SwiftBridge;
164
165
166 std::optionalstd::string NSErrorDomain;
167
168
169 std::optionalstd::string SwiftConformance;
170
171public:
173
175 return SwiftBridge;
176 }
177
179 SwiftBridge = SwiftType;
180 }
181
183 return NSErrorDomain;
184 }
185
187 NSErrorDomain = Domain;
188 }
189
191 NSErrorDomain = Domain ? std::optionalstd::string(std::string(*Domain))
192 : std::nullopt;
193 }
194
196 return SwiftConformance;
197 }
198
200 SwiftConformance = conformance;
201 }
202
204
206
208
209 if (!SwiftBridge)
211 if (!NSErrorDomain)
213 if (SwiftConformance)
215
216 return *this;
217 }
218
219 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const;
220};
221
224 LHS.SwiftBridge == RHS.SwiftBridge &&
225 LHS.NSErrorDomain == RHS.NSErrorDomain &&
226 LHS.SwiftConformance == RHS.SwiftConformance;
227}
228
230 return !(LHS == RHS);
231}
232
233
234
236
237 LLVM_PREFERRED_TYPE(bool)
238 unsigned HasDefaultNullability : 1;
239
240
242 unsigned DefaultNullability : 2;
243
244
245 LLVM_PREFERRED_TYPE(bool)
246 unsigned HasDesignatedInits : 1;
247
248 LLVM_PREFERRED_TYPE(bool)
249 unsigned SwiftImportAsNonGenericSpecified : 1;
250 LLVM_PREFERRED_TYPE(bool)
251 unsigned SwiftImportAsNonGeneric : 1;
252
253 LLVM_PREFERRED_TYPE(bool)
254 unsigned SwiftObjCMembersSpecified : 1;
255 LLVM_PREFERRED_TYPE(bool)
256 unsigned SwiftObjCMembers : 1;
257
258public:
260 : HasDefaultNullability(0), DefaultNullability(0), HasDesignatedInits(0),
261 SwiftImportAsNonGenericSpecified(false), SwiftImportAsNonGeneric(false),
262 SwiftObjCMembersSpecified(false), SwiftObjCMembers(false) {}
263
264
265
266
267
268
270 return HasDefaultNullability
271 ? std::optional(
273 : std::nullopt;
274 }
275
276
278 HasDefaultNullability = true;
279 DefaultNullability = static_cast<unsigned>(Kind);
280 }
281
284
286 return SwiftImportAsNonGenericSpecified
287 ? std::optional(SwiftImportAsNonGeneric)
288 : std::nullopt;
289 }
291 SwiftImportAsNonGenericSpecified = Value.has_value();
292 SwiftImportAsNonGeneric = Value.value_or(false);
293 }
294
296 return SwiftObjCMembersSpecified ? std::optional(SwiftObjCMembers)
297 : std::nullopt;
298 }
300 SwiftObjCMembersSpecified = Value.has_value();
301 SwiftObjCMembers = Value.value_or(false);
302 }
303
305
307
309
310
314
315 if (!SwiftImportAsNonGenericSpecified)
317
318 if (!SwiftObjCMembersSpecified)
320
321 HasDesignatedInits |= RHS.HasDesignatedInits;
322
323 return *this;
324 }
325
326 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS);
327};
328
330 return static_cast<const CommonTypeInfo &>(LHS) == RHS &&
332 LHS.HasDesignatedInits == RHS.HasDesignatedInits &&
335}
336
338 return !(LHS == RHS);
339}
340
341
343
344 LLVM_PREFERRED_TYPE(bool)
345 unsigned NullabilityAudited : 1;
346
347
348
350 unsigned Nullable : 2;
351
352
353 std::string Type;
354
355public:
357
359 return NullabilityAudited ? std::optional(
361 : std::nullopt;
362 }
363
365 NullabilityAudited = true;
366 Nullable = static_cast<unsigned>(kind);
367 }
368
369 const std::string &getType() const { return Type; }
371
373
376
377 if (!NullabilityAudited && RHS.NullabilityAudited)
379 if (Type.empty())
380 Type = RHS.Type;
381
382 return *this;
383 }
384
385 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const;
386};
387
390 LHS.NullabilityAudited == RHS.NullabilityAudited &&
391 LHS.Nullable == RHS.Nullable && LHS.Type == RHS.Type;
392}
393
395 return !(LHS == RHS);
396}
397
398
400 LLVM_PREFERRED_TYPE(bool)
401 unsigned SwiftImportAsAccessorsSpecified : 1;
402 LLVM_PREFERRED_TYPE(bool)
403 unsigned SwiftImportAsAccessors : 1;
404
405public:
407 : SwiftImportAsAccessorsSpecified(false), SwiftImportAsAccessors(false) {}
408
410 return SwiftImportAsAccessorsSpecified
411 ? std::optional(SwiftImportAsAccessors)
412 : std::nullopt;
413 }
415 SwiftImportAsAccessorsSpecified = Value.has_value();
416 SwiftImportAsAccessors = Value.value_or(false);
417 }
418
420
421
424
425
429
430 return *this;
431 }
432
435
436 if (!SwiftImportAsAccessorsSpecified)
438
439 return *this;
440 }
441
442 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const;
443};
444
447 return static_cast<const VariableInfo &>(LHS) == RHS &&
449}
450
453 return !(LHS == RHS);
454}
455
456
458
459 LLVM_PREFERRED_TYPE(bool)
460 unsigned NoEscapeSpecified : 1;
461
462
463 LLVM_PREFERRED_TYPE(bool)
464 unsigned NoEscape : 1;
465
466
467 LLVM_PREFERRED_TYPE(bool)
468 unsigned LifetimeboundSpecified : 1;
469
470
471 LLVM_PREFERRED_TYPE(bool)
472 unsigned Lifetimebound : 1;
473
474
475
476
477 unsigned RawRetainCountConvention : 3;
478
479public:
481 : NoEscapeSpecified(false), NoEscape(false),
482 LifetimeboundSpecified(false), Lifetimebound(false),
483 RawRetainCountConvention() {}
484
486 return NoEscapeSpecified ? std::optional(NoEscape) : std::nullopt;
487 }
489 NoEscapeSpecified = Value.has_value();
490 NoEscape = Value.value_or(false);
491 }
492
494 return LifetimeboundSpecified ? std::optional(Lifetimebound)
495 : std::nullopt;
496 }
498 LifetimeboundSpecified = Value.has_value();
499 Lifetimebound = Value.value_or(false);
500 }
501
503 if (!RawRetainCountConvention)
504 return std::nullopt;
506 }
507 void
509 RawRetainCountConvention = Value ? static_cast<unsigned>(*Value) + 1 : 0;
511 }
512
515
516 if (!NoEscapeSpecified && RHS.NoEscapeSpecified) {
517 NoEscapeSpecified = true;
518 NoEscape = RHS.NoEscape;
519 }
520
521 if (!LifetimeboundSpecified && RHS.LifetimeboundSpecified) {
522 LifetimeboundSpecified = true;
523 Lifetimebound = RHS.Lifetimebound;
524 }
525
526 if (!RawRetainCountConvention)
527 RawRetainCountConvention = RHS.RawRetainCountConvention;
528
529 return *this;
530 }
531
533
534 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const;
535};
536
538 return static_cast<const VariableInfo &>(LHS) == RHS &&
539 LHS.NoEscapeSpecified == RHS.NoEscapeSpecified &&
540 LHS.NoEscape == RHS.NoEscape &&
541 LHS.LifetimeboundSpecified == RHS.LifetimeboundSpecified &&
542 LHS.Lifetimebound == RHS.Lifetimebound &&
543 LHS.RawRetainCountConvention == RHS.RawRetainCountConvention;
544}
545
547 return !(LHS == RHS);
548}
549
550
552private:
553 static constexpr const uint64_t NullabilityKindMask = 0x3;
554 static constexpr const unsigned NullabilityKindSize = 2;
555
556 static constexpr const unsigned ReturnInfoIndex = 0;
557
558public:
559
560
561
562
563
564 LLVM_PREFERRED_TYPE(bool)
566
567
569
570
572
573
574
575
576
577
579
580
582
583
585
586
588
592
596
599 assert(static_cast<unsigned>(kind) < NullabilityKindMask);
600
604
605
607 ~(NullabilityKindMask << (index * NullabilityKindSize));
608
609
610 unsigned kindValue = (static_cast<unsigned>(kind))
611 << (index * NullabilityKindSize);
613 }
614
615
619
620
624
626 return getTypeInfo(index + 1);
627 }
628
630
633 return std::nullopt;
635 }
636 void
641
643
644private:
647 "Checking the type adjustment on non-audited method.");
648
649
653 return static_cast<NullabilityKind>(nullability & NullabilityKindMask);
654 }
655
656public:
657 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const;
658};
659
669
671 return !(LHS == RHS);
672}
673
674
676public:
677
678 LLVM_PREFERRED_TYPE(bool)
680
681
682 LLVM_PREFERRED_TYPE(bool)
684
686
688
690
692
697 }
698 }
699 return *this;
700 }
701
702 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS);
703};
704
706 return static_cast<const FunctionInfo &>(LHS) == RHS &&
709}
710
712 return !(LHS == RHS);
713}
714
715
720
721
726
727
732
733
735public:
737
739
740 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS);
741};
742
746
748 return !(LHS == RHS);
749}
750
751
756
757
759 LLVM_PREFERRED_TYPE(bool)
760 unsigned HasFlagEnum : 1;
761 LLVM_PREFERRED_TYPE(bool)
762 unsigned IsFlagEnum : 1;
763
764 LLVM_PREFERRED_TYPE(bool)
765 unsigned SwiftCopyableSpecified : 1;
766 LLVM_PREFERRED_TYPE(bool)
767 unsigned SwiftCopyable : 1;
768
769 LLVM_PREFERRED_TYPE(bool)
770 unsigned SwiftEscapableSpecified : 1;
771 LLVM_PREFERRED_TYPE(bool)
772 unsigned SwiftEscapable : 1;
773
774public:
780
782
784 : HasFlagEnum(0), IsFlagEnum(0), SwiftCopyableSpecified(false),
785 SwiftCopyable(false), SwiftEscapableSpecified(false),
786 SwiftEscapable(false) {}
787
789 if (HasFlagEnum)
790 return IsFlagEnum;
791 return std::nullopt;
792 }
794 HasFlagEnum = Value.has_value();
795 IsFlagEnum = Value.value_or(false);
796 }
797
799 return SwiftCopyableSpecified ? std::optional(SwiftCopyable)
800 : std::nullopt;
801 }
803 SwiftCopyableSpecified = Value.has_value();
804 SwiftCopyable = Value.value_or(false);
805 }
806
808 return SwiftEscapableSpecified ? std::optional(SwiftEscapable)
809 : std::nullopt;
810 }
811
813 SwiftEscapableSpecified = Value.has_value();
814 SwiftEscapable = Value.value_or(false);
815 }
816
819
830
831 if (!HasFlagEnum)
833
836
837 if (!SwiftCopyableSpecified)
839
840 if (!SwiftEscapableSpecified)
842
843 return *this;
844 }
845
847
848 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS);
849};
850
863
865 return !(LHS == RHS);
866}
867
868
870public:
872
874
881
883
884 LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const;
885};
886
891
893 return !(LHS == RHS);
894}
895
896
898
899
900
907
914
921
922
923
924
925
926
927
932}
933}
934
935#endif
Defines various enumerations that describe declaration and type specifiers.
Describes API notes data for a C++ method.
Definition Types.h:734
std::optional< ParamInfo > This
Definition Types.h:738
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS)
CXXMethodInfo()
Definition Types.h:736
Describes API notes data for any entity.
Definition Types.h:54
unsigned UnavailableInSwift
Whether this entity is marked unavailable in Swift.
Definition Types.h:65
unsigned Unavailable
Whether this entity is marked unavailable.
Definition Types.h:61
std::string SwiftName
Swift name of this entity.
Definition Types.h:84
void setSwiftSafety(SwiftSafetyKind Safety)
Definition Types.h:106
void setSwiftPrivate(std::optional< bool > Private)
Definition Types.h:95
friend bool operator==(const CommonEntityInfo &, const CommonEntityInfo &)
Definition Types.h:142
std::string UnavailableMsg
Message to use when this entity is unavailable.
Definition Types.h:57
std::optional< SwiftSafetyKind > getSwiftSafety() const
Definition Types.h:100
CommonEntityInfo()
Definition Types.h:86
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const
std::optional< bool > isSwiftPrivate() const
Definition Types.h:90
CommonEntityInfo & operator|=(const CommonEntityInfo &RHS)
Definition Types.h:113
Describes API notes for types.
Definition Types.h:159
void setNSErrorDomain(const std::optional< llvm::StringRef > &Domain)
Definition Types.h:190
friend bool operator==(const CommonTypeInfo &, const CommonTypeInfo &)
Definition Types.h:222
std::optional< std::string > getSwiftConformance() const
Definition Types.h:195
CommonTypeInfo()
Definition Types.h:172
const std::optional< std::string > & getSwiftBridge() const
Definition Types.h:174
void setSwiftConformance(std::optional< std::string > conformance)
Definition Types.h:199
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const
void setNSErrorDomain(const std::optional< std::string > &Domain)
Definition Types.h:186
const std::optional< std::string > & getNSErrorDomain() const
Definition Types.h:182
void setSwiftBridge(std::optional< std::string > SwiftType)
Definition Types.h:178
CommonTypeInfo & operator|=(const CommonTypeInfo &RHS)
Definition Types.h:205
Opaque context ID used to refer to an Objective-C class or protocol or a C++ namespace.
Definition Types.h:901
ContextID(unsigned value)
Definition Types.h:905
unsigned Value
Definition Types.h:903
Describes API notes data for an Objective-C class or protocol or a C++ namespace.
Definition Types.h:235
std::optional< bool > getSwiftImportAsNonGeneric() const
Definition Types.h:285
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS)
std::optional< bool > getSwiftObjCMembers() const
Definition Types.h:295
ContextInfo()
Definition Types.h:259
void setDefaultNullability(NullabilityKind Kind)
Set the default nullability for properties and methods of this class.
Definition Types.h:277
std::optional< NullabilityKind > getDefaultNullability() const
Determine the default nullability for properties and methods of this class.
Definition Types.h:269
void setSwiftObjCMembers(std::optional< bool > Value)
Definition Types.h:299
bool hasDesignatedInits() const
Definition Types.h:282
void setSwiftImportAsNonGeneric(std::optional< bool > Value)
Definition Types.h:290
void setHasDesignatedInits(bool Value)
Definition Types.h:283
friend bool operator==(const ContextInfo &, const ContextInfo &)
Definition Types.h:329
ContextInfo & operator|=(const ContextInfo &RHS)
Definition Types.h:306
EnumConstantInfo()
Definition Types.h:754
FieldInfo()
Definition Types.h:730
API notes for a function or method.
Definition Types.h:551
std::string SwiftReturnOwnership
Ownership convention for return value.
Definition Types.h:584
FunctionInfo()
Definition Types.h:589
void addTypeInfo(unsigned index, NullabilityKind kind)
Definition Types.h:597
uint64_t NullabilityPayload
Stores the nullability of the return type and the parameters.
Definition Types.h:578
std::optional< RetainCountConventionKind > getRetainCountConvention() const
Definition Types.h:631
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const
void setRetainCountConvention(std::optional< RetainCountConventionKind > Value)
Definition Types.h:637
unsigned RawRetainCountConvention
A biased RetainCountConventionKind, where 0 means "unspecified".
Definition Types.h:571
std::vector< ParamInfo > Params
The function parameters.
Definition Types.h:587
NullabilityKind getReturnTypeInfo() const
Definition Types.h:629
friend bool operator==(const FunctionInfo &, const FunctionInfo &)
Definition Types.h:660
NullabilityKind getParamTypeInfo(unsigned index) const
Definition Types.h:625
unsigned NumAdjustedNullable
Number of types whose nullability is encoded with the NullabilityPayload.
Definition Types.h:568
std::string ResultType
The result type of this function, as a C type.
Definition Types.h:581
static unsigned getMaxNullabilityIndex()
Definition Types.h:593
void addReturnTypeInfo(NullabilityKind kind)
Adds the return type info.
Definition Types.h:616
unsigned NullabilityAudited
Whether the signature has been audited with respect to nullability.
Definition Types.h:565
void addParamTypeInfo(unsigned index, NullabilityKind kind)
Adds the parameter type info.
Definition Types.h:621
GlobalFunctionInfo()
Definition Types.h:724
GlobalVariableInfo()
Definition Types.h:718
Describes API notes data for an Objective-C method.
Definition Types.h:675
unsigned DesignatedInit
Whether this is a designated initializer of its class.
Definition Types.h:679
friend bool operator==(const ObjCMethodInfo &, const ObjCMethodInfo &)
Definition Types.h:705
std::optional< ParamInfo > Self
Definition Types.h:685
ObjCMethodInfo & operator|=(const ContextInfo &RHS)
Definition Types.h:691
unsigned RequiredInit
Whether this is a required initializer.
Definition Types.h:683
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS)
ObjCMethodInfo()
Definition Types.h:687
Describes API notes data for an Objective-C property.
Definition Types.h:399
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const
void setSwiftImportAsAccessors(std::optional< bool > Value)
Definition Types.h:414
std::optional< bool > getSwiftImportAsAccessors() const
Definition Types.h:409
ObjCPropertyInfo()
Definition Types.h:406
friend bool operator==(const ObjCPropertyInfo &, const ObjCPropertyInfo &)
Definition Types.h:445
ObjCPropertyInfo & operator|=(const ObjCPropertyInfo &RHS)
Definition Types.h:433
ObjCPropertyInfo & operator|=(const ContextInfo &RHS)
Merge class-wide information into the given property.
Definition Types.h:422
Describes a function or method parameter.
Definition Types.h:457
void setNoEscape(std::optional< bool > Value)
Definition Types.h:488
std::optional< bool > isNoEscape() const
Definition Types.h:485
ParamInfo & operator|=(const ParamInfo &RHS)
Definition Types.h:513
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const
std::optional< bool > isLifetimebound() const
Definition Types.h:493
friend bool operator==(const ParamInfo &, const ParamInfo &)
Definition Types.h:537
ParamInfo()
Definition Types.h:480
void setLifetimebound(std::optional< bool > Value)
Definition Types.h:497
std::optional< RetainCountConventionKind > getRetainCountConvention() const
Definition Types.h:502
void setRetainCountConvention(std::optional< RetainCountConventionKind > Value)
Definition Types.h:508
Describes API notes data for a tag.
Definition Types.h:758
std::optional< std::string > SwiftReleaseOp
Definition Types.h:777
std::optional< std::string > SwiftRetainOp
Definition Types.h:776
std::optional< std::string > SwiftImportAs
Definition Types.h:775
std::optional< std::string > SwiftDefaultOwnership
Definition Types.h:779
std::optional< EnumExtensibilityKind > EnumExtensibility
Definition Types.h:781
void setSwiftCopyable(std::optional< bool > Value)
Definition Types.h:802
std::optional< std::string > SwiftDestroyOp
Definition Types.h:778
void setSwiftEscapable(std::optional< bool > Value)
Definition Types.h:812
TagInfo()
Definition Types.h:783
std::optional< bool > isFlagEnum() const
Definition Types.h:788
TagInfo & operator|=(const TagInfo &RHS)
Definition Types.h:817
std::optional< bool > isSwiftCopyable() const
Definition Types.h:798
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS)
friend bool operator==(const TagInfo &, const TagInfo &)
Definition Types.h:851
std::optional< bool > isSwiftEscapable() const
Definition Types.h:807
void setFlagEnum(std::optional< bool > Value)
Definition Types.h:793
Describes API notes data for a typedef.
Definition Types.h:869
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const
TypedefInfo & operator|=(const TypedefInfo &RHS)
Definition Types.h:875
friend bool operator==(const TypedefInfo &, const TypedefInfo &)
Definition Types.h:887
std::optional< SwiftNewTypeKind > SwiftWrapper
Definition Types.h:871
TypedefInfo()
Definition Types.h:873
API notes for a variable/property.
Definition Types.h:342
void setNullabilityAudited(NullabilityKind kind)
Definition Types.h:364
void setType(const std::string &type)
Definition Types.h:370
LLVM_DUMP_METHOD void dump(llvm::raw_ostream &OS) const
VariableInfo & operator|=(const VariableInfo &RHS)
Definition Types.h:374
std::optional< NullabilityKind > getNullability() const
Definition Types.h:358
const std::string & getType() const
Definition Types.h:369
friend bool operator==(const VariableInfo &, const VariableInfo &)
Definition Types.h:388
VariableInfo()
Definition Types.h:356
ContextKind
Definition Types.h:908
@ ObjCProtocol
Definition Types.h:910
@ ObjCClass
Definition Types.h:909
@ Namespace
Definition Types.h:911
@ Tag
Definition Types.h:912
bool operator!=(const CommonEntityInfo &LHS, const CommonEntityInfo &RHS)
Definition Types.h:153
bool operator==(const CommonEntityInfo &LHS, const CommonEntityInfo &RHS)
Definition Types.h:142
RetainCountConventionKind
Definition Types.h:25
@ NSReturnsRetained
Definition Types.h:29
@ None
Definition Types.h:26
@ CFReturnsNotRetained
Definition Types.h:28
@ NSReturnsNotRetained
Definition Types.h:30
@ CFReturnsRetained
Definition Types.h:27
SwiftNewTypeKind
The kind of a swift_wrapper/swift_newtype.
Definition Types.h:43
@ Struct
Definition Types.h:45
@ Enum
Definition Types.h:46
EnumExtensibilityKind
The payload for an enum_extensibility attribute.
Definition Types.h:36
@ Closed
Definition Types.h:39
@ Open
Definition Types.h:38
SwiftSafetyKind
Definition Types.h:49
@ Unspecified
Definition Types.h:49
@ Safe
Definition Types.h:49
@ Unsafe
Definition Types.h:49
static const constexpr char SOURCE_APINOTES_EXTENSION[]
The file extension used for the source representation of API notes.
Definition Types.h:897
const internal::VariadicAllOfMatcher< Type > type
Matches Types in the clang AST.
The JSON file list parser is used to communicate input to InstallAPI.
NullabilityKind
Describes the nullability of a particular type.
@ Nullable
Values of this type can be null.
@ NonNull
Values of this type can never be null.
@ Private
'private' clause, allowed on 'parallel', 'serial', 'loop', 'parallel loop', and 'serial loop' constru...
Diagnostic wrappers for TextAPI types for error reporting.
ContextKind kind
Definition Types.h:917
ContextID id
Definition Types.h:916
Context(ContextID id, ContextKind kind)
Definition Types.h:919
A temporary reference to an Objective-C selector, suitable for referencing selector data on the stack...
Definition Types.h:928
unsigned NumArgs
Definition Types.h:929
llvm::ArrayRef< llvm::StringRef > Identifiers
Definition Types.h:930