diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index 2b272d7fe08a..85b9cbf3de15 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -2286,7 +2286,7 @@ impl<'tcx> AdtDef { self.flags.contains(AdtFlags::IS_BOX) } - /// Returns `true` if this is ManuallyDrop. + /// Returns `true` if this is `ManuallyDrop`. #[inline] pub fn is_manually_drop(&self) -> bool { self.flags.contains(AdtFlags::IS_MANUALLY_DROP) diff --git a/src/librustc/ty/util.rs b/src/librustc/ty/util.rs index 6191d304719c..4011c010c035 100644 --- a/src/librustc/ty/util.rs +++ b/src/librustc/ty/util.rs @@ -1013,12 +1013,12 @@ pub fn needs_drop_components( | ty::Ref(..) | ty::Str => Ok(SmallVec::new()), - // Foreign types can never have destructors + // Foreign types can never have destructors. ty::Foreign(..) => Ok(SmallVec::new()), // Pessimistically assume that all generators will require destructors // as we don't know if a destructor is a noop or not until after the MIR - // state transformation pass + // state transformation pass. ty::Generator(..) | ty::Dynamic(..) | ty::Error => Err(AlwaysRequiresDrop), ty::Slice(ty) => needs_drop_components(ty, target_layout), diff --git a/src/librustc_ty/needs_drop.rs b/src/librustc_ty/needs_drop.rs index c01b3e384aec..0f71246c7375 100644 --- a/src/librustc_ty/needs_drop.rs +++ b/src/librustc_ty/needs_drop.rs @@ -12,9 +12,9 @@ type NeedsDropResult = Result; fn needs_drop_raw<'tcx>(tcx: TyCtxt<'tcx>, query: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> bool { let adt_fields = move |adt_def: &ty::AdtDef| tcx.adt_drop_tys(adt_def.did).map(|tys| tys.iter().copied()); - // If we don't know a type doesn't need drop, say it's a type parameter - // without a `Copy` bound, then we conservatively return that it needs - // drop. + // If we don't know a type doesn't need drop, for example if it's a type + // parameter without a `Copy` bound, then we conservatively return that it + // needs drop. let res = NeedsDropTypes::new(tcx, query.param_env, query.value, adt_fields).next().is_some(); debug!("needs_drop_raw({:?}) = {:?}", query, res); res @@ -25,9 +25,10 @@ struct NeedsDropTypes<'tcx, F> { param_env: ty::ParamEnv<'tcx>, query_ty: Ty<'tcx>, seen_tys: FxHashSet>, - /// A stack of types left to process. Each round, we pop something from the - /// stack and check if it needs drop. If the result depends on whether some - /// other types need drop we push them onto the stack. + /// A stack of types left to process, and the recursion depth when we + /// pushed that type. Each round, we pop something from the stack and check + /// if it needs drop. If the result depends on whether some other types + /// need drop we push them onto the stack. unchecked_tys: Vec<(Ty<'tcx>, usize)>, recursion_limit: usize, adt_components: F,