@@ -519,7 +519,7 @@ getActualClangDeclPathComponentKind(uint64_t raw) {
519519 return std::nullopt ;
520520}
521521
522- ParameterList *ModuleFile::readParameterList () {
522+ Expected< ParameterList *> ModuleFile::readParameterList () {
523523 using namespace decls_block ;
524524
525525 SmallVector<uint64_t , 8 > scratch;
@@ -534,8 +534,11 @@ ParameterList *ModuleFile::readParameterList() {
534534 decls_block::ParameterListLayout::readRecord (scratch, rawMemberIDs);
535535
536536 SmallVector<ParamDecl *, 8 > params;
537- for (DeclID paramID : rawMemberIDs)
538- params.push_back (cast<ParamDecl>(getDecl (paramID)));
537+ for (DeclID paramID : rawMemberIDs) {
538+ Decl *param;
539+ UNWRAP (getDeclChecked (paramID), param);
540+ params.push_back (cast<ParamDecl>(param));
541+ }
539542
540543 return ParameterList::create (getContext (), params);
541544}
@@ -3680,7 +3683,8 @@ class DeclDeserializer {
36803683 else
36813684 return MF.diagnoseFatal ();
36823685
3683- auto *bodyParams = MF.readParameterList ();
3686+ ParameterList *bodyParams;
3687+ UNWRAP (MF.readParameterList (), bodyParams);
36843688 assert (bodyParams && " missing parameters for constructor" );
36853689 ctor->setParameters (bodyParams);
36863690
@@ -4264,7 +4268,8 @@ class DeclDeserializer {
42644268 fn->setStatic (isStatic);
42654269 fn->setImplicitlyUnwrappedOptional (isIUO);
42664270
4267- ParameterList *paramList = MF.readParameterList ();
4271+ ParameterList *paramList;
4272+ UNWRAP (MF.readParameterList (), paramList);
42684273 fn->setParameters (paramList);
42694274
42704275 auto lifetimeDependenceInfo = MF.maybeReadLifetimeDependenceInfo (
@@ -4992,7 +4997,8 @@ class DeclDeserializer {
49924997
49934998 // Read payload parameter list, if it exists.
49944999 if (hasPayload) {
4995- auto *paramList = MF.readParameterList ();
5000+ ParameterList *paramList;
5001+ UNWRAP (MF.readParameterList (), paramList);
49965002 elem->setParameterList (paramList);
49975003 }
49985004
@@ -5111,7 +5117,9 @@ class DeclDeserializer {
51115117
51125118 subscript->setGenericSignature (MF.getGenericSignature (genericSigID));
51135119
5114- subscript->setIndices (MF.readParameterList ());
5120+ ParameterList *paramList;
5121+ UNWRAP (MF.readParameterList (), paramList);
5122+ subscript->setIndices (paramList);
51155123
51165124 MF.configureStorage (subscript, opaqueReadOwnership,
51175125 readImpl, writeImpl, readWriteImpl, accessors);
@@ -5138,9 +5146,12 @@ class DeclDeserializer {
51385146 AddAttribute (new (ctx) OverrideAttr (SourceLoc ()));
51395147
51405148 if (opaqueReturnTypeID) {
5149+ Decl *opaqueReturnType;
5150+ UNWRAP (MF.getDeclChecked (opaqueReturnTypeID), opaqueReturnType);
5151+
51415152 ctx.evaluator .cacheOutput (
51425153 OpaqueResultTypeRequest{subscript},
5143- cast<OpaqueTypeDecl>(MF. getDecl (opaqueReturnTypeID) ));
5154+ cast<OpaqueTypeDecl>(opaqueReturnType ));
51445155 }
51455156
51465157 return subscript;
@@ -5352,8 +5363,9 @@ class DeclDeserializer {
53525363 macro->setGenericSignature (MF.getGenericSignature (genericSigID));
53535364 macro->resultType .setType (resultInterfaceType);
53545365
5355- if (hasParameterList)
5356- macro->parameterList = MF.readParameterList ();
5366+ if (hasParameterList) {
5367+ UNWRAP (MF.readParameterList (), macro->parameterList );
5368+ }
53575369
53585370 if (auto accessLevel = getActualAccessLevel (rawAccessLevel))
53595371 macro->setAccess (*accessLevel);
0 commit comments