@@ -509,7 +509,7 @@ getActualClangDeclPathComponentKind(uint64_t raw) {
509
509
return std::nullopt;
510
510
}
511
511
512
- ParameterList *ModuleFile::readParameterList () {
512
+ Expected< ParameterList *> ModuleFile::readParameterList () {
513
513
using namespace decls_block ;
514
514
515
515
SmallVector<uint64_t , 8 > scratch;
@@ -524,8 +524,11 @@ ParameterList *ModuleFile::readParameterList() {
524
524
decls_block::ParameterListLayout::readRecord (scratch, rawMemberIDs);
525
525
526
526
SmallVector<ParamDecl *, 8 > params;
527
- for (DeclID paramID : rawMemberIDs)
528
- params.push_back (cast<ParamDecl>(getDecl (paramID)));
527
+ for (DeclID paramID : rawMemberIDs) {
528
+ Decl *param;
529
+ UNWRAP (getDeclChecked (paramID), param);
530
+ params.push_back (cast<ParamDecl>(param));
531
+ }
529
532
530
533
return ParameterList::create (getContext (), params);
531
534
}
@@ -3670,7 +3673,8 @@ class DeclDeserializer {
3670
3673
else
3671
3674
return MF.diagnoseFatal ();
3672
3675
3673
- auto *bodyParams = MF.readParameterList ();
3676
+ ParameterList *bodyParams;
3677
+ UNWRAP (MF.readParameterList (), bodyParams);
3674
3678
assert (bodyParams && " missing parameters for constructor" );
3675
3679
ctor->setParameters (bodyParams);
3676
3680
@@ -4254,7 +4258,8 @@ class DeclDeserializer {
4254
4258
fn->setStatic (isStatic);
4255
4259
fn->setImplicitlyUnwrappedOptional (isIUO);
4256
4260
4257
- ParameterList *paramList = MF.readParameterList ();
4261
+ ParameterList *paramList;
4262
+ UNWRAP (MF.readParameterList (), paramList);
4258
4263
fn->setParameters (paramList);
4259
4264
4260
4265
auto lifetimeDependenceInfo = MF.maybeReadLifetimeDependenceInfo (
@@ -4982,7 +4987,8 @@ class DeclDeserializer {
4982
4987
4983
4988
// Read payload parameter list, if it exists.
4984
4989
if (hasPayload) {
4985
- auto *paramList = MF.readParameterList ();
4990
+ ParameterList *paramList;
4991
+ UNWRAP (MF.readParameterList (), paramList);
4986
4992
elem->setParameterList (paramList);
4987
4993
}
4988
4994
@@ -5101,7 +5107,9 @@ class DeclDeserializer {
5101
5107
5102
5108
subscript->setGenericSignature (MF.getGenericSignature (genericSigID));
5103
5109
5104
- subscript->setIndices (MF.readParameterList ());
5110
+ ParameterList *paramList;
5111
+ UNWRAP (MF.readParameterList (), paramList);
5112
+ subscript->setIndices (paramList);
5105
5113
5106
5114
MF.configureStorage (subscript, opaqueReadOwnership,
5107
5115
readImpl, writeImpl, readWriteImpl, accessors);
@@ -5128,9 +5136,12 @@ class DeclDeserializer {
5128
5136
AddAttribute (new (ctx) OverrideAttr (SourceLoc ()));
5129
5137
5130
5138
if (opaqueReturnTypeID) {
5139
+ Decl *opaqueReturnType;
5140
+ UNWRAP (MF.getDeclChecked (opaqueReturnTypeID), opaqueReturnType);
5141
+
5131
5142
ctx.evaluator .cacheOutput (
5132
5143
OpaqueResultTypeRequest{subscript},
5133
- cast<OpaqueTypeDecl>(MF. getDecl (opaqueReturnTypeID) ));
5144
+ cast<OpaqueTypeDecl>(opaqueReturnType ));
5134
5145
}
5135
5146
5136
5147
return subscript;
@@ -5342,8 +5353,9 @@ class DeclDeserializer {
5342
5353
macro->setGenericSignature (MF.getGenericSignature (genericSigID));
5343
5354
macro->resultType .setType (resultInterfaceType);
5344
5355
5345
- if (hasParameterList)
5346
- macro->parameterList = MF.readParameterList ();
5356
+ if (hasParameterList) {
5357
+ UNWRAP (MF.readParameterList (), macro->parameterList );
5358
+ }
5347
5359
5348
5360
if (auto accessLevel = getActualAccessLevel (rawAccessLevel))
5349
5361
macro->setAccess (*accessLevel);
0 commit comments