File tree Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -1504,6 +1504,10 @@ class CheckEffectsCoverage : public EffectsHandlingWalker<CheckEffectsCoverage>
1504
1504
OldMaxThrowingKind = std::max (OldMaxThrowingKind, Self.MaxThrowingKind );
1505
1505
}
1506
1506
1507
+ void preserveCoverageFromOptionalOrForcedTryOperand () {
1508
+ OldFlags.mergeFrom (ContextFlags::asyncAwaitFlags (), Self.Flags );
1509
+ }
1510
+
1507
1511
void preserveCoverageFromInterpolatedString () {
1508
1512
OldFlags.mergeFrom (ContextFlags::HasAnyThrowSite, Self.Flags );
1509
1513
OldFlags.mergeFrom (ContextFlags::HasTryThrowSite, Self.Flags );
@@ -1848,6 +1852,8 @@ class CheckEffectsCoverage : public EffectsHandlingWalker<CheckEffectsCoverage>
1848
1852
if (!Flags.has (ContextFlags::HasTryThrowSite)) {
1849
1853
Ctx.Diags .diagnose (E->getLoc (), diag::no_throw_in_try);
1850
1854
}
1855
+
1856
+ scope.preserveCoverageFromOptionalOrForcedTryOperand ();
1851
1857
return ShouldNotRecurse;
1852
1858
}
1853
1859
@@ -1862,6 +1868,8 @@ class CheckEffectsCoverage : public EffectsHandlingWalker<CheckEffectsCoverage>
1862
1868
if (!Flags.has (ContextFlags::HasTryThrowSite)) {
1863
1869
Ctx.Diags .diagnose (E->getLoc (), diag::no_throw_in_try);
1864
1870
}
1871
+
1872
+ scope.preserveCoverageFromOptionalOrForcedTryOperand ();
1865
1873
return ShouldNotRecurse;
1866
1874
}
1867
1875
};
You can’t perform that action at this time.
0 commit comments