@@ -2952,9 +2952,12 @@ class OpaqueTypeDecl final :
29522952 return false ;
29532953 }
29542954
2955+ using AvailabilityCondition = std::pair<VersionRange, bool >;
2956+
29552957 class ConditionallyAvailableSubstitutions final
2956- : private llvm::TrailingObjects<ConditionallyAvailableSubstitutions,
2957- VersionRange> {
2958+ : private llvm::TrailingObjects<
2959+ ConditionallyAvailableSubstitutions,
2960+ AvailabilityCondition> {
29582961 friend TrailingObjects;
29592962
29602963 unsigned NumAvailabilityConditions;
@@ -2964,25 +2967,25 @@ class OpaqueTypeDecl final :
29642967 // / A type with limited availability described by the provided set
29652968 // / of availability conditions (with `and` relationship).
29662969 ConditionallyAvailableSubstitutions (
2967- ArrayRef<VersionRange > availabilityContext,
2970+ ArrayRef<AvailabilityCondition > availabilityContext,
29682971 SubstitutionMap substitutions)
29692972 : NumAvailabilityConditions(availabilityContext.size()),
29702973 Substitutions (substitutions) {
29712974 assert (!availabilityContext.empty ());
29722975 std::uninitialized_copy (availabilityContext.begin (),
29732976 availabilityContext.end (),
2974- getTrailingObjects<VersionRange >());
2977+ getTrailingObjects<AvailabilityCondition >());
29752978 }
29762979
29772980 public:
2978- ArrayRef<VersionRange > getAvailability () const {
2979- return {getTrailingObjects<VersionRange >(), NumAvailabilityConditions};
2981+ ArrayRef<AvailabilityCondition > getAvailability () const {
2982+ return {getTrailingObjects<AvailabilityCondition >(), NumAvailabilityConditions};
29802983 }
29812984
29822985 SubstitutionMap getSubstitutions () const { return Substitutions; }
29832986
29842987 static ConditionallyAvailableSubstitutions *
2985- get (ASTContext &ctx, ArrayRef<VersionRange > availabilityContext,
2988+ get (ASTContext &ctx, ArrayRef<AvailabilityCondition > availabilityContext,
29862989 SubstitutionMap substitutions);
29872990 };
29882991};
0 commit comments