AST: Introduce a Swift runtime availability domain.

Add support for the `Swift` availability domain, which represents availability
with respect to the Swift runtime. Use of this domain is restricted by the
experimental feature `SwiftRuntimeAvailability`.
This commit is contained in:
Allan Shortlidge
2025-10-07 22:38:41 -07:00
parent 2d8465b043
commit 1a86cd9c26
19 changed files with 213 additions and 48 deletions

View File

@@ -640,6 +640,7 @@ computeDeclRuntimeAvailability(const Decl *decl) {
if (!domain.isActive(ctx) && !isTargetDomain)
continue;
// FIXME: [runtime availability] Update this?
if (!domain.isRoot())
continue;
@@ -855,7 +856,8 @@ SemanticAvailableAttrRequest::evaluate(swift::Evaluator &evaluator,
return std::nullopt;
}
if (domain->isSwiftLanguageMode() || domain->isPackageDescription()) {
if (domain->isSwiftLanguageMode() || domain->isPackageDescription() ||
domain->isSwiftRuntime()) {
switch (attr->getKind()) {
case AvailableAttr::Kind::Deprecated:
diags.diagnose(attrLoc,