diff options
| author | Ralf Jung <post@ralfj.de> | 2023-09-09 17:43:20 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2023-09-09 18:00:13 +0200 |
| commit | 3bd8bcb8bb431462858d71b94786fe90cfa7faed (patch) | |
| tree | 235cb4df242003b5f0bdc7b9d97d26e39fe68eba /compiler/rustc_passes/src/layout_test.rs | |
| parent | c2a7e684cd43f449bc40a696dbf9b69ebccc33c3 (diff) | |
| download | rust-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.rs | 9 |
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)) { |
