Skip to content

Commit f019a92

Browse files
committed
Correctly handle AdjustNeverToAny in try_find_coercion_lub
1 parent 69e2761 commit f019a92

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/librustc_typeck/check/coercion.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -746,6 +746,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
746746
}
747747
_ => false
748748
},
749+
Some(&AdjustNeverToAny(_)) => true,
749750
Some(_) => false,
750751
None => true
751752
};
@@ -781,7 +782,12 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
781782
Ok((ty, adjustment)) => {
782783
if !adjustment.is_identity() {
783784
for expr in exprs() {
784-
self.write_adjustment(expr.id, adjustment);
785+
let previous = self.tables.borrow().adjustments.get(&expr.id).cloned();
786+
if let Some(AdjustNeverToAny(_)) = previous {
787+
self.write_adjustment(expr.id, AdjustNeverToAny(ty));
788+
} else {
789+
self.write_adjustment(expr.id, adjustment);
790+
}
785791
}
786792
}
787793
Ok(ty)

0 commit comments

Comments
 (0)