Fix remaining uses of CaptureBy::Value
This commit is contained in:
parent
8de489918b
commit
241a654c07
5 changed files with 9 additions and 9 deletions
|
@ -1201,7 +1201,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
||||||
}
|
}
|
||||||
|
|
||||||
let async_expr = this.make_async_expr(
|
let async_expr = this.make_async_expr(
|
||||||
CaptureBy::Value,
|
CaptureBy::Value { move_kw: rustc_span::DUMMY_SP },
|
||||||
closure_id,
|
closure_id,
|
||||||
None,
|
None,
|
||||||
body.span,
|
body.span,
|
||||||
|
|
|
@ -673,7 +673,7 @@ impl<'a> State<'a> {
|
||||||
|
|
||||||
fn print_capture_clause(&mut self, capture_clause: ast::CaptureBy) {
|
fn print_capture_clause(&mut self, capture_clause: ast::CaptureBy) {
|
||||||
match capture_clause {
|
match capture_clause {
|
||||||
ast::CaptureBy::Value => self.word_space("move"),
|
ast::CaptureBy::Value { .. } => self.word_space("move"),
|
||||||
ast::CaptureBy::Ref => {}
|
ast::CaptureBy::Ref => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2017,7 +2017,7 @@ impl<'a> State<'a> {
|
||||||
|
|
||||||
fn print_capture_clause(&mut self, capture_clause: hir::CaptureBy) {
|
fn print_capture_clause(&mut self, capture_clause: hir::CaptureBy) {
|
||||||
match capture_clause {
|
match capture_clause {
|
||||||
hir::CaptureBy::Value => self.word_space("move"),
|
hir::CaptureBy::Value { .. } => self.word_space("move"),
|
||||||
hir::CaptureBy::Ref => {}
|
hir::CaptureBy::Ref => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -424,7 +424,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||||
origin = updated.1;
|
origin = updated.1;
|
||||||
|
|
||||||
let (place, capture_kind) = match capture_clause {
|
let (place, capture_kind) = match capture_clause {
|
||||||
hir::CaptureBy::Value => adjust_for_move_closure(place, capture_kind),
|
hir::CaptureBy::Value { .. } => adjust_for_move_closure(place, capture_kind),
|
||||||
hir::CaptureBy::Ref => adjust_for_non_move_closure(place, capture_kind),
|
hir::CaptureBy::Ref => adjust_for_non_move_closure(place, capture_kind),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -958,7 +958,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||||
let ty = self.resolve_vars_if_possible(self.node_ty(var_hir_id));
|
let ty = self.resolve_vars_if_possible(self.node_ty(var_hir_id));
|
||||||
|
|
||||||
let ty = match closure_clause {
|
let ty = match closure_clause {
|
||||||
hir::CaptureBy::Value => ty, // For move closure the capture kind should be by value
|
hir::CaptureBy::Value { .. } => ty, // For move closure the capture kind should be by value
|
||||||
hir::CaptureBy::Ref => {
|
hir::CaptureBy::Ref => {
|
||||||
// For non move closure the capture kind is the max capture kind of all captures
|
// For non move closure the capture kind is the max capture kind of all captures
|
||||||
// according to the ordering ImmBorrow < UniqueImmBorrow < MutBorrow < ByValue
|
// according to the ordering ImmBorrow < UniqueImmBorrow < MutBorrow < ByValue
|
||||||
|
@ -1073,7 +1073,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||||
|
|
||||||
match closure_clause {
|
match closure_clause {
|
||||||
// Only migrate if closure is a move closure
|
// Only migrate if closure is a move closure
|
||||||
hir::CaptureBy::Value => {
|
hir::CaptureBy::Value { .. } => {
|
||||||
let mut diagnostics_info = FxIndexSet::default();
|
let mut diagnostics_info = FxIndexSet::default();
|
||||||
let upvars =
|
let upvars =
|
||||||
self.tcx.upvars_mentioned(closure_def_id).expect("must be an upvar");
|
self.tcx.upvars_mentioned(closure_def_id).expect("must be an upvar");
|
||||||
|
@ -1479,10 +1479,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||||
// If the data will be moved out of this place, then the place will be truncated
|
// If the data will be moved out of this place, then the place will be truncated
|
||||||
// at the first Deref in `adjust_upvar_borrow_kind_for_consume` and then moved into
|
// at the first Deref in `adjust_upvar_borrow_kind_for_consume` and then moved into
|
||||||
// the closure.
|
// the closure.
|
||||||
hir::CaptureBy::Value if !place.deref_tys().any(Ty::is_ref) => {
|
hir::CaptureBy::Value { .. } if !place.deref_tys().any(Ty::is_ref) => {
|
||||||
ty::UpvarCapture::ByValue
|
ty::UpvarCapture::ByValue
|
||||||
}
|
}
|
||||||
hir::CaptureBy::Value | hir::CaptureBy::Ref => ty::UpvarCapture::ByRef(ty::ImmBorrow),
|
hir::CaptureBy::Value { .. } | hir::CaptureBy::Ref => ty::UpvarCapture::ByRef(ty::ImmBorrow),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2938,7 +2938,7 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
||||||
else {
|
else {
|
||||||
bug!("expected closure in SizedClosureCapture obligation");
|
bug!("expected closure in SizedClosureCapture obligation");
|
||||||
};
|
};
|
||||||
if let hir::CaptureBy::Value = closure.capture_clause
|
if let hir::CaptureBy::Value { .. } = closure.capture_clause
|
||||||
&& let Some(span) = closure.fn_arg_span
|
&& let Some(span) = closure.fn_arg_span
|
||||||
{
|
{
|
||||||
err.span_label(span, "this closure captures all values by move");
|
err.span_label(span, "this closure captures all values by move");
|
||||||
|
|
Loading…
Add table
Reference in a new issue