Fail gracefully if mutating on a use closure and the closure it not declared mut

This commit is contained in:
Santiago Pastorino 2025-02-14 18:42:06 -03:00
parent 6eb6ff62f7
commit aa58439f87
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF
3 changed files with 28 additions and 1 deletions

View file

@ -823,7 +823,7 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
) => {
capture_reason = format!("mutable borrow of `{upvar}`");
}
ty::UpvarCapture::ByValue => {
ty::UpvarCapture::ByValue | ty::UpvarCapture::ByUse => {
capture_reason = format!("possible mutation of `{upvar}`");
}
_ => bug!("upvar `{upvar}` borrowed, but not mutably"),