mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 07:14:28 +00:00
Auto merge of #114170 - lcnr:add-commmentz, r=compiler-errors
add `dropck_outlives` comments
This commit is contained in:
commit
90bb4184f8
@ -161,8 +161,12 @@ impl<'me, 'typeck, 'flow, 'tcx> LivenessResults<'me, 'typeck, 'flow, 'tcx> {
|
||||
}
|
||||
}
|
||||
|
||||
// Runs dropck for locals whose liveness isn't relevant. This is
|
||||
// necessary to eagerly detect unbound recursion during drop glue computation.
|
||||
/// Runs dropck for locals whose liveness isn't relevant. This is
|
||||
/// necessary to eagerly detect unbound recursion during drop glue computation.
|
||||
///
|
||||
/// These are all the locals which do not potentially reference a region local
|
||||
/// to this body. Locals which only reference free regions are always drop-live
|
||||
/// and can therefore safely be dropped.
|
||||
fn dropck_boring_locals(&mut self, boring_locals: Vec<Local>) {
|
||||
for local in boring_locals {
|
||||
let local_ty = self.cx.body.local_decls[local].ty;
|
||||
|
@ -31,16 +31,6 @@ impl<'tcx> super::QueryTypeOp<'tcx> for DropckOutlives<'tcx> {
|
||||
tcx: TyCtxt<'tcx>,
|
||||
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||
) -> Result<CanonicalQueryResponse<'tcx, Self::QueryResponse>, NoSolution> {
|
||||
// Subtle: note that we are not invoking
|
||||
// `infcx.at(...).dropck_outlives(...)` here, but rather the
|
||||
// underlying `dropck_outlives` query. This same underlying
|
||||
// query is also used by the
|
||||
// `infcx.at(...).dropck_outlives(...)` fn. Avoiding the
|
||||
// wrapper means we don't need an infcx in this code, which is
|
||||
// good because the interface doesn't give us one (so that we
|
||||
// know we are not registering any subregion relations or
|
||||
// other things).
|
||||
|
||||
// FIXME convert to the type expected by the `dropck_outlives`
|
||||
// query. This should eventually be fixed by changing the
|
||||
// *underlying query*.
|
||||
|
Loading…
Reference in New Issue
Block a user