@@ -110,19 +110,38 @@ enum class SymbolSubKind : uint8_t {
110110typedef uint32_t SymbolPropertySet;
111111// / Set of properties that provide additional info about a symbol.
112112enum class SymbolProperty : SymbolPropertySet {
113- Generic = 1 << 0 ,
113+ Generic = 1 << 0 ,
114114 TemplatePartialSpecialization = 1 << 1 ,
115- TemplateSpecialization = 1 << 2 ,
116- UnitTest = 1 << 3 ,
117- IBAnnotated = 1 << 4 ,
118- IBOutletCollection = 1 << 5 ,
119- GKInspectable = 1 << 6 ,
120- Local = 1 << 7 ,
115+ TemplateSpecialization = 1 << 2 ,
116+ UnitTest = 1 << 3 ,
117+ IBAnnotated = 1 << 4 ,
118+ IBOutletCollection = 1 << 5 ,
119+ GKInspectable = 1 << 6 ,
120+ Local = 1 << 7 ,
121121 // / Symbol is part of a protocol interface.
122- ProtocolInterface = 1 << 8 ,
123-
124- // / Swift-only properties
125- SwiftAsync = 1 << 16 ,
122+ ProtocolInterface = 1 << 8 ,
123+
124+ // / --- Swift-only properties
125+
126+ // / Whether this is a `async` function.
127+ SwiftAsync = 1 << 16 ,
128+
129+ // / Swift Access control levels, packed into 3 bits.
130+ // /
131+ // / Use \c applyForEachSymbolProperty to correctly unpack these from a \c
132+ // / SymbolPropertySet.
133+ SwiftAccessControlPrivate = 1 << 17 ,
134+ SwiftAccessControlFilePrivate = 1 << 18 ,
135+ SwiftAccessControlInternal = 1 << 18 | 1 << 17 ,
136+ SwiftAccessControlPackage = 1 << 19 ,
137+ SwiftAccessControlPublic = 1 << 19 | 1 << 17 ,
138+ SwiftAccessControlOpen = 1 << 19 | 1 << 18 ,
139+
140+ // / Whether the declaration has a `@_spi` attributed.
141+ // /
142+ // / Note that `@_spi` is orthogonal to the access control levels because it
143+ // / can be applied to `public` and `open` declarations.
144+ SwiftSPI = 1 << 20 ,
126145};
127146
128147// / Set of roles that are attributed to symbol occurrences.
0 commit comments