File tree 2 files changed +8
-1
lines changed
rustc_hir_analysis/src/check/generator_interior/drop_ranges
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> {
198
198
199
199
// If the type being assigned needs dropped, then the mutation counts as a borrow
200
200
// 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.
201
205
if assignee_place. place . base_ty . needs_drop ( self . tcx , self . param_env ) {
202
206
self . places
203
207
. borrowed
Original file line number Diff line number Diff line change @@ -2205,7 +2205,10 @@ impl<'tcx> Ty<'tcx> {
2205
2205
// These aren't even `Clone`
2206
2206
ty:: Str | ty:: Slice ( ..) | ty:: Foreign ( ..) | ty:: Dynamic ( ..) => false ,
2207
2207
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 ,
2209
2212
2210
2213
// The voldemort ZSTs are fine.
2211
2214
ty:: FnDef ( ..) => true ,
You can’t perform that action at this time.
0 commit comments