mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-21 22:34:05 +00:00
Fix remaining uses of CaptureBy::Value
This commit is contained in:
parent
8de489918b
commit
241a654c07
@ -1201,7 +1201,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
||||
}
|
||||
|
||||
let async_expr = this.make_async_expr(
|
||||
CaptureBy::Value,
|
||||
CaptureBy::Value { move_kw: rustc_span::DUMMY_SP },
|
||||
closure_id,
|
||||
None,
|
||||
body.span,
|
||||
|
@ -673,7 +673,7 @@ impl<'a> State<'a> {
|
||||
|
||||
fn print_capture_clause(&mut self, capture_clause: ast::CaptureBy) {
|
||||
match capture_clause {
|
||||
ast::CaptureBy::Value => self.word_space("move"),
|
||||
ast::CaptureBy::Value { .. } => self.word_space("move"),
|
||||
ast::CaptureBy::Ref => {}
|
||||
}
|
||||
}
|
||||
|
@ -2017,7 +2017,7 @@ impl<'a> State<'a> {
|
||||
|
||||
fn print_capture_clause(&mut self, capture_clause: hir::CaptureBy) {
|
||||
match capture_clause {
|
||||
hir::CaptureBy::Value => self.word_space("move"),
|
||||
hir::CaptureBy::Value { .. } => self.word_space("move"),
|
||||
hir::CaptureBy::Ref => {}
|
||||
}
|
||||
}
|
||||
|
@ -424,7 +424,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
origin = updated.1;
|
||||
|
||||
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),
|
||||
};
|
||||
|
||||
@ -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 = 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 => {
|
||||
// For non move closure the capture kind is the max capture kind of all captures
|
||||
// according to the ordering ImmBorrow < UniqueImmBorrow < MutBorrow < ByValue
|
||||
@ -1073,7 +1073,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
|
||||
match closure_clause {
|
||||
// Only migrate if closure is a move closure
|
||||
hir::CaptureBy::Value => {
|
||||
hir::CaptureBy::Value { .. } => {
|
||||
let mut diagnostics_info = FxIndexSet::default();
|
||||
let upvars =
|
||||
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
|
||||
// at the first Deref in `adjust_upvar_borrow_kind_for_consume` and then moved into
|
||||
// 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
|
||||
}
|
||||
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 {
|
||||
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
|
||||
{
|
||||
err.span_label(span, "this closure captures all values by move");
|
||||
|
Loading…
Reference in New Issue
Block a user