Skip to content

Commit

Permalink
Tweak output
Browse files Browse the repository at this point in the history
  • Loading branch information
estebank committed Oct 26, 2023
1 parent aa13c44 commit 2aad509
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 23 deletions.
6 changes: 3 additions & 3 deletions compiler/rustc_infer/src/traits/error_reporting/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,17 +137,17 @@ pub fn report_object_safety_error<'tcx>(
.iter()
.map(|t| {
with_no_trimmed_paths!(format!(
"\n - {}",
" {}",
tcx.type_of(*t).instantiate_identity(),
))
})
.collect::<Vec<_>>();
err.help(format!(
"the following types implement the trait, consider defining an enum where each \
variant holds one of these types, implementing `{}` for this new enum and using \
it instead:{}",
it instead:\n{}",
trait_str,
types.join(""),
types.join("\n"),
));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ LL | type A<'a> where Self: 'a;
| ^ ...because it contains the generic associated type `A`
= help: consider moving `A` to another trait
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Foo` for this new enum and using it instead:
- Fooy
- Fooer<T>
Fooy
Fooer<T>

error: aborting due to previous error

Expand Down
8 changes: 4 additions & 4 deletions tests/ui/generic-associated-types/issue-79422.base.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ LL | type VRefCont<'a>: RefCont<'a, V> where Self: 'a;
| ^^^^^^^^ ...because it contains the generic associated type `VRefCont`
= help: consider moving `VRefCont` to another trait
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `MapLike` for this new enum and using it instead:
- std::collections::BTreeMap<K, V>
- Source
std::collections::BTreeMap<K, V>
Source

error[E0038]: the trait `MapLike` cannot be made into an object
--> $DIR/issue-79422.rs:44:13
Expand All @@ -47,8 +47,8 @@ LL | type VRefCont<'a>: RefCont<'a, V> where Self: 'a;
| ^^^^^^^^ ...because it contains the generic associated type `VRefCont`
= help: consider moving `VRefCont` to another trait
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `MapLike` for this new enum and using it instead:
- std::collections::BTreeMap<K, V>
- Source
std::collections::BTreeMap<K, V>
Source
= note: required for the cast from `Box<BTreeMap<u8, u8>>` to `Box<dyn MapLike<u8, u8, VRefCont = (dyn RefCont<'_, u8> + 'static)>>`

error: aborting due to 3 previous errors
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ LL | trait NotObjectSafe {
LL | fn foo() -> Self;
| ^^^ ...because associated function `foo` has no `self` parameter
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `NotObjectSafe` for this new enum and using it instead:
- A
- B
A
B
help: consider turning `foo` into a method by giving it a `&self` argument
|
LL | fn foo(&self) -> Self;
Expand All @@ -37,8 +37,8 @@ LL | trait NotObjectSafe {
LL | fn foo() -> Self;
| ^^^ ...because associated function `foo` has no `self` parameter
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `NotObjectSafe` for this new enum and using it instead:
- A
- B
A
B
help: consider turning `foo` into a method by giving it a `&self` argument
|
LL | fn foo(&self) -> Self;
Expand Down
12 changes: 6 additions & 6 deletions tests/ui/traits/test-2.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ LL | trait bar { fn dup(&self) -> Self; fn blah<X>(&self); }
= help: consider moving `dup` to another trait
= help: consider moving `blah` to another trait
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `bar` for this new enum and using it instead:
- i32
- u32
i32
u32

error[E0038]: the trait `bar` cannot be made into an object
--> $DIR/test-2.rs:13:5
Expand All @@ -63,8 +63,8 @@ LL | trait bar { fn dup(&self) -> Self; fn blah<X>(&self); }
= help: consider moving `dup` to another trait
= help: consider moving `blah` to another trait
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `bar` for this new enum and using it instead:
- i32
- u32
i32
u32

error[E0038]: the trait `bar` cannot be made into an object
--> $DIR/test-2.rs:13:6
Expand All @@ -83,8 +83,8 @@ LL | trait bar { fn dup(&self) -> Self; fn blah<X>(&self); }
= help: consider moving `dup` to another trait
= help: consider moving `blah` to another trait
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `bar` for this new enum and using it instead:
- i32
- u32
i32
u32
= note: required for the cast from `Box<{integer}>` to `Box<dyn bar>`

error: aborting due to 5 previous errors
Expand Down
8 changes: 4 additions & 4 deletions tests/ui/wf/wf-unsafe-trait-obj-match.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ LL | trait Trait: Sized {}
| |
| this trait cannot be made into an object...
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Trait` for this new enum and using it instead:
- S
- R
S
R
= note: required for the cast from `&S` to `&dyn Trait`

error[E0038]: the trait `Trait` cannot be made into an object
Expand All @@ -52,8 +52,8 @@ LL | trait Trait: Sized {}
| |
| this trait cannot be made into an object...
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Trait` for this new enum and using it instead:
- S
- R
S
R
= note: required for the cast from `&R` to `&dyn Trait`

error: aborting due to 3 previous errors
Expand Down

0 comments on commit 2aad509

Please sign in to comment.