@@ -33,6 +33,7 @@ template<typename T> class ArrayRef;
3333}
3434
3535namespace swift {
36+ class AvailabilityDomain ;
3637class Argument ;
3738class ASTContext ;
3839struct ASTNode ;
@@ -65,6 +66,23 @@ class BridgedCanType;
6566class BridgedASTContext ;
6667struct BridgedSubstitutionMap ;
6768class BridgedParameterList ;
69+ enum BridgedPlatformKind : size_t ;
70+
71+ // Forward declare the underlying AST node type for each wrapper.
72+ namespace swift {
73+ #define AST_BRIDGING_WRAPPER (Name ) class Name ;
74+ #include " swift/AST/ASTBridgingWrappers.def"
75+ } // end namespace swift
76+
77+ // Define the bridging wrappers for each AST node.
78+ #define AST_BRIDGING_WRAPPER (Name ) BRIDGING_WRAPPER_NONNULL(swift::Name, Name)
79+ #include " swift/AST/ASTBridgingWrappers.def"
80+
81+ // For nullable nodes, also define a nullable variant.
82+ #define AST_BRIDGING_WRAPPER_NULLABLE (Name ) \
83+ BRIDGING_WRAPPER_NULLABLE (swift::Name, Name)
84+ #define AST_BRIDGING_WRAPPER_NONNULL (Name )
85+ #include " swift/AST/ASTBridgingWrappers.def"
6886
6987// ===----------------------------------------------------------------------===//
7088// MARK: Identifier
@@ -282,6 +300,10 @@ SWIFT_NAME("BridgedASTContext.langOptsGetCompilerVersion(self:_:)")
282300SwiftInt BridgedASTContext_langOptsGetCompilerVersion(BridgedASTContext cContext,
283301 SwiftInt* _Nullable * _Nonnull cComponents);
284302
303+ SWIFT_NAME (" getter:BridgedASTContext.availabilityMacroMap(self:)" )
304+ BridgedAvailabilityMacroMap
305+ BridgedASTContext_getAvailabilityMacroMap(BridgedASTContext cContext);
306+
285307/* Deallocate an array of Swift int values that was allocated in C++. */
286308void deallocateIntBuffer (SwiftInt * _Nullable cComponents);
287309
@@ -354,22 +376,6 @@ struct BridgedASTNode {
354376 BRIDGED_INLINE swift::ASTNode unbridged () const ;
355377};
356378
357- // Forward declare the underlying AST node type for each wrapper.
358- namespace swift {
359- #define AST_BRIDGING_WRAPPER (Name ) class Name ;
360- #include " swift/AST/ASTBridgingWrappers.def"
361- } // end namespace swift
362-
363- // Define the bridging wrappers for each AST node.
364- #define AST_BRIDGING_WRAPPER (Name ) BRIDGING_WRAPPER_NONNULL(swift::Name, Name)
365- #include " swift/AST/ASTBridgingWrappers.def"
366-
367- // For nullable nodes, also define a nullable variant.
368- #define AST_BRIDGING_WRAPPER_NULLABLE (Name ) \
369- BRIDGING_WRAPPER_NULLABLE (swift::Name, Name)
370- #define AST_BRIDGING_WRAPPER_NONNULL (Name )
371- #include " swift/AST/ASTBridgingWrappers.def"
372-
373379// Declare `.asDecl` on each BridgedXXXDecl type, which upcasts a wrapper for
374380// a Decl subclass to a BridgedDecl.
375381#define DECL (Id, Parent ) \
@@ -565,6 +571,120 @@ SWIFT_NAME("getter:BridgedClosureExpr.asDeclContext(self:)")
565571BridgedDeclContext
566572BridgedClosureExpr_asDeclContext(BridgedClosureExpr cClosure);
567573
574+ // ===----------------------------------------------------------------------===//
575+ // MARK: Availability
576+ // ===----------------------------------------------------------------------===//
577+
578+ enum ENUM_EXTENSIBILITY_ATTR (closed) BridgedPlatformKind : size_t {
579+ BridgedPlatformKind_None,
580+ #define AVAILABILITY_PLATFORM (X, PrettyName ) BridgedPlatformKind_##X,
581+ #include " swift/AST/PlatformKinds.def"
582+ };
583+
584+ SWIFT_NAME (" BridgedPlatformKind.init(from:)" )
585+ BridgedPlatformKind BridgedPlatformKind_fromString(BridgedStringRef cStr);
586+
587+ SWIFT_NAME (" BridgedAvailabilityMacroMap.has(self:name:)" )
588+ bool BridgedAvailabilityMacroMap_hasName(BridgedAvailabilityMacroMap map,
589+ BridgedStringRef name);
590+
591+ SWIFT_NAME (" BridgedAvailabilityMacroMap.has(self:name:version:)" )
592+ bool BridgedAvailabilityMacroMap_hasNameAndVersion(
593+ BridgedAvailabilityMacroMap map, BridgedStringRef name,
594+ BridgedVersionTuple version);
595+
596+ SWIFT_NAME (" BridgedAvailabilityMacroMap.get(self:name:version:)" )
597+ BridgedArrayRef
598+ BridgedAvailabilityMacroMap_getSpecs(BridgedAvailabilityMacroMap map,
599+ BridgedStringRef name,
600+ BridgedVersionTuple version);
601+
602+ struct BridgedAvailabilityMacroDefinition {
603+ BridgedStringRef name;
604+ BridgedVersionTuple version;
605+ BridgedArrayRef specs;
606+ };
607+
608+ enum ENUM_EXTENSIBILITY_ATTR (closed) BridgedAvailabilitySpecKind {
609+ BridgedAvailabilitySpecKindPlatformVersionConstraint,
610+ BridgedAvailabilitySpecKindOtherPlatform,
611+ BridgedAvailabilitySpecKindLanguageVersionConstraint,
612+ BridgedAvailabilitySpecKindPackageDescriptionVersionConstraint,
613+ };
614+
615+ struct BridgedAvailabilityDomain ;
616+
617+ SWIFT_NAME (" getter:BridgedAvailabilitySpec.sourceRange(self:)" )
618+ BridgedSourceRange
619+ BridgedAvailabilitySpec_getSourceRange(BridgedAvailabilitySpec spec);
620+
621+ SWIFT_NAME (" getter:BridgedAvailabilitySpec.domain(self:)" )
622+ BridgedAvailabilityDomain
623+ BridgedAvailabilitySpec_getDomain(BridgedAvailabilitySpec spec);
624+
625+ SWIFT_NAME (" getter:BridgedAvailabilitySpec.version(self:)" )
626+ BridgedVersionTuple
627+ BridgedAvailabilitySpec_getVersion(BridgedAvailabilitySpec spec);
628+
629+ SWIFT_NAME (" getter:BridgedAvailabilitySpec.versionRange(self:)" )
630+ BridgedSourceRange
631+ BridgedAvailabilitySpec_getVersionRange(BridgedAvailabilitySpec spec);
632+
633+ SWIFT_NAME (" BridgedPlatformVersionConstraintAvailabilitySpec.createParsed(_:"
634+ " platform:platformLoc:version:runtimeVersion:versionRange:)" )
635+ BridgedPlatformVersionConstraintAvailabilitySpec
636+ BridgedPlatformVersionConstraintAvailabilitySpec_createParsed(
637+ BridgedASTContext cContext, BridgedPlatformKind cPlatform,
638+ BridgedSourceLoc cPlatformLoc, BridgedVersionTuple cVersion,
639+ BridgedVersionTuple cRuntimeVersion, BridgedSourceRange cVersionSrcRange);
640+
641+ SWIFT_NAME (" BridgedPlatformAgnosticVersionConstraintAvailabilitySpec."
642+ " createParsed(_:kind:nameLoc:version:versionRange:)" )
643+ BridgedPlatformAgnosticVersionConstraintAvailabilitySpec
644+ BridgedPlatformAgnosticVersionConstraintAvailabilitySpec_createParsed(
645+ BridgedASTContext cContext, BridgedAvailabilitySpecKind cKind,
646+ BridgedSourceLoc cNameLoc, BridgedVersionTuple cVersion,
647+ BridgedSourceRange cVersionSrcRange);
648+
649+ SWIFT_NAME (" BridgedOtherPlatformAvailabilitySpec.createParsed(_:loc:)" )
650+ BridgedOtherPlatformAvailabilitySpec
651+ BridgedOtherPlatformAvailabilitySpec_createParsed(BridgedASTContext cContext,
652+ BridgedSourceLoc cLoc);
653+
654+ SWIFT_NAME (" getter:BridgedPlatformVersionConstraintAvailabilitySpec."
655+ " asAvailabilitySpec(self:)" )
656+ BridgedAvailabilitySpec
657+ BridgedPlatformVersionConstraintAvailabilitySpec_asAvailabilitySpec(
658+ BridgedPlatformVersionConstraintAvailabilitySpec spec);
659+
660+ SWIFT_NAME (" getter:BridgedPlatformAgnosticVersionConstraintAvailabilitySpec."
661+ " asAvailabilitySpec(self:)" )
662+ BridgedAvailabilitySpec
663+ BridgedPlatformAgnosticVersionConstraintAvailabilitySpec_asAvailabilitySpec(
664+ BridgedPlatformAgnosticVersionConstraintAvailabilitySpec spec);
665+
666+ SWIFT_NAME (
667+ " getter:BridgedOtherPlatformAvailabilitySpec.asAvailabilitySpec(self:)" )
668+ BridgedAvailabilitySpec BridgedOtherPlatformAvailabilitySpec_asAvailabilitySpec(
669+ BridgedOtherPlatformAvailabilitySpec spec);
670+
671+ struct BridgedAvailabilityDomain {
672+ void *_Nullable opaque;
673+
674+ BridgedAvailabilityDomain () : opaque(nullptr ) {};
675+ BRIDGED_INLINE BridgedAvailabilityDomain (swift::AvailabilityDomain domain);
676+ BRIDGED_INLINE swift::AvailabilityDomain unbridged () const ;
677+
678+ BRIDGED_INLINE static BridgedAvailabilityDomain forUniversal ();
679+ BRIDGED_INLINE static BridgedAvailabilityDomain
680+ forPlatform (BridgedPlatformKind platformKind);
681+ BRIDGED_INLINE static BridgedAvailabilityDomain forSwiftLanguage ();
682+ BRIDGED_INLINE static BridgedAvailabilityDomain forPackageDescription ();
683+ BRIDGED_INLINE static BridgedAvailabilityDomain forEmbedded ();
684+
685+ bool isNull () const { return opaque == nullptr ; };
686+ };
687+
568688// ===----------------------------------------------------------------------===//
569689// MARK: DeclAttributes
570690// ===----------------------------------------------------------------------===//
@@ -581,7 +701,7 @@ BridgedDeclAttrKind BridgedDeclAttrKind_fromString(BridgedStringRef cStr);
581701struct BridgedDeclAttributes {
582702 BridgedNullableDeclAttribute chain;
583703
584- BridgedDeclAttributes () : chain(nullptr ){};
704+ BridgedDeclAttributes () : chain(nullptr ) {};
585705
586706 BRIDGED_INLINE BridgedDeclAttributes (swift::DeclAttributes attrs);
587707
@@ -598,9 +718,43 @@ BridgedDeclAttribute BridgedDeclAttribute_createSimple(
598718 BridgedSourceLoc cAtLoc, BridgedSourceLoc cNameLoc);
599719
600720SWIFT_NAME (" BridgedABIAttr.createParsed(_:atLoc:range:abiDecl:)" )
601- BridgedABIAttr BridgedABIAttr_createParsed(
602- BridgedASTContext cContext, BridgedSourceLoc atLoc,
603- BridgedSourceRange range, BridgedNullableDecl abiDecl);
721+ BridgedABIAttr BridgedABIAttr_createParsed(BridgedASTContext cContext,
722+ BridgedSourceLoc atLoc,
723+ BridgedSourceRange range,
724+ BridgedNullableDecl abiDecl);
725+
726+ enum ENUM_EXTENSIBILITY_ATTR (closed) BridgedAvailableAttrKind {
727+ BridgedAvailableAttrKindDefault,
728+ BridgedAvailableAttrKindDeprecated,
729+ BridgedAvailableAttrKindUnavailable,
730+ BridgedAvailableAttrKindNoAsync,
731+ };
732+
733+ SWIFT_NAME (
734+ " BridgedAvailableAttr.createParsed(_:atLoc:range:domain:domainLoc:kind:message:"
735+ " renamed:introduced:introducedRange:deprecated:deprecatedRange:"
736+ " obsoleted:obsoletedRange:)" )
737+ BridgedAvailableAttr BridgedAvailableAttr_createParsed(
738+ BridgedASTContext cContext, BridgedSourceLoc cAtLoc,
739+ BridgedSourceRange cRange, BridgedAvailabilityDomain cDomain, BridgedSourceLoc cDomainLoc,
740+ BridgedAvailableAttrKind cKind, BridgedStringRef cMessage,
741+ BridgedStringRef cRenamed, BridgedVersionTuple cIntroduced,
742+ BridgedSourceRange cIntroducedRange, BridgedVersionTuple cDeprecated,
743+ BridgedSourceRange cDeprecatedRange, BridgedVersionTuple cObsoleted,
744+ BridgedSourceRange cObsoletedRange);
745+
746+ SWIFT_NAME (
747+ " BridgedAvailableAttr.createParsed(_:atLoc:range:domainString:domainLoc:kind:message:"
748+ " renamed:introduced:introducedRange:deprecated:deprecatedRange:"
749+ " obsoleted:obsoletedRange:)" )
750+ BridgedAvailableAttr BridgedAvailableAttr_createParsedStr(
751+ BridgedASTContext cContext, BridgedSourceLoc cAtLoc,
752+ BridgedSourceRange cRange, BridgedStringRef cDomainString, BridgedSourceLoc cDomainLoc,
753+ BridgedAvailableAttrKind cKind, BridgedStringRef cMessage,
754+ BridgedStringRef cRenamed, BridgedVersionTuple cIntroduced,
755+ BridgedSourceRange cIntroducedRange, BridgedVersionTuple cDeprecated,
756+ BridgedSourceRange cDeprecatedRange, BridgedVersionTuple cObsoleted,
757+ BridgedSourceRange cObsoletedRange);
604758
605759enum ENUM_EXTENSIBILITY_ATTR (closed) BridgedExecutionKind {
606760 BridgedExecutionKindConcurrent,
0 commit comments