Skip to content

Commit 4c5ca44

Browse files
Pass correct closure type to Qualif methods
1 parent 49ef3da commit 4c5ca44

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/librustc_mir/transform/check_consts/resolver.rs

+10-4
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,13 @@ where
7171
return_place: &mir::Place<'tcx>,
7272
) {
7373
let return_ty = return_place.ty(*self.item.body, self.item.tcx).ty;
74-
let qualif =
75-
Q::in_call(self.item, &|l| self.qualifs_per_local.contains(l), func, args, return_ty);
74+
let qualif = Q::in_call(
75+
self.item,
76+
&mut |l| self.qualifs_per_local.contains(l),
77+
func,
78+
args,
79+
return_ty,
80+
);
7681
if !return_place.is_indirect() {
7782
self.assign_qualif_direct(return_place, qualif);
7883
}
@@ -105,7 +110,7 @@ where
105110
rvalue: &mir::Rvalue<'tcx>,
106111
location: Location,
107112
) {
108-
let qualif = Q::in_rvalue(self.item, &|l| self.qualifs_per_local.contains(l), rvalue);
113+
let qualif = Q::in_rvalue(self.item, &mut |l| self.qualifs_per_local.contains(l), rvalue);
109114
if !place.is_indirect() {
110115
self.assign_qualif_direct(place, qualif);
111116
}
@@ -120,7 +125,8 @@ where
120125
// here; that occurs in `apply_call_return_effect`.
121126

122127
if let mir::TerminatorKind::DropAndReplace { value, location: dest, .. } = kind {
123-
let qualif = Q::in_operand(self.item, &|l| self.qualifs_per_local.contains(l), value);
128+
let qualif =
129+
Q::in_operand(self.item, &mut |l| self.qualifs_per_local.contains(l), value);
124130
if !dest.is_indirect() {
125131
self.assign_qualif_direct(dest, qualif);
126132
}

src/librustc_mir/transform/promote_consts.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ impl<'tcx> Validator<'_, 'tcx> {
407407

408408
// FIXME(eddyb) maybe cache this?
409409
fn qualif_local<Q: qualifs::Qualif>(&self, local: Local) -> bool {
410-
let per_local = &|l| self.qualif_local::<Q>(l);
410+
let per_local = &mut |l| self.qualif_local::<Q>(l);
411411

412412
if let TempState::Defined { location: loc, .. } = self.temps[local] {
413413
let num_stmts = self.body[loc.block].statements.len();

0 commit comments

Comments
 (0)