@@ -2750,7 +2750,9 @@ Expected<DeclContext *>ModuleFile::getLocalDeclContext(LocalDeclContextID DCID)
2750
2750
implicit,
2751
2751
discriminator,
2752
2752
parentID);
2753
- DeclContext *parent = getDeclContext (parentID);
2753
+ DeclContext *parent;
2754
+ UNWRAP (getDeclContextChecked (parentID), parent);
2755
+
2754
2756
auto type = getType (closureTypeID);
2755
2757
2756
2758
declContextOrOffset = new (ctx)
@@ -2762,7 +2764,8 @@ Expected<DeclContext *>ModuleFile::getLocalDeclContext(LocalDeclContextID DCID)
2762
2764
DeclContextID parentID;
2763
2765
decls_block::TopLevelCodeDeclContextLayout::readRecord (scratch,
2764
2766
parentID);
2765
- DeclContext *parent = getDeclContext (parentID);
2767
+ DeclContext *parent;
2768
+ UNWRAP (getDeclContextChecked (parentID), parent);
2766
2769
2767
2770
declContextOrOffset = new (ctx) SerializedTopLevelCodeDeclContext (parent);
2768
2771
break ;
@@ -2792,7 +2795,8 @@ Expected<DeclContext *>ModuleFile::getLocalDeclContext(LocalDeclContextID DCID)
2792
2795
decls_block::DefaultArgumentInitializerLayout::readRecord (scratch,
2793
2796
parentID,
2794
2797
index);
2795
- DeclContext *parent = getDeclContext (parentID);
2798
+ DeclContext *parent;
2799
+ UNWRAP (getDeclContextChecked (parentID), parent);
2796
2800
2797
2801
declContextOrOffset = new (ctx) DefaultArgumentInitializer (parent, index);
2798
2802
break ;
@@ -3367,7 +3371,8 @@ class DeclDeserializer {
3367
3371
}
3368
3372
}
3369
3373
3370
- auto DC = MF.getDeclContext (contextID);
3374
+ DeclContext *DC;
3375
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
3371
3376
3372
3377
auto genericParams = MF.maybeReadGenericParams (DC);
3373
3378
if (declOrOffset.isComplete ())
@@ -3439,7 +3444,9 @@ class DeclDeserializer {
3439
3444
isImplicit,
3440
3445
rawOverriddenIDs);
3441
3446
3442
- auto DC = MF.getDeclContext (contextID);
3447
+ DeclContext *DC;
3448
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
3449
+
3443
3450
if (declOrOffset.isComplete ())
3444
3451
return declOrOffset;
3445
3452
@@ -3622,7 +3629,9 @@ class DeclDeserializer {
3622
3629
}
3623
3630
}
3624
3631
3625
- auto parent = MF.getDeclContext (contextID);
3632
+ DeclContext *parent;
3633
+ UNWRAP (MF.getDeclContextChecked (contextID), parent);
3634
+
3626
3635
if (declOrOffset.isComplete ())
3627
3636
return declOrOffset;
3628
3637
@@ -3786,7 +3795,9 @@ class DeclDeserializer {
3786
3795
}
3787
3796
}
3788
3797
3789
- auto DC = MF.getDeclContext (contextID);
3798
+ DeclContext *DC;
3799
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
3800
+
3790
3801
if (declOrOffset.isComplete ())
3791
3802
return declOrOffset;
3792
3803
@@ -3942,7 +3953,9 @@ class DeclDeserializer {
3942
3953
auto paramName = MF.getIdentifier (paramNameID);
3943
3954
PrettySupplementalDeclNameTrace trace (paramName);
3944
3955
3945
- auto DC = MF.getDeclContext (contextID);
3956
+ DeclContext *DC;
3957
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
3958
+
3946
3959
if (declOrOffset.isComplete ())
3947
3960
return declOrOffset;
3948
3961
@@ -4158,7 +4171,9 @@ class DeclDeserializer {
4158
4171
}
4159
4172
}
4160
4173
4161
- auto DC = MF.getDeclContext (contextID);
4174
+ DeclContext *DC;
4175
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4176
+
4162
4177
if (declOrOffset.isComplete ())
4163
4178
return declOrOffset;
4164
4179
@@ -4380,7 +4395,9 @@ class DeclDeserializer {
4380
4395
rawAccessLevel,
4381
4396
exportUnderlyingType);
4382
4397
4383
- auto declContext = MF.getDeclContext (contextID);
4398
+ DeclContext *declContext;
4399
+ UNWRAP (MF.getDeclContextChecked (contextID), declContext);
4400
+
4384
4401
auto interfaceSigOrErr = MF.getGenericSignatureChecked (interfaceSigID);
4385
4402
if (!interfaceSigOrErr)
4386
4403
return interfaceSigOrErr.takeError ();
@@ -4483,7 +4500,8 @@ class DeclDeserializer {
4483
4500
if (!StaticSpelling.has_value ())
4484
4501
return MF.diagnoseFatal ();
4485
4502
4486
- auto dc = MF.getDeclContext (contextID);
4503
+ DeclContext *dc;
4504
+ UNWRAP (MF.getDeclContextChecked (contextID), dc);
4487
4505
4488
4506
SmallVector<std::pair<Pattern *, DeclContextID>, 4 > patterns;
4489
4507
for (unsigned i = 0 ; i != numPatterns; ++i) {
@@ -4519,8 +4537,11 @@ class DeclDeserializer {
4519
4537
4520
4538
for (unsigned i = 0 ; i != patterns.size (); ++i) {
4521
4539
binding->setPattern (i, patterns[i].first );
4522
- if (auto *context = MF.getDeclContext (patterns[i].second ))
4523
- binding->setInitContext (i, cast<PatternBindingInitializer>(context));
4540
+
4541
+ DeclContext *dcPattern;
4542
+ UNWRAP (MF.getDeclContextChecked (patterns[i].second ), dcPattern);
4543
+ if (dcPattern)
4544
+ binding->setInitContext (i, cast<PatternBindingInitializer>(dcPattern));
4524
4545
}
4525
4546
4526
4547
return binding;
@@ -4553,7 +4574,9 @@ class DeclDeserializer {
4553
4574
}
4554
4575
}
4555
4576
4556
- auto DC = MF.getDeclContext (contextID);
4577
+ DeclContext *DC;
4578
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4579
+
4557
4580
if (declOrOffset.isComplete ())
4558
4581
return declOrOffset;
4559
4582
@@ -4624,7 +4647,8 @@ class DeclDeserializer {
4624
4647
Identifier name = MF.getIdentifier (nameID);
4625
4648
PrettySupplementalDeclNameTrace trace (name);
4626
4649
4627
- auto DC = MF.getDeclContext (contextID);
4650
+ DeclContext *DC;
4651
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4628
4652
4629
4653
auto result = MF.createDecl <OperatorDecl>(
4630
4654
DC, SourceLoc (), name, SourceLoc ());
@@ -4660,7 +4684,8 @@ class DeclDeserializer {
4660
4684
if (!precedenceGroup)
4661
4685
return precedenceGroup.takeError ();
4662
4686
4663
- auto DC = MF.getDeclContext (contextID);
4687
+ DeclContext *DC;
4688
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4664
4689
4665
4690
auto result = MF.createDecl <InfixOperatorDecl>(
4666
4691
DC, SourceLoc (), name, SourceLoc (), SourceLoc (), Identifier (),
@@ -4687,7 +4712,8 @@ class DeclDeserializer {
4687
4712
assignment, numHigherThan,
4688
4713
rawRelations);
4689
4714
4690
- auto DC = MF.getDeclContext (contextID);
4715
+ DeclContext *DC;
4716
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4691
4717
4692
4718
auto associativity = getActualAssociativity (rawAssociativity);
4693
4719
if (!associativity.has_value ())
@@ -4770,7 +4796,9 @@ class DeclDeserializer {
4770
4796
}
4771
4797
}
4772
4798
4773
- auto DC = MF.getDeclContext (contextID);
4799
+ DeclContext *DC;
4800
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4801
+
4774
4802
if (declOrOffset.isComplete ())
4775
4803
return declOrOffset;
4776
4804
@@ -4931,7 +4959,9 @@ class DeclDeserializer {
4931
4959
}
4932
4960
}
4933
4961
4934
- DeclContext *DC = MF.getDeclContext (contextID);
4962
+ DeclContext *DC;
4963
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
4964
+
4935
4965
if (declOrOffset.isComplete ())
4936
4966
return declOrOffset;
4937
4967
@@ -5038,7 +5068,9 @@ class DeclDeserializer {
5038
5068
}
5039
5069
}
5040
5070
5041
- auto parent = MF.getDeclContext (contextID);
5071
+ DeclContext *parent;
5072
+ UNWRAP (MF.getDeclContextChecked (contextID), parent);
5073
+
5042
5074
if (declOrOffset.isComplete ())
5043
5075
return declOrOffset;
5044
5076
@@ -5113,7 +5145,8 @@ class DeclDeserializer {
5113
5145
numConformances, numInherited,
5114
5146
data);
5115
5147
5116
- auto DC = MF.getDeclContext (contextID);
5148
+ DeclContext *DC;
5149
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
5117
5150
5118
5151
auto conformanceIDs = data.slice (0 , numConformances);
5119
5152
data = data.slice (numConformances);
@@ -5200,7 +5233,9 @@ class DeclDeserializer {
5200
5233
isImplicit, isObjC,
5201
5234
genericSigID);
5202
5235
5203
- DeclContext *DC = MF.getDeclContext (contextID);
5236
+ DeclContext *DC;
5237
+ UNWRAP (MF.getDeclContextChecked (contextID), DC);
5238
+
5204
5239
if (declOrOffset.isComplete ())
5205
5240
return declOrOffset;
5206
5241
@@ -5275,7 +5310,9 @@ class DeclDeserializer {
5275
5310
}
5276
5311
}
5277
5312
5278
- auto parent = MF.getDeclContext (contextID);
5313
+ DeclContext *parent;
5314
+ UNWRAP (MF.getDeclContextChecked (contextID), parent);
5315
+
5279
5316
if (declOrOffset.isComplete ())
5280
5317
return declOrOffset;
5281
5318
0 commit comments