@@ -58,6 +58,7 @@ class IfConfigClauseRangeInfo;
5858class GenericSignature ;
5959class GenericSignatureImpl ;
6060struct LabeledStmtInfo ;
61+ class LangOptions ;
6162class LayoutConstraint ;
6263class LayoutConstraintInfo ;
6364struct LifetimeDescriptor ;
@@ -82,6 +83,7 @@ enum class RequirementReprKind : unsigned;
8283struct BridgedASTType ;
8384class BridgedCanType ;
8485class BridgedASTContext ;
86+ class BridgedLangOptions ;
8587struct BridgedSubstitutionMap ;
8688struct BridgedGenericSignature ;
8789struct BridgedConformance ;
@@ -193,38 +195,134 @@ BridgedDeclNameLoc_createParsed(BridgedASTContext cContext,
193195 swift::SourceLoc baseNameLoc);
194196
195197// ===----------------------------------------------------------------------===//
196- // MARK: ASTContext
198+ // MARK: LangOptions
197199// ===----------------------------------------------------------------------===//
198200
199201enum ENUM_EXTENSIBILITY_ATTR (closed) BridgedEndianness : size_t {
200202 EndianLittle,
201203 EndianBig,
202204};
203205
204- class BridgedASTContext {
205- swift::ASTContext * _Nonnull Ctx ;
206+ class BridgedLangOptions {
207+ const swift::LangOptions * _Nonnull LangOpts ;
206208
207209public:
208210 SWIFT_UNAVAILABLE (" Use init(raw:) instead" )
209- BRIDGED_INLINE BridgedASTContext ( swift::ASTContext &ctx );
211+ BRIDGED_INLINE BridgedLangOptions ( const swift::LangOptions &langOpts );
210212
211213 SWIFT_UNAVAILABLE (" Use '.raw' instead" )
212- BRIDGED_INLINE swift::ASTContext &unbridged () const ;
214+ BRIDGED_INLINE const swift::LangOptions &unbridged () const ;
213215
214216 SWIFT_COMPUTED_PROPERTY
215- void *_Nonnull getRaw () const { return Ctx ; }
217+ const void *_Nonnull getRaw () const { return LangOpts ; }
216218
217219 SWIFT_COMPUTED_PROPERTY
218220 unsigned getMajorLanguageVersion () const ;
219221
220222 SWIFT_COMPUTED_PROPERTY
221- unsigned getLangOptsTargetPointerBitWidth () const ;
223+ unsigned getTargetPointerBitWidth () const ;
224+
225+ SWIFT_COMPUTED_PROPERTY
226+ BridgedEndianness getTargetEndianness () const ;
227+
228+ SWIFT_COMPUTED_PROPERTY
229+ bool getAttachCommentsToDecls () const ;
230+ };
231+
232+ // / Key used when enumerating build configuration entries to the
233+ // / StaticBuildConfiguration initializer for an ASTContext.
234+ enum ENUM_EXTENSIBILITY_ATTR (closed) BuildConfigurationKey : size_t {
235+ BCKCustomCondition,
236+ BCKFeature,
237+ BCKAttribute,
238+ BCKTargetOSName,
239+ BCKTargetArchitecture,
240+ BCKTargetEnvironment,
241+ BCKTargetRuntime,
242+ BCKTargetPointerAuthenticationScheme,
243+ BCKTargetObjectFileFormat
244+ };
245+
246+ SWIFT_NAME (" BridgedLangOptions.hasFeature(self:_:)" )
247+ bool BridgedLangOptions_hasFeature(BridgedLangOptions cLangOpts,
248+ BridgedFeature feature);
249+
250+ SWIFT_NAME (" BridgedLangOptions.customConditionSet(self:_:)" )
251+ bool BridgedLangOptions_customConditionSet(BridgedLangOptions cLangOpts,
252+ BridgedStringRef cName);
253+
254+ SWIFT_NAME (" BridgedLangOptions.hasFeatureNamed(self:_:)" )
255+ bool BridgedLangOptions_hasFeatureNamed(BridgedLangOptions cLangOpts,
256+ BridgedStringRef cName);
257+
258+ SWIFT_NAME (" BridgedLangOptions.hasAttributeNamed(self:_:)" )
259+ bool BridgedLangOptions_hasAttributeNamed(BridgedLangOptions cLangOpts,
260+ BridgedStringRef cName);
261+
262+ SWIFT_NAME (" BridgedLangOptions.isActiveTargetOS(self:_:)" )
263+ bool BridgedLangOptions_isActiveTargetOS(BridgedLangOptions cLangOpts,
264+ BridgedStringRef cName);
265+
266+ SWIFT_NAME (" BridgedLangOptions.isActiveTargetArchitecture(self:_:)" )
267+ bool BridgedLangOptions_isActiveTargetArchitecture(BridgedLangOptions cLangOpts,
268+ BridgedStringRef cName);
269+
270+ SWIFT_NAME (" BridgedLangOptions.isActiveTargetEnvironment(self:_:)" )
271+ bool BridgedLangOptions_isActiveTargetEnvironment(BridgedLangOptions cLangOpts,
272+ BridgedStringRef cName);
273+
274+ SWIFT_NAME (" BridgedLangOptions.isActiveTargetRuntime(self:_:)" )
275+ bool BridgedLangOptions_isActiveTargetRuntime(BridgedLangOptions cLangOpts,
276+ BridgedStringRef cName);
277+
278+ SWIFT_NAME (" BridgedLangOptions.isActiveTargetPtrAuth(self:_:)" )
279+ bool BridgedLangOptions_isActiveTargetPtrAuth(BridgedLangOptions cLangOpts,
280+ BridgedStringRef cName);
281+
282+ SWIFT_NAME (" BridgedLangOptions.getTargetAtomicBitWidths(self:_:)" )
283+ SwiftInt BridgedLangOptions_getTargetAtomicBitWidths(BridgedLangOptions cLangOpts,
284+ SwiftInt* _Nullable * _Nonnull cComponents);
285+
286+ SWIFT_NAME (" BridgedLangOptions.getLanguageVersion(self:_:)" )
287+ SwiftInt BridgedLangOptions_getLanguageVersion(BridgedLangOptions cLangOpts,
288+ SwiftInt* _Nullable * _Nonnull cComponents);
289+
290+ SWIFT_NAME (" BridgedLangOptions.getCompilerVersion(self:_:)" )
291+ SwiftInt BridgedLangOptions_getCompilerVersion(BridgedLangOptions cLangOpts,
292+ SwiftInt* _Nullable * _Nonnull cComponents);
293+
294+ /* Deallocate an array of Swift int values that was allocated in C++. */
295+ void deallocateIntBuffer (SwiftInt * _Nullable cComponents);
296+
297+ // / Enumerate all of the key/value pairs for the build configuration by calling
298+ // / the given callback for each one.
299+ SWIFT_NAME (" BridgedLangOptions.enumerateBuildConfigurationEntries(self:callbackContext:callback:)" )
300+ void BridgedLangOptions_enumerateBuildConfigurationEntries(
301+ BridgedLangOptions cLangOpts,
302+ void * _Nonnull callbackContext,
303+ void (* _Nonnull callback)(
304+ BridgedLangOptions cLangOpts, void * _Nonnull callbackContext,
305+ BuildConfigurationKey key, BridgedStringRef value));
306+
307+ // ===----------------------------------------------------------------------===//
308+ // MARK: ASTContext
309+ // ===----------------------------------------------------------------------===//
310+
311+ class BridgedASTContext {
312+ swift::ASTContext * _Nonnull Ctx;
313+
314+ public:
315+ SWIFT_UNAVAILABLE (" Use init(raw:) instead" )
316+ BRIDGED_INLINE BridgedASTContext (swift::ASTContext &ctx);
317+
318+ SWIFT_UNAVAILABLE (" Use '.raw' instead" )
319+ BRIDGED_INLINE swift::ASTContext &unbridged () const ;
222320
223321 SWIFT_COMPUTED_PROPERTY
224- bool getLangOptsAttachCommentsToDecls () const ;
322+ void *_Nonnull getRaw () const { return Ctx; }
225323
226324 SWIFT_COMPUTED_PROPERTY
227- BridgedEndianness getLangOptsTargetEndianness () const ;
325+ unsigned getMajorLanguageVersion () const ;
228326
229327 SWIFT_COMPUTED_PROPERTY
230328 BridgedAvailabilityMacroMap getAvailabilityMacroMap () const ;
@@ -259,56 +357,8 @@ SWIFT_NAME("BridgedASTContext.getDollarIdentifier(self:_:)")
259357swift::Identifier
260358BridgedASTContext_getDollarIdentifier(BridgedASTContext cContext, size_t idx);
261359
262- SWIFT_NAME (" BridgedASTContext.langOptsHasFeature(self:_:)" )
263- bool BridgedASTContext_langOptsHasFeature(BridgedASTContext cContext,
264- BridgedFeature feature);
265-
266- SWIFT_NAME (" BridgedASTContext.langOptsCustomConditionSet(self:_:)" )
267- bool BridgedASTContext_langOptsCustomConditionSet(BridgedASTContext cContext,
268- BridgedStringRef cName);
269-
270- SWIFT_NAME (" BridgedASTContext.langOptsHasFeatureNamed(self:_:)" )
271- bool BridgedASTContext_langOptsHasFeatureNamed(BridgedASTContext cContext,
272- BridgedStringRef cName);
273-
274- SWIFT_NAME (" BridgedASTContext.langOptsHasAttributeNamed(self:_:)" )
275- bool BridgedASTContext_langOptsHasAttributeNamed(BridgedASTContext cContext,
276- BridgedStringRef cName);
277-
278- SWIFT_NAME (" BridgedASTContext.langOptsIsActiveTargetOS(self:_:)" )
279- bool BridgedASTContext_langOptsIsActiveTargetOS(BridgedASTContext cContext,
280- BridgedStringRef cName);
281-
282- SWIFT_NAME (" BridgedASTContext.langOptsIsActiveTargetArchitecture(self:_:)" )
283- bool BridgedASTContext_langOptsIsActiveTargetArchitecture(BridgedASTContext cContext,
284- BridgedStringRef cName);
285-
286- SWIFT_NAME (" BridgedASTContext.langOptsIsActiveTargetEnvironment(self:_:)" )
287- bool BridgedASTContext_langOptsIsActiveTargetEnvironment(BridgedASTContext cContext,
288- BridgedStringRef cName);
289-
290- SWIFT_NAME (" BridgedASTContext.langOptsIsActiveTargetRuntime(self:_:)" )
291- bool BridgedASTContext_langOptsIsActiveTargetRuntime(BridgedASTContext cContext,
292- BridgedStringRef cName);
293-
294- SWIFT_NAME (" BridgedASTContext.langOptsIsActiveTargetPtrAuth(self:_:)" )
295- bool BridgedASTContext_langOptsIsActiveTargetPtrAuth(BridgedASTContext cContext,
296- BridgedStringRef cName);
297-
298- SWIFT_NAME (" BridgedASTContext.langOptsGetTargetAtomicBitWidths(self:_:)" )
299- SwiftInt BridgedASTContext_langOptsGetTargetAtomicBitWidths(BridgedASTContext cContext,
300- SwiftInt* _Nullable * _Nonnull cComponents);
301-
302- SWIFT_NAME (" BridgedASTContext.langOptsGetLanguageVersion(self:_:)" )
303- SwiftInt BridgedASTContext_langOptsGetLanguageVersion(BridgedASTContext cContext,
304- SwiftInt* _Nullable * _Nonnull cComponents);
305-
306- SWIFT_NAME (" BridgedASTContext.langOptsGetCompilerVersion(self:_:)" )
307- SwiftInt BridgedASTContext_langOptsGetCompilerVersion(BridgedASTContext cContext,
308- SwiftInt* _Nullable * _Nonnull cComponents);
309-
310- /* Deallocate an array of Swift int values that was allocated in C++. */
311- void deallocateIntBuffer (SwiftInt * _Nullable cComponents);
360+ SWIFT_NAME (" getter:BridgedASTContext.langOpts(self:)" )
361+ BridgedLangOptions BridgedASTContext_langOpts(BridgedASTContext cContext);
312362
313363enum ENUM_EXTENSIBILITY_ATTR (closed) BridgedCanImportVersion : size_t {
314364 CanImportUnversioned,
0 commit comments