@@ -2726,7 +2726,9 @@ Expected<DeclContext *>ModuleFile::getLocalDeclContext(LocalDeclContextID DCID)
2726
2726
implicit,
2727
2727
discriminator,
2728
2728
parentID);
2729
- DeclContext *parent = getDeclContext (parentID);
2729
+ DeclContext *parent;
2730
+ UNWRAP (getDeclContextChecked (parentID), parent);
2731
+
2730
2732
auto type = getType (closureTypeID);
2731
2733
2732
2734
declContextOrOffset = new (ctx)
@@ -2738,7 +2740,8 @@ Expected<DeclContext *>ModuleFile::getLocalDeclContext(LocalDeclContextID DCID)
2738
2740
DeclContextID parentID;
2739
2741
decls_block::TopLevelCodeDeclContextLayout::readRecord (scratch,
2740
2742
parentID);
2741
- DeclContext *parent = getDeclContext (parentID);
2743
+ DeclContext *parent;
2744
+ UNWRAP (getDeclContextChecked (parentID), parent);
2742
2745
2743
2746
declContextOrOffset = new (ctx) SerializedTopLevelCodeDeclContext (parent);
2744
2747
break ;
@@ -2768,7 +2771,8 @@ Expected<DeclContext *>ModuleFile::getLocalDeclContext(LocalDeclContextID DCID)
2768
2771
decls_block::DefaultArgumentInitializerLayout::readRecord (scratch,
2769
2772
parentID,
2770
2773
index);
2771
- DeclContext *parent = getDeclContext (parentID);
2774
+ DeclContext *parent;
2775
+ UNWRAP (getDeclContextChecked (parentID), parent);
2772
2776
2773
2777
declContextOrOffset = new (ctx) DefaultArgumentInitializer (parent, index);
2774
2778
break ;
@@ -3343,7 +3347,8 @@ class DeclDeserializer {
3343
3347
}
3344
3348
}
3345
3349
3346
- auto DC = MF.getDeclContext (contextID);
3350
+ DeclContext *DC;
3351
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
3347
3352
3348
3353
auto genericParams = MF.maybeReadGenericParams (DC);
3349
3354
if (declOrOffset.isComplete ())
@@ -3415,7 +3420,9 @@ class DeclDeserializer {
3415
3420
isImplicit,
3416
3421
rawOverriddenIDs);
3417
3422
3418
- auto DC = MF.getDeclContext (contextID);
3423
+ DeclContext *DC;
3424
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
3425
+
3419
3426
if (declOrOffset.isComplete ())
3420
3427
return declOrOffset;
3421
3428
@@ -3598,7 +3605,9 @@ class DeclDeserializer {
3598
3605
}
3599
3606
}
3600
3607
3601
- auto parent = MF.getDeclContext (contextID);
3608
+ DeclContext *parent;
3609
+ UNWRAP (MF.getDeclContextChecked (contextID), parent);
3610
+
3602
3611
if (declOrOffset.isComplete ())
3603
3612
return declOrOffset;
3604
3613
@@ -3762,7 +3771,9 @@ class DeclDeserializer {
3762
3771
}
3763
3772
}
3764
3773
3765
- auto DC = MF.getDeclContext (contextID);
3774
+ DeclContext *DC;
3775
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
3776
+
3766
3777
if (declOrOffset.isComplete ())
3767
3778
return declOrOffset;
3768
3779
@@ -3918,7 +3929,9 @@ class DeclDeserializer {
3918
3929
auto paramName = MF.getIdentifier (paramNameID);
3919
3930
PrettySupplementalDeclNameTrace trace (paramName);
3920
3931
3921
- auto DC = MF.getDeclContext (contextID);
3932
+ DeclContext *DC;
3933
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
3934
+
3922
3935
if (declOrOffset.isComplete ())
3923
3936
return declOrOffset;
3924
3937
@@ -4134,7 +4147,9 @@ class DeclDeserializer {
4134
4147
}
4135
4148
}
4136
4149
4137
- auto DC = MF.getDeclContext (contextID);
4150
+ DeclContext *DC;
4151
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4152
+
4138
4153
if (declOrOffset.isComplete ())
4139
4154
return declOrOffset;
4140
4155
@@ -4356,7 +4371,9 @@ class DeclDeserializer {
4356
4371
rawAccessLevel,
4357
4372
exportUnderlyingType);
4358
4373
4359
- auto declContext = MF.getDeclContext (contextID);
4374
+ DeclContext *declContext;
4375
+ UNWRAP (MF.getDeclContextChecked (contextID), declContext);
4376
+
4360
4377
auto interfaceSigOrErr = MF.getGenericSignatureChecked (interfaceSigID);
4361
4378
if (!interfaceSigOrErr)
4362
4379
return interfaceSigOrErr.takeError ();
@@ -4459,7 +4476,8 @@ class DeclDeserializer {
4459
4476
if (!StaticSpelling.has_value ())
4460
4477
return MF.diagnoseFatal ();
4461
4478
4462
- auto dc = MF.getDeclContext (contextID);
4479
+ DeclContext *dc;
4480
+ UNWRAP (MF.getDeclContextChecked (contextID), dc);
4463
4481
4464
4482
SmallVector<std::pair<Pattern *, DeclContextID>, 4 > patterns;
4465
4483
for (unsigned i = 0 ; i != numPatterns; ++i) {
@@ -4495,8 +4513,11 @@ class DeclDeserializer {
4495
4513
4496
4514
for (unsigned i = 0 ; i != patterns.size (); ++i) {
4497
4515
binding->setPattern (i, patterns[i].first );
4498
- if (auto *context = MF.getDeclContext (patterns[i].second ))
4499
- binding->setInitContext (i, cast<PatternBindingInitializer>(context));
4516
+
4517
+ DeclContext *dcPattern;
4518
+ UNWRAP (MF.getDeclContextChecked (patterns[i].second ), dcPattern);
4519
+ if (dcPattern)
4520
+ binding->setInitContext (i, cast<PatternBindingInitializer>(dcPattern));
4500
4521
}
4501
4522
4502
4523
return binding;
@@ -4529,7 +4550,9 @@ class DeclDeserializer {
4529
4550
}
4530
4551
}
4531
4552
4532
- auto DC = MF.getDeclContext (contextID);
4553
+ DeclContext *DC;
4554
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4555
+
4533
4556
if (declOrOffset.isComplete ())
4534
4557
return declOrOffset;
4535
4558
@@ -4600,7 +4623,8 @@ class DeclDeserializer {
4600
4623
Identifier name = MF.getIdentifier (nameID);
4601
4624
PrettySupplementalDeclNameTrace trace (name);
4602
4625
4603
- auto DC = MF.getDeclContext (contextID);
4626
+ DeclContext *DC;
4627
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4604
4628
4605
4629
auto result = MF.createDecl <OperatorDecl>(
4606
4630
DC, SourceLoc (), name, SourceLoc ());
@@ -4636,7 +4660,8 @@ class DeclDeserializer {
4636
4660
if (!precedenceGroup)
4637
4661
return precedenceGroup.takeError ();
4638
4662
4639
- auto DC = MF.getDeclContext (contextID);
4663
+ DeclContext *DC;
4664
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4640
4665
4641
4666
auto result = MF.createDecl <InfixOperatorDecl>(
4642
4667
DC, SourceLoc (), name, SourceLoc (), SourceLoc (), Identifier (),
@@ -4663,7 +4688,8 @@ class DeclDeserializer {
4663
4688
assignment, numHigherThan,
4664
4689
rawRelations);
4665
4690
4666
- auto DC = MF.getDeclContext (contextID);
4691
+ DeclContext *DC;
4692
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4667
4693
4668
4694
auto associativity = getActualAssociativity (rawAssociativity);
4669
4695
if (!associativity.has_value ())
@@ -4746,7 +4772,9 @@ class DeclDeserializer {
4746
4772
}
4747
4773
}
4748
4774
4749
- auto DC = MF.getDeclContext (contextID);
4775
+ DeclContext *DC;
4776
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4777
+
4750
4778
if (declOrOffset.isComplete ())
4751
4779
return declOrOffset;
4752
4780
@@ -4907,7 +4935,9 @@ class DeclDeserializer {
4907
4935
}
4908
4936
}
4909
4937
4910
- DeclContext *DC = MF.getDeclContext (contextID);
4938
+ DeclContext *DC;
4939
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4940
+
4911
4941
if (declOrOffset.isComplete ())
4912
4942
return declOrOffset;
4913
4943
@@ -5014,7 +5044,9 @@ class DeclDeserializer {
5014
5044
}
5015
5045
}
5016
5046
5017
- auto parent = MF.getDeclContext (contextID);
5047
+ DeclContext *parent;
5048
+ UNWRAP (MF.getDeclContextChecked (contextID), parent);
5049
+
5018
5050
if (declOrOffset.isComplete ())
5019
5051
return declOrOffset;
5020
5052
@@ -5089,7 +5121,8 @@ class DeclDeserializer {
5089
5121
numConformances, numInherited,
5090
5122
data);
5091
5123
5092
- auto DC = MF.getDeclContext (contextID);
5124
+ DeclContext *DC;
5125
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
5093
5126
5094
5127
auto conformanceIDs = data.slice (0 , numConformances);
5095
5128
data = data.slice (numConformances);
@@ -5176,7 +5209,9 @@ class DeclDeserializer {
5176
5209
isImplicit, isObjC,
5177
5210
genericSigID);
5178
5211
5179
- DeclContext *DC = MF.getDeclContext (contextID);
5212
+ DeclContext *DC;
5213
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
5214
+
5180
5215
if (declOrOffset.isComplete ())
5181
5216
return declOrOffset;
5182
5217
@@ -5251,7 +5286,9 @@ class DeclDeserializer {
5251
5286
}
5252
5287
}
5253
5288
5254
- auto parent = MF.getDeclContext (contextID);
5289
+ DeclContext *parent;
5290
+ UNWRAP (MF.getDeclContextChecked (contextID), parent);
5291
+
5255
5292
if (declOrOffset.isComplete ())
5256
5293
return declOrOffset;
5257
5294
0 commit comments