@@ -3846,7 +3846,7 @@ class DeclDeserializer {
38463846 ctor->setParameters (bodyParams);
38473847
38483848 SmallVector<LifetimeDependenceInfo, 1 > lifetimeDependencies;
3849- while (auto info = MF.maybeReadLifetimeDependence (bodyParams-> size () + 1 )) {
3849+ while (auto info = MF.maybeReadLifetimeDependence ()) {
38503850 assert (info.has_value ());
38513851 lifetimeDependencies.push_back (*info);
38523852 }
@@ -4448,11 +4448,9 @@ class DeclDeserializer {
44484448 ParameterList *paramList;
44494449 SET_OR_RETURN_ERROR (paramList, MF.readParameterList ());
44504450 fn->setParameters (paramList);
4451- auto numParams =
4452- fn->hasImplicitSelfDecl () ? paramList->size () + 1 : paramList->size ();
44534451
44544452 SmallVector<LifetimeDependenceInfo, 1 > lifetimeDependencies;
4455- while (auto info = MF.maybeReadLifetimeDependence (numParams )) {
4453+ while (auto info = MF.maybeReadLifetimeDependence ()) {
44564454 assert (info.has_value ());
44574455 lifetimeDependencies.push_back (*info);
44584456 }
@@ -7411,8 +7409,7 @@ detail::function_deserializer::deserialize(ModuleFile &MF,
74117409
74127410 SmallVector<LifetimeDependenceInfo, 1 > lifetimeDependencies;
74137411
7414- while (auto lifetimeDependence =
7415- MF.maybeReadLifetimeDependence (params.size ())) {
7412+ while (auto lifetimeDependence = MF.maybeReadLifetimeDependence ()) {
74167413 lifetimeDependencies.push_back (*lifetimeDependence);
74177414 }
74187415 if (!lifetimeDependencies.empty ()) {
@@ -8062,7 +8059,7 @@ Expected<Type> DESERIALIZE_TYPE(SIL_FUNCTION_TYPE)(
80628059
80638060 SmallVector<LifetimeDependenceInfo, 1 > lifetimeDependencies;
80648061
8065- while (auto lifetimeDependence = MF.maybeReadLifetimeDependence (numParams )) {
8062+ while (auto lifetimeDependence = MF.maybeReadLifetimeDependence ()) {
80668063 lifetimeDependencies.push_back (*lifetimeDependence);
80678064 }
80688065
@@ -9348,7 +9345,7 @@ bool ModuleFile::maybeReadLifetimeDependenceRecord(
93489345}
93499346
93509347std::optional<LifetimeDependenceInfo>
9351- ModuleFile::maybeReadLifetimeDependence (unsigned numParams ) {
9348+ ModuleFile::maybeReadLifetimeDependence () {
93529349 using namespace decls_block ;
93539350
93549351 SmallVector<uint64_t , 8 > scratch;
@@ -9357,28 +9354,29 @@ ModuleFile::maybeReadLifetimeDependence(unsigned numParams) {
93579354 }
93589355
93599356 unsigned targetIndex;
9357+ unsigned paramIndicesLength;
93609358 bool isImmortal;
93619359 bool hasInheritLifetimeParamIndices;
93629360 bool hasScopeLifetimeParamIndices;
93639361 bool hasAddressableParamIndices;
93649362 ArrayRef<uint64_t > lifetimeDependenceData;
93659363 LifetimeDependenceLayout::readRecord (
9366- scratch, targetIndex, isImmortal, hasInheritLifetimeParamIndices ,
9367- hasScopeLifetimeParamIndices, hasAddressableParamIndices ,
9368- lifetimeDependenceData);
9364+ scratch, targetIndex, paramIndicesLength, isImmortal ,
9365+ hasInheritLifetimeParamIndices, hasScopeLifetimeParamIndices ,
9366+ hasAddressableParamIndices, lifetimeDependenceData);
93699367
9370- SmallBitVector inheritLifetimeParamIndices (numParams , false );
9371- SmallBitVector scopeLifetimeParamIndices (numParams , false );
9372- SmallBitVector addressableParamIndices (numParams , false );
9368+ SmallBitVector inheritLifetimeParamIndices (paramIndicesLength , false );
9369+ SmallBitVector scopeLifetimeParamIndices (paramIndicesLength , false );
9370+ SmallBitVector addressableParamIndices (paramIndicesLength , false );
93739371
93749372 unsigned startIndex = 0 ;
93759373 auto pushData = [&](SmallBitVector &bits) {
9376- for (unsigned i = 0 ; i < numParams ; i++) {
9374+ for (unsigned i = 0 ; i < paramIndicesLength ; i++) {
93779375 if (lifetimeDependenceData[startIndex + i]) {
93789376 bits.set (i);
93799377 }
93809378 }
9381- startIndex += numParams ;
9379+ startIndex += paramIndicesLength ;
93829380 };
93839381
93849382 if (hasInheritLifetimeParamIndices) {
0 commit comments