Rollup merge of #135708 - compiler-errors:compiler-nits, r=lqd
Some random compiler nits The only "observable" change here is using `par_body_owners` for coroutine witnesses/coroutine obligation checking. r? lqd (or reassign, you just seem to like to approve prs :3 )
This commit is contained in:
commit
c87dd96cf5
3 changed files with 17 additions and 14 deletions
|
@ -87,7 +87,7 @@ fn used_trait_imports(tcx: TyCtxt<'_>, def_id: LocalDefId) -> &UnordSet<LocalDef
|
||||||
}
|
}
|
||||||
|
|
||||||
fn typeck<'tcx>(tcx: TyCtxt<'tcx>, def_id: LocalDefId) -> &'tcx ty::TypeckResults<'tcx> {
|
fn typeck<'tcx>(tcx: TyCtxt<'tcx>, def_id: LocalDefId) -> &'tcx ty::TypeckResults<'tcx> {
|
||||||
typeck_with_fallback(tcx, def_id, None)
|
typeck_with_inspect(tcx, def_id, None)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Same as `typeck` but `inspect` is invoked on evaluation of each root obligation.
|
/// Same as `typeck` but `inspect` is invoked on evaluation of each root obligation.
|
||||||
|
@ -99,11 +99,11 @@ pub fn inspect_typeck<'tcx>(
|
||||||
def_id: LocalDefId,
|
def_id: LocalDefId,
|
||||||
inspect: ObligationInspector<'tcx>,
|
inspect: ObligationInspector<'tcx>,
|
||||||
) -> &'tcx ty::TypeckResults<'tcx> {
|
) -> &'tcx ty::TypeckResults<'tcx> {
|
||||||
typeck_with_fallback(tcx, def_id, Some(inspect))
|
typeck_with_inspect(tcx, def_id, Some(inspect))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[instrument(level = "debug", skip(tcx, inspector), ret)]
|
#[instrument(level = "debug", skip(tcx, inspector), ret)]
|
||||||
fn typeck_with_fallback<'tcx>(
|
fn typeck_with_inspect<'tcx>(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
def_id: LocalDefId,
|
def_id: LocalDefId,
|
||||||
inspector: Option<ObligationInspector<'tcx>>,
|
inspector: Option<ObligationInspector<'tcx>>,
|
||||||
|
|
|
@ -875,6 +875,8 @@ fn run_required_analyses(tcx: TyCtxt<'_>) {
|
||||||
});
|
});
|
||||||
// Freeze definitions as we don't add new ones at this point.
|
// Freeze definitions as we don't add new ones at this point.
|
||||||
// We need to wait until now since we synthesize a by-move body
|
// We need to wait until now since we synthesize a by-move body
|
||||||
|
// for all coroutine-closures.
|
||||||
|
//
|
||||||
// This improves performance by allowing lock-free access to them.
|
// This improves performance by allowing lock-free access to them.
|
||||||
tcx.untracked().definitions.freeze();
|
tcx.untracked().definitions.freeze();
|
||||||
|
|
||||||
|
@ -887,7 +889,7 @@ fn run_required_analyses(tcx: TyCtxt<'_>) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
sess.time("MIR_effect_checking", || {
|
sess.time("MIR_effect_checking", || {
|
||||||
for def_id in tcx.hir().body_owners() {
|
tcx.hir().par_body_owners(|def_id| {
|
||||||
tcx.ensure().has_ffi_unwind_calls(def_id);
|
tcx.ensure().has_ffi_unwind_calls(def_id);
|
||||||
|
|
||||||
// If we need to codegen, ensure that we emit all errors from
|
// If we need to codegen, ensure that we emit all errors from
|
||||||
|
@ -898,15 +900,17 @@ fn run_required_analyses(tcx: TyCtxt<'_>) {
|
||||||
{
|
{
|
||||||
tcx.ensure().mir_drops_elaborated_and_const_checked(def_id);
|
tcx.ensure().mir_drops_elaborated_and_const_checked(def_id);
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
});
|
||||||
tcx.hir().par_body_owners(|def_id| {
|
sess.time("coroutine_obligations", || {
|
||||||
if tcx.is_coroutine(def_id.to_def_id()) {
|
tcx.hir().par_body_owners(|def_id| {
|
||||||
tcx.ensure().mir_coroutine_witnesses(def_id);
|
if tcx.is_coroutine(def_id.to_def_id()) {
|
||||||
tcx.ensure().check_coroutine_obligations(
|
tcx.ensure().mir_coroutine_witnesses(def_id);
|
||||||
tcx.typeck_root_def_id(def_id.to_def_id()).expect_local(),
|
tcx.ensure().check_coroutine_obligations(
|
||||||
);
|
tcx.typeck_root_def_id(def_id.to_def_id()).expect_local(),
|
||||||
}
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
sess.time("layout_testing", || layout_test::test_layout(tcx));
|
sess.time("layout_testing", || layout_test::test_layout(tcx));
|
||||||
|
|
|
@ -1164,8 +1164,7 @@ rustc_queries! {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check whether the function has any recursion that could cause the inliner to trigger
|
/// Check whether the function has any recursion that could cause the inliner to trigger
|
||||||
/// a cycle. Returns the call stack causing the cycle. The call stack does not contain the
|
/// a cycle.
|
||||||
/// current function, just all intermediate functions.
|
|
||||||
query mir_callgraph_reachable(key: (ty::Instance<'tcx>, LocalDefId)) -> bool {
|
query mir_callgraph_reachable(key: (ty::Instance<'tcx>, LocalDefId)) -> bool {
|
||||||
fatal_cycle
|
fatal_cycle
|
||||||
desc { |tcx|
|
desc { |tcx|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue