Skip to content

Commit a701cc8

Browse files
committed
Auto merge of rust-lang#139234 - compiler-errors:query-tweak, r=<try>
Misc query tweaks Several small query tweaks. I'm not totally sure if I'm misunderstanding how `ensure_ok()` interacts w/ caching, so perfing it first :> r? `@ghost`
2 parents 70dab5a + 3524e6a commit a701cc8

File tree

5 files changed

+8
-11
lines changed

5 files changed

+8
-11
lines changed

compiler/rustc_const_eval/src/check_consts/check.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ impl<'mir, 'tcx> Checker<'mir, 'tcx> {
335335
self.tcx.dcx().span_bug(span, "tls access is checked in `Rvalue::ThreadLocalRef`");
336336
}
337337
if let Some(def_id) = def_id.as_local()
338-
&& let Err(guar) = self.tcx.at(span).check_well_formed(hir::OwnerId { def_id })
338+
&& let Err(guar) = self.tcx.ensure_ok().check_well_formed(hir::OwnerId { def_id })
339339
{
340340
self.error_emitted = Some(guar);
341341
}

compiler/rustc_interface/src/passes.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,7 @@ fn run_required_analyses(tcx: TyCtxt<'_>) {
976976
tcx.par_hir_body_owners(|def_id| {
977977
if tcx.is_coroutine(def_id.to_def_id()) {
978978
tcx.ensure_ok().mir_coroutine_witnesses(def_id);
979-
tcx.ensure_ok().check_coroutine_obligations(
979+
let _ = tcx.ensure_ok().check_coroutine_obligations(
980980
tcx.typeck_root_def_id(def_id.to_def_id()).expect_local(),
981981
);
982982
// Eagerly check the unsubstituted layout for cycles.

compiler/rustc_middle/src/query/mod.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,7 @@ rustc_queries! {
612612

613613
query check_coroutine_obligations(key: LocalDefId) -> Result<(), ErrorGuaranteed> {
614614
desc { |tcx| "verify auto trait bounds for coroutine interior type `{}`", tcx.def_path_str(key) }
615+
return_result_from_ensure_ok
615616
}
616617

617618
/// MIR after our optimization passes have run. This is MIR that is ready
@@ -1033,13 +1034,12 @@ rustc_queries! {
10331034
/// Unsafety-check this `LocalDefId`.
10341035
query check_unsafety(key: LocalDefId) {
10351036
desc { |tcx| "unsafety-checking `{}`", tcx.def_path_str(key) }
1036-
cache_on_disk_if { true }
10371037
}
10381038

10391039
/// Checks well-formedness of tail calls (`become f()`).
10401040
query check_tail_calls(key: LocalDefId) -> Result<(), rustc_errors::ErrorGuaranteed> {
10411041
desc { |tcx| "tail-call-checking `{}`", tcx.def_path_str(key) }
1042-
cache_on_disk_if { true }
1042+
return_result_from_ensure_ok
10431043
}
10441044

10451045
/// Returns the types assumed to be well formed while "inside" of the given item.
@@ -1308,7 +1308,7 @@ rustc_queries! {
13081308

13091309
query check_match(key: LocalDefId) -> Result<(), rustc_errors::ErrorGuaranteed> {
13101310
desc { |tcx| "match-checking `{}`", tcx.def_path_str(key) }
1311-
cache_on_disk_if { true }
1311+
return_result_from_ensure_ok
13121312
}
13131313

13141314
/// Performs part of the privacy check and computes effective visibilities.
@@ -1602,7 +1602,6 @@ rustc_queries! {
16021602
/// `Err(AlwaysRequiresDrop)` is returned.
16031603
query adt_significant_drop_tys(def_id: DefId) -> Result<&'tcx ty::List<Ty<'tcx>>, AlwaysRequiresDrop> {
16041604
desc { |tcx| "computing when `{}` has a significant destructor", tcx.def_path_str(def_id) }
1605-
cache_on_disk_if { false }
16061605
}
16071606

16081607
/// Returns a list of types which (a) have a potentially significant destructor
@@ -1624,7 +1623,6 @@ rustc_queries! {
16241623
/// Otherwise, there is a risk of query cycles.
16251624
query list_significant_drop_tys(ty: ty::PseudoCanonicalInput<'tcx, Ty<'tcx>>) -> &'tcx ty::List<Ty<'tcx>> {
16261625
desc { |tcx| "computing when `{}` has a significant destructor", ty.value }
1627-
cache_on_disk_if { false }
16281626
}
16291627

16301628
/// Computes the layout of a type. Note that this implicitly
@@ -2512,7 +2510,6 @@ rustc_queries! {
25122510
/// monomorphized.
25132511
query check_mono_item(key: ty::Instance<'tcx>) {
25142512
desc { "monomorphization-time checking" }
2515-
cache_on_disk_if { true }
25162513
}
25172514

25182515
/// Builds the set of functions that should be skipped for the move-size check.

compiler/rustc_mir_build/src/builder/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ pub(crate) fn closure_saved_names_of_captured_variables<'tcx>(
4848
/// this directly; instead use the cached version via `mir_built`.
4949
pub fn build_mir<'tcx>(tcx: TyCtxt<'tcx>, def: LocalDefId) -> Body<'tcx> {
5050
tcx.ensure_done().thir_abstract_const(def);
51-
if let Err(e) = tcx.check_match(def) {
51+
if let Err(e) = tcx.ensure_ok().check_match(def) {
5252
return construct_error(tcx, def, e);
5353
}
5454

55-
if let Err(err) = tcx.check_tail_calls(def) {
55+
if let Err(err) = tcx.ensure_ok().check_tail_calls(def) {
5656
return construct_error(tcx, def, err);
5757
}
5858

compiler/rustc_mir_transform/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ fn mir_drops_elaborated_and_const_checked(tcx: TyCtxt<'_>, def: LocalDefId) -> &
528528
| DefKind::Static { .. }
529529
| DefKind::Const
530530
| DefKind::AssocConst => {
531-
if let Err(guar) = tcx.check_well_formed(root.expect_local()) {
531+
if let Err(guar) = tcx.ensure_ok().check_well_formed(root.expect_local()) {
532532
body.tainted_by_errors = Some(guar);
533533
}
534534
}

0 commit comments

Comments
 (0)