File tree Expand file tree Collapse file tree 2 files changed +8
-1
lines changed
rustc_hir_analysis/src/check/generator_interior/drop_ranges Expand file tree Collapse file tree 2 files changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -198,6 +198,10 @@ impl<'tcx> expr_use_visitor::Delegate<'tcx> for ExprUseDelegate<'tcx> {
198198
199199 // If the type being assigned needs dropped, then the mutation counts as a borrow
200200 // since it is essentially doing `Drop::drop(&mut x); x = new_value;`.
201+ //
202+ // FIXME(drop-tracking): We need to be more responsible about inference
203+ // variables here, since `needs_drop` is a "raw" type query, i.e. it
204+ // basically requires types to have been fully resolved.
201205 if assignee_place. place . base_ty . needs_drop ( self . tcx , self . param_env ) {
202206 self . places
203207 . borrowed
Original file line number Diff line number Diff line change @@ -2205,7 +2205,10 @@ impl<'tcx> Ty<'tcx> {
22052205 // These aren't even `Clone`
22062206 ty:: Str | ty:: Slice ( ..) | ty:: Foreign ( ..) | ty:: Dynamic ( ..) => false ,
22072207
2208- ty:: Int ( ..) | ty:: Uint ( ..) | ty:: Float ( ..) => true ,
2208+ ty:: Infer ( ty:: InferTy :: FloatVar ( _) | ty:: InferTy :: IntVar ( _) )
2209+ | ty:: Int ( ..)
2210+ | ty:: Uint ( ..)
2211+ | ty:: Float ( ..) => true ,
22092212
22102213 // The voldemort ZSTs are fine.
22112214 ty:: FnDef ( ..) => true ,
You can’t perform that action at this time.
0 commit comments