mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 23:12:02 +00:00
Rollup merge of #106202 - estebank:trim-paths, r=Nilstrieb
Trim more paths in obligation types
This commit is contained in:
commit
6b792e9178
@ -2683,7 +2683,9 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
||||
// Don't print the tuple of capture types
|
||||
'print: {
|
||||
if !is_upvar_tys_infer_tuple {
|
||||
let msg = format!("required because it appears within the type `{}`", ty);
|
||||
let msg = with_forced_trimmed_paths!(format!(
|
||||
"required because it appears within the type `{ty}`",
|
||||
));
|
||||
match ty.kind() {
|
||||
ty::Adt(def, _) => match self.tcx.opt_item_ident(def.did()) {
|
||||
Some(ident) => err.span_note(ident.span, &msg),
|
||||
@ -2724,7 +2726,7 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
||||
let mut msg =
|
||||
"required because it captures the following types: ".to_owned();
|
||||
for ty in bound_tys.skip_binder() {
|
||||
write!(msg, "`{}`, ", ty).unwrap();
|
||||
with_forced_trimmed_paths!(write!(msg, "`{}`, ", ty).unwrap());
|
||||
}
|
||||
err.note(msg.trim_end_matches(", "))
|
||||
}
|
||||
@ -2735,7 +2737,9 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
||||
let kind = tcx.generator_kind(def_id).unwrap().descr();
|
||||
err.span_note(
|
||||
sp,
|
||||
&format!("required because it's used within this {}", kind),
|
||||
with_forced_trimmed_paths!(&format!(
|
||||
"required because it's used within this {kind}",
|
||||
)),
|
||||
)
|
||||
}
|
||||
ty::Closure(def_id, _) => err.span_note(
|
||||
@ -2959,7 +2963,9 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
||||
let expr_ty = with_forced_trimmed_paths!(self.ty_to_string(expr_ty));
|
||||
err.span_label(
|
||||
expr_span,
|
||||
format!("return type was inferred to be `{expr_ty}` here"),
|
||||
with_forced_trimmed_paths!(format!(
|
||||
"return type was inferred to be `{expr_ty}` here",
|
||||
)),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ LL | foo::<for<'a> fn(&'a ()) -> (dyn std::fmt::Display + 'a), _>(None, (&()
|
||||
| required by a bound introduced by this call
|
||||
|
|
||||
= help: within `for<'a> fn(&'a ()) -> (dyn std::fmt::Display + 'a)`, the trait `for<'a> Sized` is not implemented for `(dyn std::fmt::Display + 'a)`
|
||||
= note: required because it appears within the type `for<'a> fn(&'a ()) -> (dyn std::fmt::Display + 'a)`
|
||||
= note: required because it appears within the type `for<'a> fn(&'a ()) -> (dyn Display + 'a)`
|
||||
note: required by a bound in `foo`
|
||||
--> $DIR/unsized-ret.rs:5:11
|
||||
|
|
||||
|
@ -35,7 +35,7 @@ note: required because it's used within this generator
|
||||
|
|
||||
LL | || {
|
||||
| ^^
|
||||
note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[749a]::make_gen2::{opaque#0}), [std::sync::Arc<std::cell::RefCell<i32>>])`
|
||||
note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[749a]::make_gen2::{opaque#0}), [Arc<RefCell<i32>>])`
|
||||
--> $DIR/generator-print-verbose-1.rs:41:30
|
||||
|
|
||||
LL | pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> {
|
||||
|
@ -7,7 +7,7 @@ LL | foo::<HashMap<Rc<()>, Rc<()>>>();
|
||||
= help: within `(Rc<()>, Rc<()>)`, the trait `Send` is not implemented for `Rc<()>`
|
||||
= note: required because it appears within the type `(Rc<()>, Rc<()>)`
|
||||
= note: required for `hashbrown::raw::RawTable<(Rc<()>, Rc<()>)>` to implement `Send`
|
||||
= note: required because it appears within the type `hashbrown::map::HashMap<Rc<()>, Rc<()>, RandomState>`
|
||||
= note: required because it appears within the type `HashMap<Rc<()>, Rc<()>, RandomState>`
|
||||
= note: required because it appears within the type `HashMap<Rc<()>, Rc<()>>`
|
||||
note: required by a bound in `foo`
|
||||
--> $DIR/issue-21763.rs:6:11
|
||||
|
@ -50,7 +50,7 @@ LL | is_send((8, TestType));
|
||||
| required by a bound introduced by this call
|
||||
|
|
||||
= help: within `({integer}, dummy1c::TestType)`, the trait `Send` is not implemented for `dummy1c::TestType`
|
||||
= note: required because it appears within the type `({integer}, dummy1c::TestType)`
|
||||
= note: required because it appears within the type `({integer}, TestType)`
|
||||
note: required by a bound in `is_send`
|
||||
--> $DIR/negated-auto-traits-error.rs:16:15
|
||||
|
|
||||
@ -67,7 +67,7 @@ LL | is_send(Box::new(TestType));
|
||||
|
|
||||
= note: the trait bound `Unique<dummy2::TestType>: Send` is not satisfied
|
||||
= note: required for `Unique<dummy2::TestType>` to implement `Send`
|
||||
= note: required because it appears within the type `Box<dummy2::TestType>`
|
||||
= note: required because it appears within the type `Box<TestType>`
|
||||
note: required by a bound in `is_send`
|
||||
--> $DIR/negated-auto-traits-error.rs:16:15
|
||||
|
|
||||
@ -87,13 +87,13 @@ LL | is_send(Box::new(Outer2(TestType)));
|
||||
| required by a bound introduced by this call
|
||||
|
|
||||
= help: within `Outer2<dummy3::TestType>`, the trait `Send` is not implemented for `dummy3::TestType`
|
||||
note: required because it appears within the type `Outer2<dummy3::TestType>`
|
||||
note: required because it appears within the type `Outer2<TestType>`
|
||||
--> $DIR/negated-auto-traits-error.rs:12:8
|
||||
|
|
||||
LL | struct Outer2<T>(T);
|
||||
| ^^^^^^
|
||||
= note: required for `Unique<Outer2<dummy3::TestType>>` to implement `Send`
|
||||
= note: required because it appears within the type `Box<Outer2<dummy3::TestType>>`
|
||||
= note: required because it appears within the type `Box<Outer2<TestType>>`
|
||||
note: required by a bound in `is_send`
|
||||
--> $DIR/negated-auto-traits-error.rs:16:15
|
||||
|
|
||||
|
Loading…
Reference in New Issue
Block a user