Skip to content

Commit

Permalink
better spans for WF errors
Browse files Browse the repository at this point in the history
  • Loading branch information
RalfJung committed Sep 9, 2023
1 parent c2a7e68 commit 3bd8bcb
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 19 deletions.
2 changes: 1 addition & 1 deletion compiler/rustc_passes/src/abi_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ fn dump_abi_of_fn_type(tcx: TyCtxt<'_>, item_def_id: LocalDefId, attr: &Attribut
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);
if !ensure_wf(tcx, param_env, ty, span) {
if !ensure_wf(tcx, param_env, ty, item_def_id, span) {
return;
}
let meta_items = attr.meta_item_list().unwrap_or_default();
Expand Down
9 changes: 7 additions & 2 deletions compiler/rustc_passes/src/layout_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
);
Expand All @@ -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)) {
Expand Down
4 changes: 2 additions & 2 deletions tests/ui/abi/debug.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -852,10 +852,10 @@ LL | type TestAbiNeSign = (fn(i32), fn(u32));
| ^^^^^^^^^^^^^^^^^^

error[E0277]: the size for values of type `str` cannot be known at compilation time
--> $DIR/debug.rs:53:1
--> $DIR/debug.rs:53:46
|
LL | type TestAbiEqNonsense = (fn((str, str)), fn((str, str)));
| ^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
| ^^^^^^^^^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `str`
= note: only the last element of a tuple may have a dynamically sized type
Expand Down
File renamed without changes.
16 changes: 16 additions & 0 deletions tests/ui/associated-types/issue-85103-layout-debug.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
error[E0277]: the trait bound `[E]: ToOwned` is not satisfied
--> $DIR/issue-85103-layout-debug.rs:6:21
|
LL | type Edges<'a, E> = Cow<'a, [E]>;
| ^^^^^^^^^^^^ the trait `ToOwned` is not implemented for `[E]`
|
note: required by a bound in `Cow`
--> $SRC_DIR/alloc/src/borrow.rs:LL:COL
help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement
|
LL | type Edges<'a, E> where [E]: ToOwned = Cow<'a, [E]>;
| ++++++++++++++++++

error: aborting due to previous error

For more information about this error, try `rustc --explain E0277`.
12 changes: 0 additions & 12 deletions tests/ui/associated-types/issue-85103.stderr

This file was deleted.

4 changes: 2 additions & 2 deletions tests/ui/layout/debug.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -558,10 +558,10 @@ LL | const C: () = ();
| ^^^^^^^^^^^

error[E0277]: the size for values of type `str` cannot be known at compilation time
--> $DIR/debug.rs:78:1
--> $DIR/debug.rs:78:19
|
LL | type Impossible = (str, str);
| ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
| ^^^^^^^^^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `str`
= note: only the last element of a tuple may have a dynamically sized type
Expand Down

0 comments on commit 3bd8bcb

Please sign in to comment.