@@ -2108,8 +2108,6 @@ Type RawLayoutAttr::getResolvedCountType(StructDecl *sd) const {
21082108 ErrorType::get (ctx));
21092109}
21102110
2111- #define INIT_VER_TUPLE (X ) X(X.empty() ? std::optional<llvm::VersionTuple>() : X)
2112-
21132111AvailableAttr::AvailableAttr (
21142112 SourceLoc AtLoc, SourceRange Range, const AvailabilityDomain &Domain,
21152113 Kind Kind, StringRef Message, StringRef Rename,
@@ -2118,10 +2116,10 @@ AvailableAttr::AvailableAttr(
21182116 const llvm::VersionTuple &Obsoleted, SourceRange ObsoletedRange,
21192117 bool Implicit, bool IsSPI)
21202118 : DeclAttribute(DeclAttrKind::Available, AtLoc, Range, Implicit),
2121- Domain(Domain), Message(Message), Rename(Rename),
2122- INIT_VER_TUPLE(Introduced ), IntroducedRange(IntroducedRange ),
2123- INIT_VER_TUPLE(Deprecated ), DeprecatedRange(DeprecatedRange ),
2124- INIT_VER_TUPLE(Obsoleted), ObsoletedRange(ObsoletedRange) {
2119+ Domain(Domain), Message(Message), Rename(Rename), Introduced(Introduced),
2120+ IntroducedRange(IntroducedRange ), Deprecated(Deprecated ),
2121+ DeprecatedRange(DeprecatedRange ), Obsoleted(Obsoleted ),
2122+ ObsoletedRange(ObsoletedRange) {
21252123 Bits.AvailableAttr .Kind = static_cast <uint8_t >(Kind);
21262124 Bits.AvailableAttr .HasComputedSemanticAttr = false ;
21272125 Bits.AvailableAttr .HasDomain = true ;
@@ -2130,8 +2128,6 @@ AvailableAttr::AvailableAttr(
21302128 Bits.AvailableAttr .IsSPI = IsSPI;
21312129}
21322130
2133- #undef INIT_VER_TUPLE
2134-
21352131AvailableAttr *AvailableAttr::createUniversallyUnavailable (ASTContext &C,
21362132 StringRef Message,
21372133 StringRef Rename) {
@@ -2199,12 +2195,9 @@ bool BackDeployedAttr::isActivePlatform(const ASTContext &ctx,
21992195AvailableAttr *AvailableAttr::clone (ASTContext &C, bool implicit) const {
22002196 return new (C) AvailableAttr (
22012197 implicit ? SourceLoc () : AtLoc, implicit ? SourceRange () : getRange (),
2202- Domain, getKind (), Message, Rename,
2203- Introduced ? *Introduced : llvm::VersionTuple (),
2204- implicit ? SourceRange () : IntroducedRange,
2205- Deprecated ? *Deprecated : llvm::VersionTuple (),
2206- implicit ? SourceRange () : DeprecatedRange,
2207- Obsoleted ? *Obsoleted : llvm::VersionTuple (),
2198+ Domain, getKind (), Message, Rename, Introduced,
2199+ implicit ? SourceRange () : IntroducedRange, Deprecated,
2200+ implicit ? SourceRange () : DeprecatedRange, Obsoleted,
22082201 implicit ? SourceRange () : ObsoletedRange, implicit, isSPI ());
22092202}
22102203
@@ -2294,7 +2287,7 @@ SemanticAvailableAttr::getVersionAvailability(const ASTContext &ctx) const {
22942287 return AvailableVersionComparison::Unavailable;
22952288
22962289 llvm::VersionTuple queryVersion = getActiveVersion (ctx);
2297- std::optional<llvm::VersionTuple> ObsoletedVersion = attr-> Obsoleted ;
2290+ std::optional<llvm::VersionTuple> ObsoletedVersion = getObsoleted () ;
22982291
22992292 StringRef ObsoletedPlatform;
23002293 llvm::VersionTuple RemappedObsoletedVersion;
@@ -2307,7 +2300,7 @@ SemanticAvailableAttr::getVersionAvailability(const ASTContext &ctx) const {
23072300 if (ObsoletedVersion && *ObsoletedVersion <= queryVersion)
23082301 return AvailableVersionComparison::Obsoleted;
23092302
2310- std::optional<llvm::VersionTuple> IntroducedVersion = attr-> Introduced ;
2303+ std::optional<llvm::VersionTuple> IntroducedVersion = getIntroduced () ;
23112304 StringRef IntroducedPlatform;
23122305 llvm::VersionTuple RemappedIntroducedVersion;
23132306 if (AvailabilityInference::updateIntroducedPlatformForFallback (
0 commit comments