@@ -33,6 +33,7 @@ template<typename T> class ArrayRef;
33
33
}
34
34
35
35
namespace swift {
36
+ class AvailabilityDomain ;
36
37
class Argument ;
37
38
class ASTContext ;
38
39
struct ASTNode ;
@@ -65,6 +66,23 @@ class BridgedCanType;
65
66
class BridgedASTContext ;
66
67
struct BridgedSubstitutionMap ;
67
68
class 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"
68
86
69
87
// ===----------------------------------------------------------------------===//
70
88
// MARK: Identifier
@@ -282,6 +300,10 @@ SWIFT_NAME("BridgedASTContext.langOptsGetCompilerVersion(self:_:)")
282
300
SwiftInt BridgedASTContext_langOptsGetCompilerVersion(BridgedASTContext cContext,
283
301
SwiftInt* _Nullable * _Nonnull cComponents);
284
302
303
+ SWIFT_NAME (" getter:BridgedASTContext.availabilityMacroMap(self:)" )
304
+ BridgedAvailabilityMacroMap
305
+ BridgedASTContext_getAvailabilityMacroMap(BridgedASTContext cContext);
306
+
285
307
/* Deallocate an array of Swift int values that was allocated in C++. */
286
308
void deallocateIntBuffer (SwiftInt * _Nullable cComponents);
287
309
@@ -354,22 +376,6 @@ struct BridgedASTNode {
354
376
BRIDGED_INLINE swift::ASTNode unbridged () const ;
355
377
};
356
378
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
-
373
379
// Declare `.asDecl` on each BridgedXXXDecl type, which upcasts a wrapper for
374
380
// a Decl subclass to a BridgedDecl.
375
381
#define DECL (Id, Parent ) \
@@ -565,6 +571,120 @@ SWIFT_NAME("getter:BridgedClosureExpr.asDeclContext(self:)")
565
571
BridgedDeclContext
566
572
BridgedClosureExpr_asDeclContext(BridgedClosureExpr cClosure);
567
573
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
+
568
688
// ===----------------------------------------------------------------------===//
569
689
// MARK: DeclAttributes
570
690
// ===----------------------------------------------------------------------===//
@@ -581,7 +701,7 @@ BridgedDeclAttrKind BridgedDeclAttrKind_fromString(BridgedStringRef cStr);
581
701
struct BridgedDeclAttributes {
582
702
BridgedNullableDeclAttribute chain;
583
703
584
- BridgedDeclAttributes () : chain(nullptr ){};
704
+ BridgedDeclAttributes () : chain(nullptr ) {};
585
705
586
706
BRIDGED_INLINE BridgedDeclAttributes (swift::DeclAttributes attrs);
587
707
@@ -598,9 +718,43 @@ BridgedDeclAttribute BridgedDeclAttribute_createSimple(
598
718
BridgedSourceLoc cAtLoc, BridgedSourceLoc cNameLoc);
599
719
600
720
SWIFT_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);
604
758
605
759
enum ENUM_EXTENSIBILITY_ATTR (closed) BridgedExecutionKind {
606
760
BridgedExecutionKindConcurrent,
0 commit comments