Merge remote-tracking branch 'origin/main' into rebranch

This commit is contained in:
swift-ci
2024-07-10 23:09:47 -07:00
64 changed files with 1009 additions and 687 deletions

View File

@@ -2572,17 +2572,20 @@ void Serializer::writeASTBlockEntity(const DeclContext *DC) {
}
}
void Serializer::writeLifetimeDependenceInfo(
LifetimeDependenceInfo lifetimeDependenceInfo) {
void Serializer::writeLifetimeDependencies(
ArrayRef<LifetimeDependenceInfo> lifetimeDependencies) {
using namespace decls_block;
SmallVector<bool> paramIndices;
lifetimeDependenceInfo.getConcatenatedData(paramIndices);
for (auto info : lifetimeDependencies) {
info.getConcatenatedData(paramIndices);
auto abbrCode = DeclTypeAbbrCodes[LifetimeDependenceLayout::Code];
LifetimeDependenceLayout::emitRecord(
Out, ScratchRecord, abbrCode, lifetimeDependenceInfo.isImmortal(),
lifetimeDependenceInfo.hasInheritLifetimeParamIndices(),
lifetimeDependenceInfo.hasScopeLifetimeParamIndices(), paramIndices);
auto abbrCode = DeclTypeAbbrCodes[LifetimeDependenceLayout::Code];
LifetimeDependenceLayout::emitRecord(
Out, ScratchRecord, abbrCode, info.getTargetIndex(), info.isImmortal(),
info.hasInheritLifetimeParamIndices(),
info.hasScopeLifetimeParamIndices(), paramIndices);
paramIndices.clear();
}
}
#define SIMPLE_CASE(TYPENAME, VALUE) \
@@ -4587,9 +4590,9 @@ public:
auto fnType = ty->getAs<AnyFunctionType>();
if (fnType) {
if (auto *lifetimeDependenceInfo =
fnType->getLifetimeDependenceInfoOrNull()) {
S.writeLifetimeDependenceInfo(*lifetimeDependenceInfo);
auto lifetimeDependencies = fnType->getLifetimeDependencies();
if (!lifetimeDependencies.empty()) {
S.writeLifetimeDependencies(lifetimeDependencies);
}
}
@@ -4714,9 +4717,9 @@ public:
auto fnType = ty->getAs<AnyFunctionType>();
if (fnType) {
if (auto *lifetimeDependenceInfo =
fnType->getLifetimeDependenceInfoOrNull()) {
S.writeLifetimeDependenceInfo(*lifetimeDependenceInfo);
auto lifetimeDependencies = fnType->getLifetimeDependencies();
if (!lifetimeDependencies.empty()) {
S.writeLifetimeDependencies(lifetimeDependencies);
}
}
@@ -4884,9 +4887,9 @@ public:
auto fnType = ty->getAs<AnyFunctionType>();
if (fnType) {
if (auto *lifetimeDependenceInfo =
fnType->getLifetimeDependenceInfoOrNull()) {
S.writeLifetimeDependenceInfo(*lifetimeDependenceInfo);
auto lifetimeDependencies = fnType->getLifetimeDependencies();
if (!lifetimeDependencies.empty()) {
S.writeLifetimeDependencies(lifetimeDependencies);
}
}
@@ -5631,9 +5634,9 @@ public:
serializeFunctionTypeParams(fnTy);
if (auto *lifetimeDependenceInfo =
fnTy->getLifetimeDependenceInfoOrNull()) {
S.writeLifetimeDependenceInfo(*lifetimeDependenceInfo);
auto lifetimeDependencies = fnTy->getLifetimeDependencies();
if (!lifetimeDependencies.empty()) {
S.writeLifetimeDependencies(lifetimeDependencies);
}
}
@@ -5654,9 +5657,9 @@ public:
serializeFunctionTypeParams(fnTy);
if (auto *lifetimeDependenceInfo =
fnTy->getLifetimeDependenceInfoOrNull()) {
S.writeLifetimeDependenceInfo(*lifetimeDependenceInfo);
auto lifetimeDependencies = fnTy->getLifetimeDependencies();
if (!lifetimeDependencies.empty()) {
S.writeLifetimeDependencies(lifetimeDependencies);
}
}
@@ -5747,9 +5750,9 @@ public:
invocationSigID, invocationSubstMapID, patternSubstMapID,
clangTypeID, variableData);
if (auto *lifetimeDependenceInfo =
fnTy->getLifetimeDependenceInfoOrNull()) {
S.writeLifetimeDependenceInfo(*lifetimeDependenceInfo);
auto lifetimeDependencies = fnTy->getLifetimeDependencies();
if (!lifetimeDependencies.empty()) {
S.writeLifetimeDependencies(lifetimeDependencies);
}
}