@@ -3891,7 +3891,7 @@ class DeclDeserializer {
38913891 ctor->setParameters (bodyParams);
38923892
38933893 SmallVector<LifetimeDependenceInfo, 1 > lifetimeDependencies;
3894- while (auto info = MF.maybeReadLifetimeDependence (bodyParams-> size () + 1 )) {
3894+ while (auto info = MF.maybeReadLifetimeDependence ()) {
38953895 assert (info.has_value ());
38963896 lifetimeDependencies.push_back (*info);
38973897 }
@@ -4493,11 +4493,9 @@ class DeclDeserializer {
44934493 ParameterList *paramList;
44944494 SET_OR_RETURN_ERROR (paramList, MF.readParameterList ());
44954495 fn->setParameters (paramList);
4496- auto numParams =
4497- fn->hasImplicitSelfDecl () ? paramList->size () + 1 : paramList->size ();
44984496
44994497 SmallVector<LifetimeDependenceInfo, 1 > lifetimeDependencies;
4500- while (auto info = MF.maybeReadLifetimeDependence (numParams )) {
4498+ while (auto info = MF.maybeReadLifetimeDependence ()) {
45014499 assert (info.has_value ());
45024500 lifetimeDependencies.push_back (*info);
45034501 }
@@ -7438,8 +7436,7 @@ detail::function_deserializer::deserialize(ModuleFile &MF,
74387436
74397437 SmallVector<LifetimeDependenceInfo, 1 > lifetimeDependencies;
74407438
7441- while (auto lifetimeDependence =
7442- MF.maybeReadLifetimeDependence (params.size ())) {
7439+ while (auto lifetimeDependence = MF.maybeReadLifetimeDependence ()) {
74437440 lifetimeDependencies.push_back (*lifetimeDependence);
74447441 }
74457442 if (!lifetimeDependencies.empty ()) {
@@ -8091,7 +8088,7 @@ Expected<Type> DESERIALIZE_TYPE(SIL_FUNCTION_TYPE)(
80918088
80928089 SmallVector<LifetimeDependenceInfo, 1 > lifetimeDependencies;
80938090
8094- while (auto lifetimeDependence = MF.maybeReadLifetimeDependence (numParams )) {
8091+ while (auto lifetimeDependence = MF.maybeReadLifetimeDependence ()) {
80958092 lifetimeDependencies.push_back (*lifetimeDependence);
80968093 }
80978094
@@ -9378,7 +9375,7 @@ bool ModuleFile::maybeReadLifetimeDependenceRecord(
93789375}
93799376
93809377std::optional<LifetimeDependenceInfo>
9381- ModuleFile::maybeReadLifetimeDependence (unsigned numParams ) {
9378+ ModuleFile::maybeReadLifetimeDependence () {
93829379 using namespace decls_block ;
93839380
93849381 SmallVector<uint64_t , 8 > scratch;
@@ -9387,28 +9384,29 @@ ModuleFile::maybeReadLifetimeDependence(unsigned numParams) {
93879384 }
93889385
93899386 unsigned targetIndex;
9387+ unsigned paramIndicesLength;
93909388 bool isImmortal;
93919389 bool hasInheritLifetimeParamIndices;
93929390 bool hasScopeLifetimeParamIndices;
93939391 bool hasAddressableParamIndices;
93949392 ArrayRef<uint64_t > lifetimeDependenceData;
93959393 LifetimeDependenceLayout::readRecord (
9396- scratch, targetIndex, isImmortal, hasInheritLifetimeParamIndices ,
9397- hasScopeLifetimeParamIndices, hasAddressableParamIndices ,
9398- lifetimeDependenceData);
9394+ scratch, targetIndex, paramIndicesLength, isImmortal ,
9395+ hasInheritLifetimeParamIndices, hasScopeLifetimeParamIndices ,
9396+ hasAddressableParamIndices, lifetimeDependenceData);
93999397
9400- SmallBitVector inheritLifetimeParamIndices (numParams , false );
9401- SmallBitVector scopeLifetimeParamIndices (numParams , false );
9402- SmallBitVector addressableParamIndices (numParams , false );
9398+ SmallBitVector inheritLifetimeParamIndices (paramIndicesLength , false );
9399+ SmallBitVector scopeLifetimeParamIndices (paramIndicesLength , false );
9400+ SmallBitVector addressableParamIndices (paramIndicesLength , false );
94039401
94049402 unsigned startIndex = 0 ;
94059403 auto pushData = [&](SmallBitVector &bits) {
9406- for (unsigned i = 0 ; i < numParams ; i++) {
9404+ for (unsigned i = 0 ; i < paramIndicesLength ; i++) {
94079405 if (lifetimeDependenceData[startIndex + i]) {
94089406 bits.set (i);
94099407 }
94109408 }
9411- startIndex += numParams ;
9409+ startIndex += paramIndicesLength ;
94129410 };
94139411
94149412 if (hasInheritLifetimeParamIndices) {
0 commit comments