about summary refs log tree commit diff
path: root/compiler/rustc_passes/src/layout_test.rs
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2023-09-09 17:43:20 +0200
committerRalf Jung <post@ralfj.de>2023-09-09 18:00:13 +0200
commit3bd8bcb8bb431462858d71b94786fe90cfa7faed (patch)
tree235cb4df242003b5f0bdc7b9d97d26e39fe68eba /compiler/rustc_passes/src/layout_test.rs
parentc2a7e684cd43f449bc40a696dbf9b69ebccc33c3 (diff)
downloadrust-3bd8bcb8bb431462858d71b94786fe90cfa7faed.tar.gz
rust-3bd8bcb8bb431462858d71b94786fe90cfa7faed.zip
better spans for WF errors
Diffstat (limited to 'compiler/rustc_passes/src/layout_test.rs')
-rw-r--r--compiler/rustc_passes/src/layout_test.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/rustc_passes/src/layout_test.rs b/compiler/rustc_passes/src/layout_test.rs
index 6403effe027..3e0dc1f6063 100644
--- a/compiler/rustc_passes/src/layout_test.rs
+++ b/compiler/rustc_passes/src/layout_test.rs
@@ -38,12 +38,17 @@ pub fn ensure_wf<'tcx>(
     tcx: TyCtxt<'tcx>,
     param_env: ParamEnv<'tcx>,
     ty: Ty<'tcx>,
+    def_id: LocalDefId,
     span: Span,
 ) -> bool {
     let pred = ty::ClauseKind::WellFormed(ty.into());
     let obligation = traits::Obligation::new(
         tcx,
-        traits::ObligationCause::dummy_with_span(span),
+        traits::ObligationCause::new(
+            span,
+            def_id,
+            traits::ObligationCauseCode::WellFormed(Some(traits::WellFormedLoc::Ty(def_id))),
+        ),
         param_env,
         pred,
     );
@@ -64,7 +69,7 @@ fn dump_layout_of(tcx: TyCtxt<'_>, item_def_id: LocalDefId, attr: &Attribute) {
     let param_env = tcx.param_env(item_def_id);
     let ty = tcx.type_of(item_def_id).instantiate_identity();
     let span = tcx.def_span(item_def_id.to_def_id());
-    if !ensure_wf(tcx, param_env, ty, span) {
+    if !ensure_wf(tcx, param_env, ty, item_def_id, span) {
         return;
     }
     match tcx.layout_of(param_env.and(ty)) {