@@ -519,7 +519,7 @@ getActualClangDeclPathComponentKind(uint64_t raw) {
519
519
return std::nullopt;
520
520
}
521
521
522
- ParameterList *ModuleFile::readParameterList () {
522
+ Expected< ParameterList *> ModuleFile::readParameterList () {
523
523
using namespace decls_block ;
524
524
525
525
SmallVector<uint64_t , 8 > scratch;
@@ -534,8 +534,11 @@ ParameterList *ModuleFile::readParameterList() {
534
534
decls_block::ParameterListLayout::readRecord (scratch, rawMemberIDs);
535
535
536
536
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
+ }
539
542
540
543
return ParameterList::create (getContext (), params);
541
544
}
@@ -3700,7 +3703,8 @@ class DeclDeserializer {
3700
3703
else
3701
3704
return MF.diagnoseFatal ();
3702
3705
3703
- auto *bodyParams = MF.readParameterList ();
3706
+ ParameterList *bodyParams;
3707
+ UNWRAP (MF.readParameterList (), bodyParams);
3704
3708
assert (bodyParams && " missing parameters for constructor" );
3705
3709
ctor->setParameters (bodyParams);
3706
3710
@@ -4287,7 +4291,8 @@ class DeclDeserializer {
4287
4291
fn->setStatic (isStatic);
4288
4292
fn->setImplicitlyUnwrappedOptional (isIUO);
4289
4293
4290
- ParameterList *paramList = MF.readParameterList ();
4294
+ ParameterList *paramList;
4295
+ UNWRAP (MF.readParameterList (), paramList);
4291
4296
fn->setParameters (paramList);
4292
4297
auto numParams =
4293
4298
fn->hasImplicitSelfDecl () ? paramList->size () + 1 : paramList->size ();
@@ -5020,7 +5025,8 @@ class DeclDeserializer {
5020
5025
5021
5026
// Read payload parameter list, if it exists.
5022
5027
if (hasPayload) {
5023
- auto *paramList = MF.readParameterList ();
5028
+ ParameterList *paramList;
5029
+ UNWRAP (MF.readParameterList (), paramList);
5024
5030
elem->setParameterList (paramList);
5025
5031
}
5026
5032
@@ -5139,7 +5145,9 @@ class DeclDeserializer {
5139
5145
5140
5146
subscript->setGenericSignature (MF.getGenericSignature (genericSigID));
5141
5147
5142
- subscript->setIndices (MF.readParameterList ());
5148
+ ParameterList *paramList;
5149
+ UNWRAP (MF.readParameterList (), paramList);
5150
+ subscript->setIndices (paramList);
5143
5151
5144
5152
MF.configureStorage (subscript, opaqueReadOwnership,
5145
5153
readImpl, writeImpl, readWriteImpl, accessors);
@@ -5166,9 +5174,12 @@ class DeclDeserializer {
5166
5174
AddAttribute (new (ctx) OverrideAttr (SourceLoc ()));
5167
5175
5168
5176
if (opaqueReturnTypeID) {
5177
+ Decl *opaqueReturnType;
5178
+ UNWRAP (MF.getDeclChecked (opaqueReturnTypeID), opaqueReturnType);
5179
+
5169
5180
ctx.evaluator .cacheOutput (
5170
5181
OpaqueResultTypeRequest{subscript},
5171
- cast<OpaqueTypeDecl>(MF. getDecl (opaqueReturnTypeID) ));
5182
+ cast<OpaqueTypeDecl>(opaqueReturnType ));
5172
5183
}
5173
5184
5174
5185
return subscript;
@@ -5380,8 +5391,9 @@ class DeclDeserializer {
5380
5391
macro->setGenericSignature (MF.getGenericSignature (genericSigID));
5381
5392
macro->resultType .setType (resultInterfaceType);
5382
5393
5383
- if (hasParameterList)
5384
- macro->parameterList = MF.readParameterList ();
5394
+ if (hasParameterList) {
5395
+ UNWRAP (MF.readParameterList (), macro->parameterList );
5396
+ }
5385
5397
5386
5398
if (auto accessLevel = getActualAccessLevel (rawAccessLevel))
5387
5399
macro->setAccess (*accessLevel);
0 commit comments