@@ -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}
@@ -3700,7 +3703,8 @@ class DeclDeserializer {
37003703 else
37013704 return MF.diagnoseFatal ();
37023705
3703- auto *bodyParams = MF.readParameterList ();
3706+ ParameterList *bodyParams;
3707+ UNWRAP (MF.readParameterList (), bodyParams);
37043708 assert (bodyParams && " missing parameters for constructor" );
37053709 ctor->setParameters (bodyParams);
37063710
@@ -4287,7 +4291,8 @@ class DeclDeserializer {
42874291 fn->setStatic (isStatic);
42884292 fn->setImplicitlyUnwrappedOptional (isIUO);
42894293
4290- ParameterList *paramList = MF.readParameterList ();
4294+ ParameterList *paramList;
4295+ UNWRAP (MF.readParameterList (), paramList);
42914296 fn->setParameters (paramList);
42924297 auto numParams =
42934298 fn->hasImplicitSelfDecl () ? paramList->size () + 1 : paramList->size ();
@@ -5020,7 +5025,8 @@ class DeclDeserializer {
50205025
50215026 // Read payload parameter list, if it exists.
50225027 if (hasPayload) {
5023- auto *paramList = MF.readParameterList ();
5028+ ParameterList *paramList;
5029+ UNWRAP (MF.readParameterList (), paramList);
50245030 elem->setParameterList (paramList);
50255031 }
50265032
@@ -5139,7 +5145,9 @@ class DeclDeserializer {
51395145
51405146 subscript->setGenericSignature (MF.getGenericSignature (genericSigID));
51415147
5142- subscript->setIndices (MF.readParameterList ());
5148+ ParameterList *paramList;
5149+ UNWRAP (MF.readParameterList (), paramList);
5150+ subscript->setIndices (paramList);
51435151
51445152 MF.configureStorage (subscript, opaqueReadOwnership,
51455153 readImpl, writeImpl, readWriteImpl, accessors);
@@ -5166,9 +5174,12 @@ class DeclDeserializer {
51665174 AddAttribute (new (ctx) OverrideAttr (SourceLoc ()));
51675175
51685176 if (opaqueReturnTypeID) {
5177+ Decl *opaqueReturnType;
5178+ UNWRAP (MF.getDeclChecked (opaqueReturnTypeID), opaqueReturnType);
5179+
51695180 ctx.evaluator .cacheOutput (
51705181 OpaqueResultTypeRequest{subscript},
5171- cast<OpaqueTypeDecl>(MF. getDecl (opaqueReturnTypeID) ));
5182+ cast<OpaqueTypeDecl>(opaqueReturnType ));
51725183 }
51735184
51745185 return subscript;
@@ -5380,8 +5391,9 @@ class DeclDeserializer {
53805391 macro->setGenericSignature (MF.getGenericSignature (genericSigID));
53815392 macro->resultType .setType (resultInterfaceType);
53825393
5383- if (hasParameterList)
5384- macro->parameterList = MF.readParameterList ();
5394+ if (hasParameterList) {
5395+ UNWRAP (MF.readParameterList (), macro->parameterList );
5396+ }
53855397
53865398 if (auto accessLevel = getActualAccessLevel (rawAccessLevel))
53875399 macro->setAccess (*accessLevel);
0 commit comments