Skip to content

Commit 1ec1df6

Browse files
committed
[Serialization] Pass up deserialization errors under generic type params
There is no related test as we don't have reproducer code and we've seen it only in the debugger, but I believe the fix is sound on its own. rdar://106430304
1 parent abe377c commit 1ec1df6

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

lib/Serialization/Deserialization.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6323,9 +6323,12 @@ DESERIALIZE_TYPE(GENERIC_TYPE_PARAM_TYPE)(
63236323
scratch, parameterPack, declIDOrDepth, indexPlusOne);
63246324

63256325
if (indexPlusOne == 0) {
6326-
auto genericParam =
6327-
dyn_cast_or_null<GenericTypeParamDecl>(MF.getDecl(declIDOrDepth));
6326+
auto genericParamOrError = MF.getDeclChecked(declIDOrDepth);
6327+
if (!genericParamOrError)
6328+
return genericParamOrError.takeError();
63286329

6330+
auto genericParam =
6331+
dyn_cast_or_null<GenericTypeParamDecl>(genericParamOrError.get());
63296332
if (!genericParam)
63306333
return MF.diagnoseFatal();
63316334

0 commit comments

Comments
 (0)