@@ -723,14 +723,7 @@ void ModuleFile::readGenericRequirements(
723
723
break ;
724
724
725
725
scratch.clear ();
726
- Expected<unsigned > maybeRecordID =
727
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
728
- if (!maybeRecordID) {
729
- // FIXME this drops the error on the floor.
730
- consumeError (maybeRecordID.takeError ());
731
- return ;
732
- }
733
- unsigned recordID = maybeRecordID.get ();
726
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
734
727
switch (recordID) {
735
728
case GENERIC_REQUIREMENT: {
736
729
uint8_t rawKind;
@@ -916,15 +909,7 @@ GenericSignature *ModuleFile::getGenericSignature(
916
909
return nullptr ;
917
910
}
918
911
919
- Expected<unsigned > maybeRecordID =
920
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
921
- if (!maybeRecordID) {
922
- // FIXME this drops the error on the floor.
923
- consumeError (maybeRecordID.takeError ());
924
- error ();
925
- return nullptr ;
926
- }
927
- unsigned recordID = maybeRecordID.get ();
912
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
928
913
if (recordID != GENERIC_SIGNATURE) {
929
914
error ();
930
915
return nullptr ;
@@ -1006,15 +991,7 @@ ModuleFile::getGenericSignatureOrEnvironment(
1006
991
if (entry.Kind != llvm::BitstreamEntry::Record)
1007
992
return result;
1008
993
1009
- Expected<unsigned > maybeRecordID =
1010
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
1011
- if (!maybeRecordID) {
1012
- // FIXME this drops the error on the floor.
1013
- consumeError (maybeRecordID.takeError ());
1014
- error ();
1015
- return nullptr ;
1016
- }
1017
- unsigned recordID = maybeRecordID.get ();
994
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
1018
995
if (recordID != SIL_GENERIC_ENVIRONMENT) {
1019
996
error ();
1020
997
return result;
@@ -1116,15 +1093,7 @@ SubstitutionMap ModuleFile::getSubstitutionMap(
1116
1093
1117
1094
StringRef blobData;
1118
1095
SmallVector<uint64_t , 8 > scratch;
1119
- Expected<unsigned > maybeRecordID =
1120
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
1121
- if (!maybeRecordID) {
1122
- // FIXME this drops the error on the floor.
1123
- consumeError (maybeRecordID.takeError ());
1124
- error ();
1125
- return SubstitutionMap ();
1126
- }
1127
- unsigned recordID = maybeRecordID.get ();
1096
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
1128
1097
if (recordID != SUBSTITUTION_MAP) {
1129
1098
error ();
1130
1099
return SubstitutionMap ();
@@ -1342,15 +1311,7 @@ ModuleFile::resolveCrossReference(ModuleID MID, uint32_t pathLen) {
1342
1311
// In particular, operator path pieces represent actual operators here, but
1343
1312
// filters on operator functions when they appear later on.
1344
1313
scratch.clear ();
1345
- Expected<unsigned > maybeRecordID =
1346
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
1347
- if (!maybeRecordID) {
1348
- // FIXME this drops the error on the floor.
1349
- consumeError (maybeRecordID.takeError ());
1350
- error ();
1351
- return nullptr ;
1352
- }
1353
- unsigned recordID = maybeRecordID.get ();
1314
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
1354
1315
switch (recordID) {
1355
1316
case XREF_TYPE_PATH_PIECE:
1356
1317
case XREF_VALUE_PATH_PIECE: {
@@ -1460,14 +1421,7 @@ ModuleFile::resolveCrossReference(ModuleID MID, uint32_t pathLen) {
1460
1421
return Identifier ();
1461
1422
1462
1423
scratch.clear ();
1463
- Expected<unsigned > maybeRecordID =
1464
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
1465
- if (!maybeRecordID) {
1466
- // FIXME this drops the error on the floor.
1467
- consumeError (maybeRecordID.takeError ());
1468
- return Identifier ();
1469
- }
1470
- unsigned recordID = maybeRecordID.get ();
1424
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
1471
1425
switch (recordID) {
1472
1426
case XREF_TYPE_PATH_PIECE: {
1473
1427
IdentifierID IID;
@@ -1538,15 +1492,7 @@ ModuleFile::resolveCrossReference(ModuleID MID, uint32_t pathLen) {
1538
1492
}
1539
1493
1540
1494
scratch.clear ();
1541
- Expected<unsigned > maybeRecordID =
1542
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
1543
- if (!maybeRecordID) {
1544
- // FIXME this drops the error on the floor.
1545
- consumeError (maybeRecordID.takeError ());
1546
- error ();
1547
- return nullptr ;
1548
- }
1549
- unsigned recordID = maybeRecordID.get ();
1495
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
1550
1496
switch (recordID) {
1551
1497
case XREF_TYPE_PATH_PIECE: {
1552
1498
if (values.size () == 1 && isa<NominalTypeDecl>(values.front ())) {
@@ -1958,15 +1904,7 @@ DeclContext *ModuleFile::getLocalDeclContext(DeclContextID DCID) {
1958
1904
SmallVector<uint64_t , 64 > scratch;
1959
1905
StringRef blobData;
1960
1906
1961
- Expected<unsigned > maybeRecordID =
1962
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
1963
- if (!maybeRecordID) {
1964
- // FIXME this drops the error on the floor.
1965
- consumeError (maybeRecordID.takeError ());
1966
- error ();
1967
- return nullptr ;
1968
- }
1969
- unsigned recordID = maybeRecordID.get ();
1907
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
1970
1908
switch (recordID) {
1971
1909
case decls_block::ABSTRACT_CLOSURE_EXPR_CONTEXT: {
1972
1910
TypeID closureTypeID;
@@ -2056,15 +1994,7 @@ DeclContext *ModuleFile::getDeclContext(DeclContextID DCID) {
2056
1994
SmallVector<uint64_t , 64 > scratch;
2057
1995
StringRef blobData;
2058
1996
2059
- Expected<unsigned > maybeRecordID =
2060
- DeclTypeCursor.readRecord (entry.ID , scratch, &blobData);
2061
- if (!maybeRecordID) {
2062
- // FIXME this drops the error on the floor.
2063
- consumeError (maybeRecordID.takeError ());
2064
- error ();
2065
- return nullptr ;
2066
- }
2067
- unsigned recordID = maybeRecordID.get ();
1997
+ unsigned recordID = fatalIfUnexpected (DeclTypeCursor.readRecord (entry.ID , scratch, &blobData));
2068
1998
2069
1999
if (recordID != decls_block::DECL_CONTEXT)
2070
2000
llvm_unreachable (" Expected a DECL_CONTEXT record" );
@@ -4087,13 +4017,7 @@ llvm::Error DeclDeserializer::deserializeDeclAttributes() {
4087
4017
return llvm::Error::success ();
4088
4018
}
4089
4019
4090
- Expected<unsigned > maybeRecordID =
4091
- MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData);
4092
- if (!maybeRecordID) {
4093
- MF.error ();
4094
- return maybeRecordID.takeError ();
4095
- }
4096
- unsigned recordID = maybeRecordID.get ();
4020
+ unsigned recordID = MF.fatalIfUnexpected (MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData));
4097
4021
4098
4022
if (isDeclAttrRecord (recordID)) {
4099
4023
DeclAttribute *Attr = nullptr ;
@@ -4405,13 +4329,7 @@ DeclDeserializer::getDeclCheckedImpl() {
4405
4329
4406
4330
SmallVector<uint64_t , 64 > scratch;
4407
4331
StringRef blobData;
4408
- Expected<unsigned > maybeRecordID =
4409
- MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData);
4410
- if (!maybeRecordID) {
4411
- MF.error ();
4412
- return maybeRecordID.takeError ();
4413
- }
4414
- unsigned recordID = maybeRecordID.get ();
4332
+ unsigned recordID = MF.fatalIfUnexpected (MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData));
4415
4333
4416
4334
PrettyDeclDeserialization stackTraceEntry (
4417
4335
&MF, declOrOffset, static_cast <decls_block::RecordKind>(recordID));
@@ -4794,13 +4712,7 @@ class swift::TypeDeserializer {
4794
4712
break ;
4795
4713
4796
4714
scratch.clear ();
4797
- Expected<unsigned > maybeRecordID =
4798
- MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData);
4799
- if (!maybeRecordID) {
4800
- MF.error ();
4801
- return maybeRecordID.takeError ();
4802
- }
4803
- unsigned recordID = maybeRecordID.get ();
4715
+ unsigned recordID = MF.fatalIfUnexpected (MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData));
4804
4716
if (recordID != decls_block::TUPLE_TYPE_ELT)
4805
4717
break ;
4806
4718
@@ -4861,13 +4773,7 @@ class swift::TypeDeserializer {
4861
4773
break ;
4862
4774
4863
4775
scratch.clear ();
4864
- Expected<unsigned > maybeRecordID =
4865
- MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData);
4866
- if (!maybeRecordID) {
4867
- MF.error ();
4868
- return maybeRecordID.takeError ();
4869
- }
4870
- unsigned recordID = maybeRecordID.get ();
4776
+ unsigned recordID = MF.fatalIfUnexpected (MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData));
4871
4777
if (recordID != decls_block::FUNCTION_PARAM)
4872
4778
break ;
4873
4779
@@ -5456,13 +5362,7 @@ Expected<Type> TypeDeserializer::getTypeCheckedImpl() {
5456
5362
5457
5363
SmallVector<uint64_t , 64 > scratch;
5458
5364
StringRef blobData;
5459
- Expected<unsigned > maybeRecordID =
5460
- MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData);
5461
- if (!maybeRecordID) {
5462
- MF.error ();
5463
- return maybeRecordID.takeError ();
5464
- }
5465
- unsigned recordID = maybeRecordID.get ();
5365
+ unsigned recordID = MF.fatalIfUnexpected (MF.DeclTypeCursor .readRecord (entry.ID , scratch, &blobData));
5466
5366
5467
5367
switch (recordID) {
5468
5368
#define CASE (RECORD_NAME ) \
@@ -5923,14 +5823,7 @@ Optional<StringRef> ModuleFile::maybeReadInlinableBodyText() {
5923
5823
if (next.Kind != llvm::BitstreamEntry::Record)
5924
5824
return None;
5925
5825
5926
- Expected<unsigned > maybeRecKind =
5927
- DeclTypeCursor.readRecord (next.ID , scratch, &blobData);
5928
- if (!maybeRecKind) {
5929
- // FIXME this drops the error diagnostic on the floor.
5930
- consumeError (maybeRecKind.takeError ());
5931
- return None;
5932
- }
5933
- unsigned recKind = maybeRecKind.get ();
5826
+ unsigned recKind = fatalIfUnexpected (DeclTypeCursor.readRecord (next.ID , scratch, &blobData));
5934
5827
if (recKind != INLINABLE_BODY_TEXT)
5935
5828
return None;
5936
5829
@@ -5950,13 +5843,7 @@ Optional<ForeignErrorConvention> ModuleFile::maybeReadForeignErrorConvention() {
5950
5843
if (next.Kind != llvm::BitstreamEntry::Record)
5951
5844
return None;
5952
5845
5953
- Expected<unsigned > maybeRecKind = DeclTypeCursor.readRecord (next.ID , scratch);
5954
- if (!maybeRecKind) {
5955
- // FIXME this drops the error diagnostic on the floor.
5956
- consumeError (maybeRecKind.takeError ());
5957
- return None;
5958
- }
5959
- unsigned recKind = maybeRecKind.get ();
5846
+ unsigned recKind = fatalIfUnexpected (DeclTypeCursor.readRecord (next.ID , scratch));
5960
5847
switch (recKind) {
5961
5848
case FOREIGN_ERROR_CONVENTION:
5962
5849
restoreOffset.reset ();
0 commit comments