Use span label instead of note for cause in E0631

This commit is contained in:
Esteban Küber 2019-08-24 14:44:43 -07:00
parent 2d851b3318
commit 444bc3ca66
187 changed files with 1177 additions and 2058 deletions

View File

@ -657,19 +657,22 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
span,
E0277,
"{}",
message.unwrap_or_else(||
format!("the trait bound `{}` is not satisfied{}",
trait_ref.to_predicate(), post_message)
));
message.unwrap_or_else(|| format!(
"the trait bound `{}` is not satisfied{}",
trait_ref.to_predicate(),
post_message,
)));
let explanation =
if obligation.cause.code == ObligationCauseCode::MainFunctionType {
"consider using `()`, or a `Result`".to_owned()
} else {
format!("{}the trait `{}` is not implemented for `{}`",
format!(
"{}the trait `{}` is not implemented for `{}`",
pre_message,
trait_ref,
trait_ref.self_ty())
trait_ref.self_ty(),
)
};
if let Some(ref s) = label {
@ -1535,17 +1538,23 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
err.note("only the last element of a tuple may have a dynamically sized type");
}
ObligationCauseCode::ProjectionWf(data) => {
err.note(&format!("required so that the projection `{}` is well-formed",
data));
err.note(&format!(
"required so that the projection `{}` is well-formed",
data,
));
}
ObligationCauseCode::ReferenceOutlivesReferent(ref_ty) => {
err.note(&format!("required so that reference `{}` does not outlive its referent",
ref_ty));
err.note(&format!(
"required so that reference `{}` does not outlive its referent",
ref_ty,
));
}
ObligationCauseCode::ObjectTypeBound(object_ty, region) => {
err.note(&format!("required so that the lifetime bound of `{}` for `{}` \
is satisfied",
region, object_ty));
err.note(&format!(
"required so that the lifetime bound of `{}` for `{}` is satisfied",
region,
object_ty,
));
}
ObligationCauseCode::ItemObligation(item_def_id) => {
let item_name = tcx.def_path_str(item_def_id);
@ -1553,7 +1562,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
if let Some(sp) = tcx.hir().span_if_local(item_def_id) {
let sp = tcx.sess.source_map().def_span(sp);
err.span_note(sp, &msg);
err.span_label(sp, &msg);
} else {
err.note(&msg);
}

View File

@ -5,12 +5,9 @@ LL | f1(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'r, 's> fn(&'r (), &'s ()) -> _`
|
note: required by `f1`
--> $DIR/anonymous-higher-ranked-lifetime.rs:27:1
|
...
LL | fn f1<F>(_: F) where F: Fn(&(), &()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------------------------ required by `f1`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:2:5
@ -19,12 +16,9 @@ LL | f1(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&(), &()) -> _`
|
note: required by `f1`
--> $DIR/anonymous-higher-ranked-lifetime.rs:27:1
|
...
LL | fn f1<F>(_: F) where F: Fn(&(), &()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------------------------ required by `f1`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:4:5
@ -33,12 +27,9 @@ LL | f2(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'a, 'r> fn(&'a (), &'r ()) -> _`
|
note: required by `f2`
--> $DIR/anonymous-higher-ranked-lifetime.rs:28:1
|
...
LL | fn f2<F>(_: F) where F: for<'a> Fn(&'a (), &()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ----------------------------------------------- required by `f2`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:4:5
@ -47,12 +38,9 @@ LL | f2(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&'a (), &()) -> _`
|
note: required by `f2`
--> $DIR/anonymous-higher-ranked-lifetime.rs:28:1
|
...
LL | fn f2<F>(_: F) where F: for<'a> Fn(&'a (), &()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ----------------------------------------------- required by `f2`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:6:5
@ -61,12 +49,9 @@ LL | f3(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'r> fn(&(), &'r ()) -> _`
|
note: required by `f3`
--> $DIR/anonymous-higher-ranked-lifetime.rs:29:1
|
...
LL | fn f3<'a, F>(_: F) where F: Fn(&'a (), &()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------------------------------- required by `f3`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:6:5
@ -75,12 +60,9 @@ LL | f3(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&(), &()) -> _`
|
note: required by `f3`
--> $DIR/anonymous-higher-ranked-lifetime.rs:29:1
|
...
LL | fn f3<'a, F>(_: F) where F: Fn(&'a (), &()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------------------------------- required by `f3`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:8:5
@ -89,12 +71,9 @@ LL | f4(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'s, 'r> fn(&'s (), &'r ()) -> _`
|
note: required by `f4`
--> $DIR/anonymous-higher-ranked-lifetime.rs:30:1
|
...
LL | fn f4<F>(_: F) where F: for<'r> Fn(&(), &'r ()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ----------------------------------------------- required by `f4`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:8:5
@ -103,12 +82,9 @@ LL | f4(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&(), &'r ()) -> _`
|
note: required by `f4`
--> $DIR/anonymous-higher-ranked-lifetime.rs:30:1
|
...
LL | fn f4<F>(_: F) where F: for<'r> Fn(&(), &'r ()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ----------------------------------------------- required by `f4`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:10:5
@ -117,12 +93,9 @@ LL | f5(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'r> fn(&'r (), &'r ()) -> _`
|
note: required by `f5`
--> $DIR/anonymous-higher-ranked-lifetime.rs:31:1
|
...
LL | fn f5<F>(_: F) where F: for<'r> Fn(&'r (), &'r ()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| -------------------------------------------------- required by `f5`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:10:5
@ -131,12 +104,9 @@ LL | f5(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&'r (), &'r ()) -> _`
|
note: required by `f5`
--> $DIR/anonymous-higher-ranked-lifetime.rs:31:1
|
...
LL | fn f5<F>(_: F) where F: for<'r> Fn(&'r (), &'r ()) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| -------------------------------------------------- required by `f5`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:12:5
@ -145,12 +115,9 @@ LL | g1(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'r> fn(&'r (), std::boxed::Box<(dyn for<'s> std::ops::Fn(&'s ()) + 'static)>) -> _`
|
note: required by `g1`
--> $DIR/anonymous-higher-ranked-lifetime.rs:34:1
|
...
LL | fn g1<F>(_: F) where F: Fn(&(), Box<dyn Fn(&())>) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------------------------------------- required by `g1`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:12:5
@ -159,12 +126,9 @@ LL | g1(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&(), std::boxed::Box<(dyn for<'r> std::ops::Fn(&'r ()) + 'static)>) -> _`
|
note: required by `g1`
--> $DIR/anonymous-higher-ranked-lifetime.rs:34:1
|
...
LL | fn g1<F>(_: F) where F: Fn(&(), Box<dyn Fn(&())>) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------------------------------------- required by `g1`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:14:5
@ -173,12 +137,9 @@ LL | g2(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'r> fn(&'r (), for<'s> fn(&'s ())) -> _`
|
note: required by `g2`
--> $DIR/anonymous-higher-ranked-lifetime.rs:35:1
|
...
LL | fn g2<F>(_: F) where F: Fn(&(), fn(&())) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ---------------------------------------- required by `g2`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:14:5
@ -187,12 +148,9 @@ LL | g2(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&(), for<'r> fn(&'r ())) -> _`
|
note: required by `g2`
--> $DIR/anonymous-higher-ranked-lifetime.rs:35:1
|
...
LL | fn g2<F>(_: F) where F: Fn(&(), fn(&())) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ---------------------------------------- required by `g2`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:16:5
@ -201,12 +159,9 @@ LL | g3(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'s> fn(&'s (), std::boxed::Box<(dyn for<'r> std::ops::Fn(&'r ()) + 'static)>) -> _`
|
note: required by `g3`
--> $DIR/anonymous-higher-ranked-lifetime.rs:36:1
|
...
LL | fn g3<F>(_: F) where F: for<'s> Fn(&'s (), Box<dyn Fn(&())>) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------------------------------------------------ required by `g3`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:16:5
@ -215,12 +170,9 @@ LL | g3(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&'s (), std::boxed::Box<(dyn for<'r> std::ops::Fn(&'r ()) + 'static)>) -> _`
|
note: required by `g3`
--> $DIR/anonymous-higher-ranked-lifetime.rs:36:1
|
...
LL | fn g3<F>(_: F) where F: for<'s> Fn(&'s (), Box<dyn Fn(&())>) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ------------------------------------------------------------ required by `g3`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:18:5
@ -229,12 +181,9 @@ LL | g4(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `for<'s> fn(&'s (), for<'r> fn(&'r ())) -> _`
|
note: required by `g4`
--> $DIR/anonymous-higher-ranked-lifetime.rs:37:1
|
...
LL | fn g4<F>(_: F) where F: Fn(&(), for<'r> fn(&'r ())) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| --------------------------------------------------- required by `g4`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:18:5
@ -243,12 +192,9 @@ LL | g4(|_: (), _: ()| {});
| ^^ -------------- found signature of `fn((), ()) -> _`
| |
| expected signature of `fn(&(), for<'r> fn(&'r ())) -> _`
|
note: required by `g4`
--> $DIR/anonymous-higher-ranked-lifetime.rs:37:1
|
...
LL | fn g4<F>(_: F) where F: Fn(&(), for<'r> fn(&'r ())) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| --------------------------------------------------- required by `g4`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:20:5
@ -257,12 +203,9 @@ LL | h1(|_: (), _: (), _: (), _: ()| {});
| ^^ ---------------------------- found signature of `fn((), (), (), ()) -> _`
| |
| expected signature of `for<'r, 's> fn(&'r (), std::boxed::Box<(dyn for<'t0> std::ops::Fn(&'t0 ()) + 'static)>, &'s (), for<'t0, 't1> fn(&'t0 (), &'t1 ())) -> _`
|
note: required by `h1`
--> $DIR/anonymous-higher-ranked-lifetime.rs:40:1
|
...
LL | fn h1<F>(_: F) where F: Fn(&(), Box<dyn Fn(&())>, &(), fn(&(), &())) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| -------------------------------------------------------------------- required by `h1`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:20:5
@ -271,12 +214,9 @@ LL | h1(|_: (), _: (), _: (), _: ()| {});
| ^^ ---------------------------- found signature of `fn((), (), (), ()) -> _`
| |
| expected signature of `fn(&(), std::boxed::Box<(dyn for<'r> std::ops::Fn(&'r ()) + 'static)>, &(), for<'r, 's> fn(&'r (), &'s ())) -> _`
|
note: required by `h1`
--> $DIR/anonymous-higher-ranked-lifetime.rs:40:1
|
...
LL | fn h1<F>(_: F) where F: Fn(&(), Box<dyn Fn(&())>, &(), fn(&(), &())) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| -------------------------------------------------------------------- required by `h1`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:22:5
@ -285,12 +225,9 @@ LL | h2(|_: (), _: (), _: (), _: ()| {});
| ^^ ---------------------------- found signature of `fn((), (), (), ()) -> _`
| |
| expected signature of `for<'r, 't0> fn(&'r (), std::boxed::Box<(dyn for<'s> std::ops::Fn(&'s ()) + 'static)>, &'t0 (), for<'s, 't1> fn(&'s (), &'t1 ())) -> _`
|
note: required by `h2`
--> $DIR/anonymous-higher-ranked-lifetime.rs:41:1
|
...
LL | fn h2<F>(_: F) where F: for<'t0> Fn(&(), Box<dyn Fn(&())>, &'t0 (), fn(&(), &())) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| --------------------------------------------------------------------------------- required by `h2`
error[E0631]: type mismatch in closure arguments
--> $DIR/anonymous-higher-ranked-lifetime.rs:22:5
@ -299,12 +236,9 @@ LL | h2(|_: (), _: (), _: (), _: ()| {});
| ^^ ---------------------------- found signature of `fn((), (), (), ()) -> _`
| |
| expected signature of `fn(&(), std::boxed::Box<(dyn for<'r> std::ops::Fn(&'r ()) + 'static)>, &'t0 (), for<'r, 's> fn(&'r (), &'s ())) -> _`
|
note: required by `h2`
--> $DIR/anonymous-higher-ranked-lifetime.rs:41:1
|
...
LL | fn h2<F>(_: F) where F: for<'t0> Fn(&(), Box<dyn Fn(&())>, &'t0 (), fn(&(), &())) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| --------------------------------------------------------------------------------- required by `h2`
error: aborting due to 22 previous errors

View File

@ -1,14 +1,11 @@
error[E0277]: the trait bound `i32: Foo` is not satisfied
--> $DIR/associated-const-array-len.rs:5:16
|
LL | const ID: usize;
| ---------------- required by `Foo::ID`
...
LL | const X: [i32; <i32 as Foo>::ID] = [0, 1, 2];
| ^^^^^^^^^^^^^^^^ the trait `Foo` is not implemented for `i32`
|
note: required by `Foo::ID`
--> $DIR/associated-const-array-len.rs:2:5
|
LL | const ID: usize;
| ^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,15 +1,13 @@
error[E0277]: the trait bound `A: Foo` is not satisfied
--> $DIR/associated-const-type-parameter-arrays-2.rs:16:22
|
LL | const Y: usize;
| --------------- required by `Foo::Y`
...
LL | let _array = [4; <A as Foo>::Y];
| ^^^^^^^^^^^^^ the trait `Foo` is not implemented for `A`
|
= help: consider adding a `where A: Foo` bound
note: required by `Foo::Y`
--> $DIR/associated-const-type-parameter-arrays-2.rs:2:5
|
LL | const Y: usize;
| ^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,15 +1,13 @@
error[E0277]: the trait bound `A: Foo` is not satisfied
--> $DIR/associated-const-type-parameter-arrays.rs:16:23
|
LL | const Y: usize;
| --------------- required by `Foo::Y`
...
LL | let _array: [u32; <A as Foo>::Y];
| ^^^^^^^^^^^^^ the trait `Foo` is not implemented for `A`
|
= help: consider adding a `where A: Foo` bound
note: required by `Foo::Y`
--> $DIR/associated-const-type-parameter-arrays.rs:2:5
|
LL | const Y: usize;
| ^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -24,6 +24,9 @@ LL | | }
error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be sent between threads safely
--> $DIR/bad-bounds-on-assoc-in-trait.rs:37:1
|
LL | trait Case1 {
| ----------- required by `Case1`
...
LL | / fn assume_case1<T: Case1>() {
LL | |
LL | |
@ -35,15 +38,13 @@ LL | | }
|
= help: the trait `std::marker::Send` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item`
= help: consider adding a `where <<T as Case1>::C as std::iter::Iterator>::Item: std::marker::Send` bound
note: required by `Case1`
--> $DIR/bad-bounds-on-assoc-in-trait.rs:22:1
|
LL | trait Case1 {
| ^^^^^^^^^^^
error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be shared between threads safely
--> $DIR/bad-bounds-on-assoc-in-trait.rs:37:1
|
LL | trait Case1 {
| ----------- required by `Case1`
...
LL | / fn assume_case1<T: Case1>() {
LL | |
LL | |
@ -55,15 +56,13 @@ LL | | }
|
= help: the trait `std::marker::Sync` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item`
= help: consider adding a `where <<T as Case1>::C as std::iter::Iterator>::Item: std::marker::Sync` bound
note: required by `Case1`
--> $DIR/bad-bounds-on-assoc-in-trait.rs:22:1
|
LL | trait Case1 {
| ^^^^^^^^^^^
error[E0277]: `<_ as Lam<&'a u8>>::App` doesn't implement `std::fmt::Debug`
--> $DIR/bad-bounds-on-assoc-in-trait.rs:37:1
|
LL | trait Case1 {
| ----------- required by `Case1`
...
LL | / fn assume_case1<T: Case1>() {
LL | |
LL | |
@ -74,11 +73,6 @@ LL | | }
| |_^ `<_ as Lam<&'a u8>>::App` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
|
= help: the trait `for<'a> std::fmt::Debug` is not implemented for `<_ as Lam<&'a u8>>::App`
note: required by `Case1`
--> $DIR/bad-bounds-on-assoc-in-trait.rs:22:1
|
LL | trait Case1 {
| ^^^^^^^^^^^
error: aborting due to 5 previous errors

View File

@ -1,30 +1,26 @@
error[E0271]: type mismatch resolving `<ModelT as Vehicle>::Color == Blue`
--> $DIR/associated-types-binding-to-type-defined-in-supertrait.rs:31:10
|
LL | fn blue_car<C:Car<Color=Blue>>(c: C) {
| ------------------------------------ required by `blue_car`
...
LL | fn b() { blue_car(ModelT); }
| ^^^^^^^^ expected struct `Black`, found struct `Blue`
|
= note: expected type `Black`
found type `Blue`
note: required by `blue_car`
--> $DIR/associated-types-binding-to-type-defined-in-supertrait.rs:27:1
|
LL | fn blue_car<C:Car<Color=Blue>>(c: C) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0271]: type mismatch resolving `<ModelU as Vehicle>::Color == Black`
--> $DIR/associated-types-binding-to-type-defined-in-supertrait.rs:32:10
|
LL | fn black_car<C:Car<Color=Black>>(c: C) {
| -------------------------------------- required by `black_car`
...
LL | fn c() { black_car(ModelU); }
| ^^^^^^^^^ expected struct `Blue`, found struct `Black`
|
= note: expected type `Blue`
found type `Black`
note: required by `black_car`
--> $DIR/associated-types-binding-to-type-defined-in-supertrait.rs:24:1
|
LL | fn black_car<C:Car<Color=Black>>(c: C) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,15 +1,13 @@
error[E0277]: the trait bound `<G as GetToInt>::R: ToInt` is not satisfied
--> $DIR/associated-types-bound-failure.rs:17:5
|
LL | fn to_int(&self) -> isize;
| -------------------------- required by `ToInt::to_int`
...
LL | ToInt::to_int(&g.get())
| ^^^^^^^^^^^^^ the trait `ToInt` is not implemented for `<G as GetToInt>::R`
|
= help: consider adding a `where <G as GetToInt>::R: ToInt` bound
note: required by `ToInt::to_int`
--> $DIR/associated-types-bound-failure.rs:4:5
|
LL | fn to_int(&self) -> isize;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -10,16 +10,14 @@ LL | let _: Bar = x.boo();
error[E0271]: type mismatch resolving `<isize as Foo>::A == Bar`
--> $DIR/associated-types-eq-3.rs:38:5
|
LL | fn foo1<I: Foo<A=Bar>>(x: I) {
| ---------------------------- required by `foo1`
...
LL | foo1(a);
| ^^^^ expected usize, found struct `Bar`
|
= note: expected type `usize`
found type `Bar`
note: required by `foo1`
--> $DIR/associated-types-eq-3.rs:18:1
|
LL | fn foo1<I: Foo<A=Bar>>(x: I) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0271]: type mismatch resolving `<isize as Foo>::A == Bar`
--> $DIR/associated-types-eq-3.rs:41:9

View File

@ -1,124 +1,108 @@
error[E0271]: type mismatch resolving `for<'x> <UintStruct as TheTrait<&'x isize>>::A == &'x isize`
--> $DIR/associated-types-eq-hr.rs:82:5
|
LL | foo::<UintStruct>();
| ^^^^^^^^^^^^^^^^^ expected usize, found isize
|
= note: expected type `&usize`
found type `&isize`
note: required by `foo`
--> $DIR/associated-types-eq-hr.rs:44:1
|
LL | / fn foo<T>()
LL | | where T : for<'x> TheTrait<&'x isize, A = &'x isize>
LL | | {
LL | | // ok for IntStruct, but not UintStruct
LL | | }
| |_^
| |_- required by `foo`
...
LL | foo::<UintStruct>();
| ^^^^^^^^^^^^^^^^^ expected usize, found isize
|
= note: expected type `&usize`
found type `&isize`
error[E0271]: type mismatch resolving `for<'x> <IntStruct as TheTrait<&'x isize>>::A == &'x usize`
--> $DIR/associated-types-eq-hr.rs:86:5
|
LL | bar::<IntStruct>();
| ^^^^^^^^^^^^^^^^ expected isize, found usize
|
= note: expected type `&isize`
found type `&usize`
note: required by `bar`
--> $DIR/associated-types-eq-hr.rs:50:1
|
LL | / fn bar<T>()
LL | | where T : for<'x> TheTrait<&'x isize, A = &'x usize>
LL | | {
LL | | // ok for UintStruct, but not IntStruct
LL | | }
| |_^
| |_- required by `bar`
...
LL | bar::<IntStruct>();
| ^^^^^^^^^^^^^^^^ expected isize, found usize
|
= note: expected type `&isize`
found type `&usize`
error[E0277]: the trait bound `for<'x, 'y> Tuple: TheTrait<(&'x isize, &'y isize)>` is not satisfied
--> $DIR/associated-types-eq-hr.rs:91:5
|
LL | tuple_one::<Tuple>();
| ^^^^^^^^^^^^^^^^^^ the trait `for<'x, 'y> TheTrait<(&'x isize, &'y isize)>` is not implemented for `Tuple`
|
= help: the following implementations were found:
<Tuple as TheTrait<(&'a isize, &'a isize)>>
note: required by `tuple_one`
--> $DIR/associated-types-eq-hr.rs:56:1
|
LL | / fn tuple_one<T>()
LL | | where T : for<'x,'y> TheTrait<(&'x isize, &'y isize), A = &'x isize>
LL | | {
LL | | // not ok for tuple, two lifetimes and we pick first
LL | | }
| |_^
| |_- required by `tuple_one`
...
LL | tuple_one::<Tuple>();
| ^^^^^^^^^^^^^^^^^^ the trait `for<'x, 'y> TheTrait<(&'x isize, &'y isize)>` is not implemented for `Tuple`
|
= help: the following implementations were found:
<Tuple as TheTrait<(&'a isize, &'a isize)>>
error[E0271]: type mismatch resolving `for<'x, 'y> <Tuple as TheTrait<(&'x isize, &'y isize)>>::A == &'x isize`
--> $DIR/associated-types-eq-hr.rs:91:5
|
LL | tuple_one::<Tuple>();
| ^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'x, found concrete lifetime
|
note: required by `tuple_one`
--> $DIR/associated-types-eq-hr.rs:56:1
|
LL | / fn tuple_one<T>()
LL | | where T : for<'x,'y> TheTrait<(&'x isize, &'y isize), A = &'x isize>
LL | | {
LL | | // not ok for tuple, two lifetimes and we pick first
LL | | }
| |_^
| |_- required by `tuple_one`
...
LL | tuple_one::<Tuple>();
| ^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'x, found concrete lifetime
error[E0277]: the trait bound `for<'x, 'y> Tuple: TheTrait<(&'x isize, &'y isize)>` is not satisfied
--> $DIR/associated-types-eq-hr.rs:97:5
|
LL | tuple_two::<Tuple>();
| ^^^^^^^^^^^^^^^^^^ the trait `for<'x, 'y> TheTrait<(&'x isize, &'y isize)>` is not implemented for `Tuple`
|
= help: the following implementations were found:
<Tuple as TheTrait<(&'a isize, &'a isize)>>
note: required by `tuple_two`
--> $DIR/associated-types-eq-hr.rs:62:1
|
LL | / fn tuple_two<T>()
LL | | where T : for<'x,'y> TheTrait<(&'x isize, &'y isize), A = &'y isize>
LL | | {
LL | | // not ok for tuple, two lifetimes and we pick second
LL | | }
| |_^
| |_- required by `tuple_two`
...
LL | tuple_two::<Tuple>();
| ^^^^^^^^^^^^^^^^^^ the trait `for<'x, 'y> TheTrait<(&'x isize, &'y isize)>` is not implemented for `Tuple`
|
= help: the following implementations were found:
<Tuple as TheTrait<(&'a isize, &'a isize)>>
error[E0271]: type mismatch resolving `for<'x, 'y> <Tuple as TheTrait<(&'x isize, &'y isize)>>::A == &'y isize`
--> $DIR/associated-types-eq-hr.rs:97:5
|
LL | tuple_two::<Tuple>();
| ^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'x, found concrete lifetime
|
note: required by `tuple_two`
--> $DIR/associated-types-eq-hr.rs:62:1
|
LL | / fn tuple_two<T>()
LL | | where T : for<'x,'y> TheTrait<(&'x isize, &'y isize), A = &'y isize>
LL | | {
LL | | // not ok for tuple, two lifetimes and we pick second
LL | | }
| |_^
| |_- required by `tuple_two`
...
LL | tuple_two::<Tuple>();
| ^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'x, found concrete lifetime
error[E0277]: the trait bound `for<'x, 'y> Tuple: TheTrait<(&'x isize, &'y isize)>` is not satisfied
--> $DIR/associated-types-eq-hr.rs:107:5
|
LL | tuple_four::<Tuple>();
| ^^^^^^^^^^^^^^^^^^^ the trait `for<'x, 'y> TheTrait<(&'x isize, &'y isize)>` is not implemented for `Tuple`
|
= help: the following implementations were found:
<Tuple as TheTrait<(&'a isize, &'a isize)>>
note: required by `tuple_four`
--> $DIR/associated-types-eq-hr.rs:74:1
|
LL | / fn tuple_four<T>()
LL | | where T : for<'x,'y> TheTrait<(&'x isize, &'y isize)>
LL | | {
LL | | // not ok for tuple, two lifetimes, and lifetime matching is invariant
LL | | }
| |_^
| |_- required by `tuple_four`
...
LL | tuple_four::<Tuple>();
| ^^^^^^^^^^^^^^^^^^^ the trait `for<'x, 'y> TheTrait<(&'x isize, &'y isize)>` is not implemented for `Tuple`
|
= help: the following implementations were found:
<Tuple as TheTrait<(&'a isize, &'a isize)>>
error: aborting due to 7 previous errors

View File

@ -1,16 +1,14 @@
error[E0271]: type mismatch resolving `<Adapter<I> as Iterator>::Item == std::option::Option<T>`
--> $DIR/associated-types-issue-20346.rs:34:5
|
LL | fn is_iterator_of<A, I: Iterator<Item=A>>(_: &I) {}
| ------------------------------------------------ required by `is_iterator_of`
...
LL | is_iterator_of::<Option<T>, _>(&adapter);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected type parameter, found enum `std::option::Option`
|
= note: expected type `T`
found type `std::option::Option<T>`
note: required by `is_iterator_of`
--> $DIR/associated-types-issue-20346.rs:15:1
|
LL | fn is_iterator_of<A, I: Iterator<Item=A>>(_: &I) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -3,28 +3,24 @@ error[E0271]: type mismatch resolving `<T as Foo>::Y == i32`
|
LL | want_y(t);
| ^^^^^^ expected associated type, found i32
...
LL | fn want_y<T:Foo<Y=i32>>(t: &T) { }
| ------------------------------ required by `want_y`
|
= note: expected type `<T as Foo>::Y`
found type `i32`
note: required by `want_y`
--> $DIR/associated-types-multiple-types-one-trait.rs:44:1
|
LL | fn want_y<T:Foo<Y=i32>>(t: &T) { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0271]: type mismatch resolving `<T as Foo>::X == u32`
--> $DIR/associated-types-multiple-types-one-trait.rs:18:5
|
LL | want_x(t);
| ^^^^^^ expected associated type, found u32
...
LL | fn want_x<T:Foo<X=u32>>(t: &T) { }
| ------------------------------ required by `want_x`
|
= note: expected type `<T as Foo>::X`
found type `u32`
note: required by `want_x`
--> $DIR/associated-types-multiple-types-one-trait.rs:42:1
|
LL | fn want_x<T:Foo<X=u32>>(t: &T) { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,14 +1,10 @@
error[E0284]: type annotations required: cannot resolve `<Self as std::iter::Iterator>::Item == i32`
--> $DIR/associated-types-overridden-binding.rs:4:1
|
LL | trait Foo: Iterator<Item = i32> {}
| ------------------------------- required by `Foo`
LL | trait Bar: Foo<Item = u32> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: required by `Foo`
--> $DIR/associated-types-overridden-binding.rs:3:1
|
LL | trait Foo: Iterator<Item = i32> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -11,14 +11,11 @@ LL | f1(2i32, 4u32);
error[E0277]: the trait bound `u32: Foo` is not satisfied
--> $DIR/associated-types-path-2.rs:29:5
|
LL | pub fn f1<T: Foo>(a: T, x: T::A) {}
| -------------------------------- required by `f1`
...
LL | f1(2u32, 4u32);
| ^^ the trait `Foo` is not implemented for `u32`
|
note: required by `f1`
--> $DIR/associated-types-path-2.rs:13:1
|
LL | pub fn f1<T: Foo>(a: T, x: T::A) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `u32: Foo` is not satisfied
--> $DIR/associated-types-path-2.rs:29:5
@ -29,14 +26,11 @@ LL | f1(2u32, 4u32);
error[E0277]: the trait bound `u32: Foo` is not satisfied
--> $DIR/associated-types-path-2.rs:35:5
|
LL | pub fn f1<T: Foo>(a: T, x: T::A) {}
| -------------------------------- required by `f1`
...
LL | f1(2u32, 4i32);
| ^^ the trait `Foo` is not implemented for `u32`
|
note: required by `f1`
--> $DIR/associated-types-path-2.rs:13:1
|
LL | pub fn f1<T: Foo>(a: T, x: T::A) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `u32: Foo` is not satisfied
--> $DIR/associated-types-path-2.rs:35:5

View File

@ -1,16 +1,13 @@
error[E0271]: type mismatch resolving `for<'a> <&'a _ as Mirror>::Image == _`
--> $DIR/higher-ranked-projection.rs:25:5
|
LL | foo(());
| ^^^ expected bound lifetime parameter 'a, found concrete lifetime
|
note: required by `foo`
--> $DIR/higher-ranked-projection.rs:14:1
|
LL | / fn foo<U, T>(_t: T)
LL | | where for<'a> &'a T: Mirror<Image=U>
LL | | {}
| |__^
| |__- required by `foo`
...
LL | foo(());
| ^^^ expected bound lifetime parameter 'a, found concrete lifetime
error: aborting due to previous error

View File

@ -1,6 +1,9 @@
error[E0277]: `std::rc::Rc<()>` cannot be sent between threads safely
--> $DIR/async-fn-nonsend.rs:50:5
|
LL | fn assert_send(_: impl Send) {}
| ---------------------------- required by `assert_send`
...
LL | assert_send(local_dropped_before_await());
| ^^^^^^^^^^^ `std::rc::Rc<()>` cannot be sent between threads safely
|
@ -11,15 +14,13 @@ LL | assert_send(local_dropped_before_await());
= note: required because it appears within the type `std::future::GenFuture<[static generator@$DIR/async-fn-nonsend.rs:21:39: 26:2 {impl std::fmt::Debug, impl std::future::Future, ()}]>`
= note: required because it appears within the type `impl std::future::Future`
= note: required because it appears within the type `impl std::future::Future`
note: required by `assert_send`
--> $DIR/async-fn-nonsend.rs:47:1
|
LL | fn assert_send(_: impl Send) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `std::rc::Rc<()>` cannot be sent between threads safely
--> $DIR/async-fn-nonsend.rs:52:5
|
LL | fn assert_send(_: impl Send) {}
| ---------------------------- required by `assert_send`
...
LL | assert_send(non_send_temporary_in_match());
| ^^^^^^^^^^^ `std::rc::Rc<()>` cannot be sent between threads safely
|
@ -30,15 +31,13 @@ LL | assert_send(non_send_temporary_in_match());
= note: required because it appears within the type `std::future::GenFuture<[static generator@$DIR/async-fn-nonsend.rs:28:40: 37:2 {fn(impl std::fmt::Debug) -> std::option::Option<impl std::fmt::Debug> {std::option::Option::<impl std::fmt::Debug>::Some}, fn() -> impl std::fmt::Debug {non_send}, impl std::fmt::Debug, std::option::Option<impl std::fmt::Debug>, impl std::future::Future, ()}]>`
= note: required because it appears within the type `impl std::future::Future`
= note: required because it appears within the type `impl std::future::Future`
note: required by `assert_send`
--> $DIR/async-fn-nonsend.rs:47:1
|
LL | fn assert_send(_: impl Send) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `dyn std::fmt::Write` cannot be sent between threads safely
--> $DIR/async-fn-nonsend.rs:54:5
|
LL | fn assert_send(_: impl Send) {}
| ---------------------------- required by `assert_send`
...
LL | assert_send(non_sync_with_method_call());
| ^^^^^^^^^^^ `dyn std::fmt::Write` cannot be sent between threads safely
|
@ -51,15 +50,13 @@ LL | assert_send(non_sync_with_method_call());
= note: required because it appears within the type `std::future::GenFuture<[static generator@$DIR/async-fn-nonsend.rs:39:38: 45:2 for<'r, 's> {&'r mut std::fmt::Formatter<'s>, bool, impl std::future::Future, ()}]>`
= note: required because it appears within the type `impl std::future::Future`
= note: required because it appears within the type `impl std::future::Future`
note: required by `assert_send`
--> $DIR/async-fn-nonsend.rs:47:1
|
LL | fn assert_send(_: impl Send) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `*mut (dyn std::ops::Fn() + 'static)` cannot be shared between threads safely
--> $DIR/async-fn-nonsend.rs:54:5
|
LL | fn assert_send(_: impl Send) {}
| ---------------------------- required by `assert_send`
...
LL | assert_send(non_sync_with_method_call());
| ^^^^^^^^^^^ `*mut (dyn std::ops::Fn() + 'static)` cannot be shared between threads safely
|
@ -76,11 +73,6 @@ LL | assert_send(non_sync_with_method_call());
= note: required because it appears within the type `std::future::GenFuture<[static generator@$DIR/async-fn-nonsend.rs:39:38: 45:2 for<'r, 's> {&'r mut std::fmt::Formatter<'s>, bool, impl std::future::Future, ()}]>`
= note: required because it appears within the type `impl std::future::Future`
= note: required because it appears within the type `impl std::future::Future`
note: required by `assert_send`
--> $DIR/async-fn-nonsend.rs:47:1
|
LL | fn assert_send(_: impl Send) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 4 previous errors

View File

@ -10,17 +10,15 @@ LL | only_foo(x);
error[E0277]: the trait bound `{float}: Bar` is not satisfied
--> $DIR/type_inference.rs:25:5
|
LL | fn only_bar<T: Bar>(_x: T) { }
| -------------------------- required by `only_bar`
...
LL | only_bar(x);
| ^^^^^^^^ the trait `Bar` is not implemented for `{float}`
|
= help: the following implementations were found:
<i32 as Bar>
<u32 as Bar>
note: required by `only_bar`
--> $DIR/type_inference.rs:12:1
|
LL | fn only_bar<T: Bar>(_x: T) { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -39,53 +39,44 @@ LL | with_closure_expecting_fn_with_free_region(|x: fn(&'x u32), y| {});
error[E0631]: type mismatch in closure arguments
--> $DIR/expect-fn-supply-fn.rs:30:5
|
LL | with_closure_expecting_fn_with_free_region(|x: fn(&u32), y| {});
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------------- found signature of `fn(for<'r> fn(&'r u32), _) -> _`
| |
| expected signature of `fn(fn(&'a u32), &i32) -> _`
|
note: required by `with_closure_expecting_fn_with_free_region`
--> $DIR/expect-fn-supply-fn.rs:1:1
|
LL | / fn with_closure_expecting_fn_with_free_region<F>(_: F)
LL | | where F: for<'a> FnOnce(fn(&'a u32), &i32)
LL | | {
LL | | }
| |_^
| |_- required by `with_closure_expecting_fn_with_free_region`
...
LL | with_closure_expecting_fn_with_free_region(|x: fn(&u32), y| {});
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------------- found signature of `fn(for<'r> fn(&'r u32), _) -> _`
| |
| expected signature of `fn(fn(&'a u32), &i32) -> _`
error[E0631]: type mismatch in closure arguments
--> $DIR/expect-fn-supply-fn.rs:37:5
|
LL | with_closure_expecting_fn_with_bound_region(|x: fn(&'x u32), y| {});
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------------------- found signature of `fn(fn(&'x u32), _) -> _`
| |
| expected signature of `fn(for<'r> fn(&'r u32), &i32) -> _`
|
note: required by `with_closure_expecting_fn_with_bound_region`
--> $DIR/expect-fn-supply-fn.rs:6:1
|
LL | / fn with_closure_expecting_fn_with_bound_region<F>(_: F)
LL | | where F: FnOnce(fn(&u32), &i32)
LL | | {
LL | | }
| |_^
| |_- required by `with_closure_expecting_fn_with_bound_region`
...
LL | with_closure_expecting_fn_with_bound_region(|x: fn(&'x u32), y| {});
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------------------- found signature of `fn(fn(&'x u32), _) -> _`
| |
| expected signature of `fn(for<'r> fn(&'r u32), &i32) -> _`
error[E0631]: type mismatch in closure arguments
--> $DIR/expect-fn-supply-fn.rs:46:5
|
LL | with_closure_expecting_fn_with_bound_region(|x: Foo<'_>, y| {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --------------- found signature of `for<'r> fn(fn(&'r u32), _) -> _`
| |
| expected signature of `fn(for<'r> fn(&'r u32), &i32) -> _`
|
note: required by `with_closure_expecting_fn_with_bound_region`
--> $DIR/expect-fn-supply-fn.rs:6:1
|
LL | / fn with_closure_expecting_fn_with_bound_region<F>(_: F)
LL | | where F: FnOnce(fn(&u32), &i32)
LL | | {
LL | | }
| |_^
| |_- required by `with_closure_expecting_fn_with_bound_region`
...
LL | with_closure_expecting_fn_with_bound_region(|x: Foo<'_>, y| {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --------------- found signature of `for<'r> fn(fn(&'r u32), _) -> _`
| |
| expected signature of `fn(for<'r> fn(&'r u32), &i32) -> _`
error: aborting due to 5 previous errors

View File

@ -1,19 +1,16 @@
error[E0631]: type mismatch in closure arguments
--> $DIR/expect-infer-var-appearing-twice.rs:14:5
|
LL | with_closure(|x: u32, y: i32| {
| ^^^^^^^^^^^^ ---------------- found signature of `fn(u32, i32) -> _`
| |
| expected signature of `fn(_, _) -> _`
|
note: required by `with_closure`
--> $DIR/expect-infer-var-appearing-twice.rs:1:1
|
LL | / fn with_closure<F, A>(_: F)
LL | | where F: FnOnce(A, A)
LL | | {
LL | | }
| |_^
| |_- required by `with_closure`
...
LL | with_closure(|x: u32, y: i32| {
| ^^^^^^^^^^^^ ---------------- found signature of `fn(u32, i32) -> _`
| |
| expected signature of `fn(_, _) -> _`
error: aborting due to previous error

View File

@ -1,6 +1,9 @@
error[E0277]: `F` cannot be sent between threads safely
--> $DIR/closure-bounds-cant-promote-superkind-in-struct.rs:5:1
|
LL | struct X<F> where F: FnOnce() + 'static + Send {
| ---------------------------------------------- required by `X`
...
LL | / fn foo<F>(blk: F) -> X<F> where F: FnOnce() + 'static {
LL | |
LL | | return X { field: blk };
@ -9,11 +12,6 @@ LL | | }
|
= help: the trait `std::marker::Send` is not implemented for `F`
= help: consider adding a `where F: std::marker::Send` bound
note: required by `X`
--> $DIR/closure-bounds-cant-promote-superkind-in-struct.rs:1:1
|
LL | struct X<F> where F: FnOnce() + 'static + Send {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,16 +1,14 @@
error[E0277]: `F` cannot be shared between threads safely
--> $DIR/closure-bounds-subtype.rs:13:5
|
LL | fn take_const_owned<F>(_: F) where F: FnOnce() + Sync + Send {
| ------------------------------------------------------------ required by `take_const_owned`
...
LL | take_const_owned(f);
| ^^^^^^^^^^^^^^^^ `F` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `F`
= help: consider adding a `where F: std::marker::Sync` bound
note: required by `take_const_owned`
--> $DIR/closure-bounds-subtype.rs:4:1
|
LL | fn take_const_owned<F>(_: F) where F: FnOnce() + Sync + Send {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -14,32 +14,28 @@ LL | [5; Self::HOST_SIZE] == [6; 0]
error[E0277]: the size for values of type `A` cannot be known at compilation time
--> $DIR/too_generic_eval_ice.rs:7:13
|
LL | pub struct Foo<A, B>(A, B);
| --------------------------- required by `Foo`
...
LL | [5; Self::HOST_SIZE] == [6; 0]
| ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
= help: the trait `std::marker::Sized` is not implemented for `A`
= note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
= help: consider adding a `where A: std::marker::Sized` bound
note: required by `Foo`
--> $DIR/too_generic_eval_ice.rs:1:1
|
LL | pub struct Foo<A, B>(A, B);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the size for values of type `B` cannot be known at compilation time
--> $DIR/too_generic_eval_ice.rs:7:13
|
LL | pub struct Foo<A, B>(A, B);
| --------------------------- required by `Foo`
...
LL | [5; Self::HOST_SIZE] == [6; 0]
| ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
= help: the trait `std::marker::Sized` is not implemented for `B`
= note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
= help: consider adding a `where B: std::marker::Sized` bound
note: required by `Foo`
--> $DIR/too_generic_eval_ice.rs:1:1
|
LL | pub struct Foo<A, B>(A, B);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 3 previous errors

View File

@ -1,15 +1,13 @@
error[E0277]: the trait bound `!: ImplementedForUnitButNotNever` is not satisfied
--> $DIR/defaulted-never-note.rs:26:5
|
LL | fn foo<T: ImplementedForUnitButNotNever>(_t: T) {}
| ----------------------------------------------- required by `foo`
...
LL | foo(_x);
| ^^^ the trait `ImplementedForUnitButNotNever` is not implemented for `!`
|
= note: the trait is implemented for `()`. Possibly this error has been caused by changes to Rust's type-inference algorithm (see: https://github.com/rust-lang/rust/issues/48950 for more info). Consider whether you meant to use the type `()` here instead.
note: required by `foo`
--> $DIR/defaulted-never-note.rs:21:1
|
LL | fn foo<T: ImplementedForUnitButNotNever>(_t: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,41 +1,35 @@
error[E0277]: the trait bound `C: std::marker::Copy` is not satisfied
--> $DIR/deriving-copyclone.rs:31:5
|
LL | fn is_copy<T: Copy>(_: T) {}
| ------------------------- required by `is_copy`
...
LL | is_copy(B { a: 1, b: C });
| ^^^^^^^ the trait `std::marker::Copy` is not implemented for `C`
|
= note: required because of the requirements on the impl of `std::marker::Copy` for `B<C>`
note: required by `is_copy`
--> $DIR/deriving-copyclone.rs:18:1
|
LL | fn is_copy<T: Copy>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `C: std::clone::Clone` is not satisfied
--> $DIR/deriving-copyclone.rs:32:5
|
LL | fn is_clone<T: Clone>(_: T) {}
| --------------------------- required by `is_clone`
...
LL | is_clone(B { a: 1, b: C });
| ^^^^^^^^ the trait `std::clone::Clone` is not implemented for `C`
|
= note: required because of the requirements on the impl of `std::clone::Clone` for `B<C>`
note: required by `is_clone`
--> $DIR/deriving-copyclone.rs:19:1
|
LL | fn is_clone<T: Clone>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `D: std::marker::Copy` is not satisfied
--> $DIR/deriving-copyclone.rs:35:5
|
LL | fn is_copy<T: Copy>(_: T) {}
| ------------------------- required by `is_copy`
...
LL | is_copy(B { a: 1, b: D });
| ^^^^^^^ the trait `std::marker::Copy` is not implemented for `D`
|
= note: required because of the requirements on the impl of `std::marker::Copy` for `B<D>`
note: required by `is_copy`
--> $DIR/deriving-copyclone.rs:18:1
|
LL | fn is_copy<T: Copy>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 3 previous errors

View File

@ -1,6 +1,9 @@
error[E0277]: the trait bound `i8: Foo<i32>` is not satisfied
--> $DIR/issue-39802-show-5-trait-impls.rs:24:5
|
LL | fn bar(&self){}
| ------------- required by `Foo::bar`
...
LL | Foo::<i32>::bar(&1i8);
| ^^^^^^^^^^^^^^^ the trait `Foo<i32>` is not implemented for `i8`
|
@ -10,15 +13,13 @@ LL | Foo::<i32>::bar(&1i8);
<i8 as Foo<u32>>
<i8 as Foo<u64>>
<i8 as Foo<u8>>
note: required by `Foo::bar`
--> $DIR/issue-39802-show-5-trait-impls.rs:2:5
|
LL | fn bar(&self){}
| ^^^^^^^^^^^^^
error[E0277]: the trait bound `u8: Foo<i32>` is not satisfied
--> $DIR/issue-39802-show-5-trait-impls.rs:25:5
|
LL | fn bar(&self){}
| ------------- required by `Foo::bar`
...
LL | Foo::<i32>::bar(&1u8);
| ^^^^^^^^^^^^^^^ the trait `Foo<i32>` is not implemented for `u8`
|
@ -27,15 +28,13 @@ LL | Foo::<i32>::bar(&1u8);
<u8 as Foo<u16>>
<u8 as Foo<u32>>
<u8 as Foo<u64>>
note: required by `Foo::bar`
--> $DIR/issue-39802-show-5-trait-impls.rs:2:5
|
LL | fn bar(&self){}
| ^^^^^^^^^^^^^
error[E0277]: the trait bound `bool: Foo<i32>` is not satisfied
--> $DIR/issue-39802-show-5-trait-impls.rs:26:5
|
LL | fn bar(&self){}
| ------------- required by `Foo::bar`
...
LL | Foo::<i32>::bar(&true);
| ^^^^^^^^^^^^^^^ the trait `Foo<i32>` is not implemented for `bool`
|
@ -45,11 +44,6 @@ LL | Foo::<i32>::bar(&true);
<bool as Foo<u16>>
<bool as Foo<u32>>
and 2 others
note: required by `Foo::bar`
--> $DIR/issue-39802-show-5-trait-impls.rs:2:5
|
LL | fn bar(&self){}
| ^^^^^^^^^^^^^
error: aborting due to 3 previous errors

View File

@ -1,6 +1,9 @@
error[E0275]: overflow evaluating the requirement `J: std::marker::Send`
--> $DIR/recursion_limit.rs:34:5
|
LL | fn is_send<T:Send>() { }
| -------------------- required by `is_send`
...
LL | is_send::<A>();
| ^^^^^^^^^^^^
|
@ -14,11 +17,6 @@ LL | is_send::<A>();
= note: required because it appears within the type `C`
= note: required because it appears within the type `B`
= note: required because it appears within the type `A`
note: required by `is_send`
--> $DIR/recursion_limit.rs:31:1
|
LL | fn is_send<T:Send>() { }
| ^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,16 +1,14 @@
error[E0271]: type mismatch resolving `<i8 as Trait>::AssociatedType == u32`
--> $DIR/E0271.rs:10:5
|
LL | fn foo<T>(t: T) where T: Trait<AssociatedType=u32> {
| -------------------------------------------------- required by `foo`
...
LL | foo(3_i8);
| ^^^ expected reference, found u32
|
= note: expected type `&'static str`
found type `u32`
note: required by `foo`
--> $DIR/E0271.rs:3:1
|
LL | fn foo<T>(t: T) where T: Trait<AssociatedType=u32> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,6 +1,9 @@
error[E0275]: overflow evaluating the requirement `Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<Bar<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>: Foo`
--> $DIR/E0275.rs:5:1
|
LL | trait Foo {}
| --------- required by `Foo`
...
LL | impl<T> Foo for T where Bar<T>: Foo {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
@ -132,11 +135,6 @@ LL | impl<T> Foo for T where Bar<T>: Foo {}
= note: required because of the requirements on the impl of `Foo` for `Bar<Bar<Bar<T>>>`
= note: required because of the requirements on the impl of `Foo` for `Bar<Bar<T>>`
= note: required because of the requirements on the impl of `Foo` for `Bar<T>`
note: required by `Foo`
--> $DIR/E0275.rs:1:1
|
LL | trait Foo {}
| ^^^^^^^^^
error: aborting due to previous error

View File

@ -1,6 +1,9 @@
error[E0277]: `*const u8` cannot be sent between threads safely
--> $DIR/E0277-2.rs:16:5
|
LL | fn is_send<T: Send>() { }
| --------------------- required by `is_send`
...
LL | is_send::<Foo>();
| ^^^^^^^^^^^^^^ `*const u8` cannot be sent between threads safely
|
@ -8,11 +11,6 @@ LL | is_send::<Foo>();
= note: required because it appears within the type `Baz`
= note: required because it appears within the type `Bar`
= note: required because it appears within the type `Foo`
note: required by `is_send`
--> $DIR/E0277-2.rs:13:1
|
LL | fn is_send<T: Send>() { }
| ^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -13,14 +13,11 @@ LL | fn f(p: Path) { }
error[E0277]: the trait bound `i32: Foo` is not satisfied
--> $DIR/E0277.rs:17:5
|
LL | fn some_func<T: Foo>(foo: T) {
| ---------------------------- required by `some_func`
...
LL | some_func(5i32);
| ^^^^^^^^^ the trait `Foo` is not implemented for `i32`
|
note: required by `some_func`
--> $DIR/E0277.rs:9:1
|
LL | fn some_func<T: Foo>(foo: T) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,14 +1,11 @@
error[E0283]: type annotations required: cannot resolve `_: Generator`
--> $DIR/E0283.rs:18:21
|
LL | fn create() -> u32;
| ------------------- required by `Generator::create`
...
LL | let cont: u32 = Generator::create();
| ^^^^^^^^^^^^^^^^^
|
note: required by `Generator::create`
--> $DIR/E0283.rs:2:5
|
LL | fn create() -> u32;
| ^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,14 +1,11 @@
error[E0277]: the trait bound `std::string::String: std::marker::Copy` is not satisfied
--> $DIR/error-should-say-copy-not-pod.rs:6:5
|
LL | fn check_bound<T:Copy>(_: T) {}
| ---------------------------- required by `check_bound`
...
LL | check_bound("nocopy".to_string());
| ^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::string::String`
|
note: required by `check_bound`
--> $DIR/error-should-say-copy-not-pod.rs:3:1
|
LL | fn check_bound<T:Copy>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,28 +1,24 @@
error[E0277]: `A` cannot be shared between threads safely
--> $DIR/extern-types-not-sync-send.rs:13:5
|
LL | fn assert_sync<T: ?Sized + Sync>() { }
| ---------------------------------- required by `assert_sync`
...
LL | assert_sync::<A>();
| ^^^^^^^^^^^^^^^^ `A` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `A`
note: required by `assert_sync`
--> $DIR/extern-types-not-sync-send.rs:9:1
|
LL | fn assert_sync<T: ?Sized + Sync>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `A` cannot be sent between threads safely
--> $DIR/extern-types-not-sync-send.rs:16:5
|
LL | fn assert_send<T: ?Sized + Send>() { }
| ---------------------------------- required by `assert_send`
...
LL | assert_send::<A>();
| ^^^^^^^^^^^^^^^^ `A` cannot be sent between threads safely
|
= help: the trait `std::marker::Send` is not implemented for `A`
note: required by `assert_send`
--> $DIR/extern-types-not-sync-send.rs:10:1
|
LL | fn assert_send<T: ?Sized + Send>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,50 +1,47 @@
error[E0277]: the size for values of type `A` cannot be known at compilation time
--> $DIR/extern-types-unsized.rs:22:5
|
LL | fn assert_sized<T>() { }
| -------------------- required by `assert_sized`
...
LL | assert_sized::<A>();
| ^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
= help: the trait `std::marker::Sized` is not implemented for `A`
= note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
note: required by `assert_sized`
--> $DIR/extern-types-unsized.rs:19:1
|
LL | fn assert_sized<T>() { }
| ^^^^^^^^^^^^^^^^^^^^
error[E0277]: the size for values of type `A` cannot be known at compilation time
--> $DIR/extern-types-unsized.rs:25:5
|
LL | fn assert_sized<T>() { }
| -------------------- required by `assert_sized`
...
LL | assert_sized::<Foo>();
| ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
= help: within `Foo`, the trait `std::marker::Sized` is not implemented for `A`
= note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
= note: required because it appears within the type `Foo`
note: required by `assert_sized`
--> $DIR/extern-types-unsized.rs:19:1
|
LL | fn assert_sized<T>() { }
| ^^^^^^^^^^^^^^^^^^^^
error[E0277]: the size for values of type `A` cannot be known at compilation time
--> $DIR/extern-types-unsized.rs:28:5
|
LL | fn assert_sized<T>() { }
| -------------------- required by `assert_sized`
...
LL | assert_sized::<Bar<A>>();
| ^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
= help: within `Bar<A>`, the trait `std::marker::Sized` is not implemented for `A`
= note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
= note: required because it appears within the type `Bar<A>`
note: required by `assert_sized`
--> $DIR/extern-types-unsized.rs:19:1
|
LL | fn assert_sized<T>() { }
| ^^^^^^^^^^^^^^^^^^^^
error[E0277]: the size for values of type `A` cannot be known at compilation time
--> $DIR/extern-types-unsized.rs:31:5
|
LL | fn assert_sized<T>() { }
| -------------------- required by `assert_sized`
...
LL | assert_sized::<Bar<Bar<A>>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
@ -52,11 +49,6 @@ LL | assert_sized::<Bar<Bar<A>>>();
= note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
= note: required because it appears within the type `Bar<A>`
= note: required because it appears within the type `Bar<Bar<A>>`
note: required by `assert_sized`
--> $DIR/extern-types-unsized.rs:19:1
|
LL | fn assert_sized<T>() { }
| ^^^^^^^^^^^^^^^^^^^^
error: aborting due to 4 previous errors

View File

@ -1,16 +1,14 @@
error[E0277]: expected a `std::ops::Fn<()>` closure, found `extern "C" fn() {f}`
--> $DIR/extern-wrong-value-type.rs:9:5
|
LL | fn is_fn<F>(_: F) where F: Fn() {}
| ------------------------------- required by `is_fn`
...
LL | is_fn(f);
| ^^^^^ expected an `Fn<()>` closure, found `extern "C" fn() {f}`
|
= help: the trait `std::ops::Fn<()>` is not implemented for `extern "C" fn() {f}`
= note: wrap the `extern "C" fn() {f}` in a closure with no arguments: `|| { /* code */ }
note: required by `is_fn`
--> $DIR/extern-wrong-value-type.rs:4:1
|
LL | fn is_fn<F>(_: F) where F: Fn() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,6 +1,9 @@
error[E0277]: `*mut (dyn std::ops::Fn() + 'static)` cannot be shared between threads safely
--> $DIR/send-sync.rs:8:5
|
LL | fn send<T: Send>(_: T) {}
| ---------------------- required by `send`
...
LL | send(format_args!("{:?}", c));
| ^^^^ `*mut (dyn std::ops::Fn() + 'static)` cannot be shared between threads safely
|
@ -12,15 +15,13 @@ LL | send(format_args!("{:?}", c));
= note: required because it appears within the type `[std::fmt::ArgumentV1<'_>]`
= note: required because of the requirements on the impl of `std::marker::Send` for `&[std::fmt::ArgumentV1<'_>]`
= note: required because it appears within the type `std::fmt::Arguments<'_>`
note: required by `send`
--> $DIR/send-sync.rs:1:1
|
LL | fn send<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `*mut (dyn std::ops::Fn() + 'static)` cannot be shared between threads safely
--> $DIR/send-sync.rs:9:5
|
LL | fn sync<T: Sync>(_: T) {}
| ---------------------- required by `sync`
...
LL | sync(format_args!("{:?}", c));
| ^^^^ `*mut (dyn std::ops::Fn() + 'static)` cannot be shared between threads safely
|
@ -32,11 +33,6 @@ LL | sync(format_args!("{:?}", c));
= note: required because it appears within the type `[std::fmt::ArgumentV1<'_>]`
= note: required because it appears within the type `&[std::fmt::ArgumentV1<'_>]`
= note: required because it appears within the type `std::fmt::Arguments<'_>`
note: required by `sync`
--> $DIR/send-sync.rs:2:1
|
LL | fn sync<T: Sync>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -28,15 +28,13 @@ LL | let _: () = (box || -> isize { unimplemented!() }) as Box<dyn FnMut() -
error[E0277]: expected a `std::ops::Fn<(isize,)>` closure, found `{integer}`
--> $DIR/fn-trait-formatting.rs:19:5
|
LL | fn needs_fn<F>(x: F) where F: Fn(isize) -> isize {}
| ------------------------------------------------ required by `needs_fn`
...
LL | needs_fn(1);
| ^^^^^^^^ expected an `Fn<(isize,)>` closure, found `{integer}`
|
= help: the trait `std::ops::Fn<(isize,)>` is not implemented for `{integer}`
note: required by `needs_fn`
--> $DIR/fn-trait-formatting.rs:3:1
|
LL | fn needs_fn<F>(x: F) where F: Fn(isize) -> isize {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 4 previous errors

View File

@ -16,20 +16,18 @@ LL | | })
error[E0271]: type mismatch resolving `<[generator@$DIR/generator-yielding-or-returning-itself.rs:28:33: 32:6 _] as std::ops::Generator>::Yield == [generator@$DIR/generator-yielding-or-returning-itself.rs:28:33: 32:6 _]`
--> $DIR/generator-yielding-or-returning-itself.rs:28:5
|
LL | want_cyclic_generator_yield(|| {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cyclic type of infinite size
|
= note: closures cannot capture themselves or take themselves as argument;
this error may be the result of a recent compiler bug-fix,
see https://github.com/rust-lang/rust/issues/46062 for more details
note: required by `want_cyclic_generator_yield`
--> $DIR/generator-yielding-or-returning-itself.rs:22:1
|
LL | / pub fn want_cyclic_generator_yield<T>(_: T)
LL | | where T: Generator<Yield = T, Return = ()>
LL | | {
LL | | }
| |_^
| |_- required by `want_cyclic_generator_yield`
...
LL | want_cyclic_generator_yield(|| {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cyclic type of infinite size
|
= note: closures cannot capture themselves or take themselves as argument;
this error may be the result of a recent compiler bug-fix,
see https://github.com/rust-lang/rust/issues/46062 for more details
error: aborting due to 2 previous errors

View File

@ -1,32 +1,28 @@
error[E0277]: `std::cell::Cell<i32>` cannot be shared between threads safely
--> $DIR/not-send-sync.rs:16:5
|
LL | fn assert_send<T: Send>(_: T) {}
| ----------------------------- required by `main::assert_send`
...
LL | assert_send(|| {
| ^^^^^^^^^^^ `std::cell::Cell<i32>` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `std::cell::Cell<i32>`
= note: required because of the requirements on the impl of `std::marker::Send` for `&std::cell::Cell<i32>`
= note: required because it appears within the type `[generator@$DIR/not-send-sync.rs:16:17: 20:6 a:&std::cell::Cell<i32> _]`
note: required by `main::assert_send`
--> $DIR/not-send-sync.rs:7:5
|
LL | fn assert_send<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `std::cell::Cell<i32>` cannot be shared between threads safely
--> $DIR/not-send-sync.rs:9:5
|
LL | fn assert_sync<T: Sync>(_: T) {}
| ----------------------------- required by `main::assert_sync`
...
LL | assert_sync(|| {
| ^^^^^^^^^^^ `std::cell::Cell<i32>` cannot be shared between threads safely
|
= help: within `[generator@$DIR/not-send-sync.rs:9:17: 13:6 {std::cell::Cell<i32>, ()}]`, the trait `std::marker::Sync` is not implemented for `std::cell::Cell<i32>`
= note: required because it appears within the type `{std::cell::Cell<i32>, ()}`
= note: required because it appears within the type `[generator@$DIR/not-send-sync.rs:9:17: 13:6 {std::cell::Cell<i32>, ()}]`
note: required by `main::assert_sync`
--> $DIR/not-send-sync.rs:6:5
|
LL | fn assert_sync<T: Sync>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,14 +1,11 @@
error[E0277]: the trait bound `[static generator@$DIR/static-not-unpin.rs:11:25: 13:6 _]: std::marker::Unpin` is not satisfied
--> $DIR/static-not-unpin.rs:14:5
|
LL | fn assert_unpin<T: Unpin>(_: T) {
| ------------------------------- required by `assert_unpin`
...
LL | assert_unpin(generator);
| ^^^^^^^^^^^^ the trait `std::marker::Unpin` is not implemented for `[static generator@$DIR/static-not-unpin.rs:11:25: 13:6 _]`
|
note: required by `assert_unpin`
--> $DIR/static-not-unpin.rs:7:1
|
LL | fn assert_unpin<T: Unpin>(_: T) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,19 +1,17 @@
error[E0277]: the trait bound `for<'a, 'b> SomeStruct: Foo<(&'a isize, &'b isize)>` is not satisfied
--> $DIR/hrtb-conflate-regions.rs:27:10
|
LL | fn b() { want_foo2::<SomeStruct>(); }
| ^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'a, 'b> Foo<(&'a isize, &'b isize)>` is not implemented for `SomeStruct`
|
= help: the following implementations were found:
<SomeStruct as Foo<(&'a isize, &'a isize)>>
note: required by `want_foo2`
--> $DIR/hrtb-conflate-regions.rs:8:1
|
LL | / fn want_foo2<T>()
LL | | where T : for<'a,'b> Foo<(&'a isize, &'b isize)>
LL | | {
LL | | }
| |_^
| |_- required by `want_foo2`
...
LL | fn b() { want_foo2::<SomeStruct>(); }
| ^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'a, 'b> Foo<(&'a isize, &'b isize)>` is not implemented for `SomeStruct`
|
= help: the following implementations were found:
<SomeStruct as Foo<(&'a isize, &'a isize)>>
error: aborting due to previous error

View File

@ -1,20 +1,18 @@
error[E0277]: the trait bound `(): Trait<for<'b> fn(&'b u32)>` is not satisfied
--> $DIR/hrtb-exists-forall-trait-contravariant.rs:34:5
|
LL | foo::<()>();
| ^^^^^^^^^ the trait `Trait<for<'b> fn(&'b u32)>` is not implemented for `()`
|
= help: the following implementations were found:
<() as Trait<fn(&'a u32)>>
note: required by `foo`
--> $DIR/hrtb-exists-forall-trait-contravariant.rs:8:1
|
LL | / fn foo<T>()
LL | | where
LL | | T: Trait<for<'b> fn(&'b u32)>,
LL | | {
LL | | }
| |_^
| |_- required by `foo`
...
LL | foo::<()>();
| ^^^^^^^^^ the trait `Trait<for<'b> fn(&'b u32)>` is not implemented for `()`
|
= help: the following implementations were found:
<() as Trait<fn(&'a u32)>>
error: aborting due to previous error

View File

@ -1,20 +1,18 @@
error[E0277]: the trait bound `(): Trait<for<'b> fn(fn(&'b u32))>` is not satisfied
--> $DIR/hrtb-exists-forall-trait-covariant.rs:36:5
|
LL | foo::<()>();
| ^^^^^^^^^ the trait `Trait<for<'b> fn(fn(&'b u32))>` is not implemented for `()`
|
= help: the following implementations were found:
<() as Trait<fn(fn(&'a u32))>>
note: required by `foo`
--> $DIR/hrtb-exists-forall-trait-covariant.rs:8:1
|
LL | / fn foo<T>()
LL | | where
LL | | T: Trait<for<'b> fn(fn(&'b u32))>,
LL | | {
LL | | }
| |_^
| |_- required by `foo`
...
LL | foo::<()>();
| ^^^^^^^^^ the trait `Trait<for<'b> fn(fn(&'b u32))>` is not implemented for `()`
|
= help: the following implementations were found:
<() as Trait<fn(fn(&'a u32))>>
error: aborting due to previous error

View File

@ -1,20 +1,18 @@
error[E0277]: the trait bound `(): Trait<for<'b> fn(std::cell::Cell<&'b u32>)>` is not satisfied
--> $DIR/hrtb-exists-forall-trait-invariant.rs:28:5
|
LL | foo::<()>();
| ^^^^^^^^^ the trait `Trait<for<'b> fn(std::cell::Cell<&'b u32>)>` is not implemented for `()`
|
= help: the following implementations were found:
<() as Trait<fn(std::cell::Cell<&'a u32>)>>
note: required by `foo`
--> $DIR/hrtb-exists-forall-trait-invariant.rs:10:1
|
LL | / fn foo<T>()
LL | | where
LL | | T: Trait<for<'b> fn(Cell<&'b u32>)>,
LL | | {
LL | | }
| |_^
| |_- required by `foo`
...
LL | foo::<()>();
| ^^^^^^^^^ the trait `Trait<for<'b> fn(std::cell::Cell<&'b u32>)>` is not implemented for `()`
|
= help: the following implementations were found:
<() as Trait<fn(std::cell::Cell<&'a u32>)>>
error: aborting due to previous error

View File

@ -1,18 +1,16 @@
error[E0277]: the trait bound `for<'ccx> B: Bar<'ccx>` is not satisfied
--> $DIR/hrtb-higher-ranker-supertraits-transitive.rs:47:5
|
LL | want_bar_for_any_ccx(b);
| ^^^^^^^^^^^^^^^^^^^^ the trait `for<'ccx> Bar<'ccx>` is not implemented for `B`
|
= help: consider adding a `where for<'ccx> B: Bar<'ccx>` bound
note: required by `want_bar_for_any_ccx`
--> $DIR/hrtb-higher-ranker-supertraits-transitive.rs:31:1
|
LL | / fn want_bar_for_any_ccx<B>(b: &B)
LL | | where B : for<'ccx> Bar<'ccx>
LL | | {
LL | | }
| |_^
| |_- required by `want_bar_for_any_ccx`
...
LL | want_bar_for_any_ccx(b);
| ^^^^^^^^^^^^^^^^^^^^ the trait `for<'ccx> Bar<'ccx>` is not implemented for `B`
|
= help: consider adding a `where for<'ccx> B: Bar<'ccx>` bound
error: aborting due to previous error

View File

@ -1,31 +1,25 @@
error[E0277]: the trait bound `for<'tcx> F: Foo<'tcx>` is not satisfied
--> $DIR/hrtb-higher-ranker-supertraits.rs:18:5
|
LL | want_foo_for_any_tcx(f);
| ^^^^^^^^^^^^^^^^^^^^ the trait `for<'tcx> Foo<'tcx>` is not implemented for `F`
|
= help: consider adding a `where for<'tcx> F: Foo<'tcx>` bound
note: required by `want_foo_for_any_tcx`
--> $DIR/hrtb-higher-ranker-supertraits.rs:21:1
|
LL | want_foo_for_any_tcx(f);
| ^^^^^^^^^^^^^^^^^^^^ the trait `for<'tcx> Foo<'tcx>` is not implemented for `F`
...
LL | / fn want_foo_for_any_tcx<F>(f: &F)
LL | | where F : for<'tcx> Foo<'tcx>
LL | | {
LL | | want_foo_for_some_tcx(f);
LL | | want_foo_for_any_tcx(f);
LL | | }
| |_^
| |_- required by `want_foo_for_any_tcx`
|
= help: consider adding a `where for<'tcx> F: Foo<'tcx>` bound
error[E0277]: the trait bound `for<'ccx> B: Bar<'ccx>` is not satisfied
--> $DIR/hrtb-higher-ranker-supertraits.rs:35:5
|
LL | want_bar_for_any_ccx(b);
| ^^^^^^^^^^^^^^^^^^^^ the trait `for<'ccx> Bar<'ccx>` is not implemented for `B`
|
= help: consider adding a `where for<'ccx> B: Bar<'ccx>` bound
note: required by `want_bar_for_any_ccx`
--> $DIR/hrtb-higher-ranker-supertraits.rs:38:1
|
LL | want_bar_for_any_ccx(b);
| ^^^^^^^^^^^^^^^^^^^^ the trait `for<'ccx> Bar<'ccx>` is not implemented for `B`
...
LL | / fn want_bar_for_any_ccx<B>(b: &B)
LL | | where B : for<'ccx> Bar<'ccx>
LL | | {
@ -33,7 +27,9 @@ LL | | want_foo_for_some_tcx(b);
... |
LL | | want_bar_for_any_ccx(b);
LL | | }
| |_^
| |_- required by `want_bar_for_any_ccx`
|
= help: consider adding a `where for<'ccx> B: Bar<'ccx>` bound
error: aborting due to 2 previous errors

View File

@ -1,36 +1,32 @@
error[E0277]: the trait bound `for<'a> StaticInt: Foo<&'a isize>` is not satisfied
--> $DIR/hrtb-just-for-static.rs:24:5
|
LL | want_hrtb::<StaticInt>()
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'a> Foo<&'a isize>` is not implemented for `StaticInt`
|
= help: the following implementations were found:
<StaticInt as Foo<&'static isize>>
note: required by `want_hrtb`
--> $DIR/hrtb-just-for-static.rs:8:1
|
LL | / fn want_hrtb<T>()
LL | | where T : for<'a> Foo<&'a isize>
LL | | {
LL | | }
| |_^
| |_- required by `want_hrtb`
...
LL | want_hrtb::<StaticInt>()
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'a> Foo<&'a isize>` is not implemented for `StaticInt`
|
= help: the following implementations were found:
<StaticInt as Foo<&'static isize>>
error[E0277]: the trait bound `for<'a> &'a u32: Foo<&'a isize>` is not satisfied
--> $DIR/hrtb-just-for-static.rs:30:5
|
LL | want_hrtb::<&'a u32>()
| ^^^^^^^^^^^^^^^^^^^^ the trait `for<'a> Foo<&'a isize>` is not implemented for `&'a u32`
|
= help: the following implementations were found:
<&'a u32 as Foo<&'a isize>>
note: required by `want_hrtb`
--> $DIR/hrtb-just-for-static.rs:8:1
|
LL | / fn want_hrtb<T>()
LL | | where T : for<'a> Foo<&'a isize>
LL | | {
LL | | }
| |_^
| |_- required by `want_hrtb`
...
LL | want_hrtb::<&'a u32>()
| ^^^^^^^^^^^^^^^^^^^^ the trait `for<'a> Foo<&'a isize>` is not implemented for `&'a u32`
|
= help: the following implementations were found:
<&'a u32 as Foo<&'a isize>>
error: aborting due to 2 previous errors

View File

@ -1,16 +1,14 @@
error[E0277]: the trait bound `for<'r> fn(&'r i32): Foo` is not satisfied
--> $DIR/issue-46989.rs:40:5
|
LL | fn assert_foo<T: Foo>() {}
| ----------------------- required by `assert_foo`
...
LL | assert_foo::<fn(&i32)>();
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `Foo` is not implemented for `for<'r> fn(&'r i32)`
|
= help: the following implementations were found:
<fn(A) as Foo>
note: required by `assert_foo`
--> $DIR/issue-46989.rs:37:1
|
LL | fn assert_foo<T: Foo>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -72,16 +72,14 @@ LL | | }
error[E0277]: `std::rc::Rc<std::string::String>` cannot be sent between threads safely
--> $DIR/auto-trait-leak.rs:15:5
|
LL | fn send<T: Send>(_: T) {}
| ---------------------- required by `send`
...
LL | send(cycle2().clone());
| ^^^^ `std::rc::Rc<std::string::String>` cannot be sent between threads safely
|
= help: within `impl std::clone::Clone`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::string::String>`
= note: required because it appears within the type `impl std::clone::Clone`
note: required by `send`
--> $DIR/auto-trait-leak.rs:4:1
|
LL | fn send<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 3 previous errors

View File

@ -1,32 +1,28 @@
error[E0277]: `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
--> $DIR/auto-trait-leak2.rs:13:5
|
LL | fn send<T: Send>(_: T) {}
| ---------------------- required by `send`
...
LL | send(before());
| ^^^^ `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
|
= help: within `impl std::ops::Fn<(i32,)>`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::Cell<i32>>`
= note: required because it appears within the type `[closure@$DIR/auto-trait-leak2.rs:7:5: 7:22 p:std::rc::Rc<std::cell::Cell<i32>>]`
= note: required because it appears within the type `impl std::ops::Fn<(i32,)>`
note: required by `send`
--> $DIR/auto-trait-leak2.rs:10:1
|
LL | fn send<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
--> $DIR/auto-trait-leak2.rs:16:5
|
LL | fn send<T: Send>(_: T) {}
| ---------------------- required by `send`
...
LL | send(after());
| ^^^^ `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
|
= help: within `impl std::ops::Fn<(i32,)>`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::Cell<i32>>`
= note: required because it appears within the type `[closure@$DIR/auto-trait-leak2.rs:24:5: 24:22 p:std::rc::Rc<std::cell::Cell<i32>>]`
= note: required because it appears within the type `impl std::ops::Fn<(i32,)>`
note: required by `send`
--> $DIR/auto-trait-leak2.rs:10:1
|
LL | fn send<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,14 +1,11 @@
error[E0277]: the trait bound `foo::issue_1920::S: std::clone::Clone` is not satisfied
--> $DIR/issue-1920-1.rs:12:5
|
LL | fn assert_clone<T>() where T : Clone { }
| ------------------------------------ required by `assert_clone`
...
LL | assert_clone::<foo::issue_1920::S>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::clone::Clone` is not implemented for `foo::issue_1920::S`
|
note: required by `assert_clone`
--> $DIR/issue-1920-1.rs:9:1
|
LL | fn assert_clone<T>() where T : Clone { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,14 +1,11 @@
error[E0277]: the trait bound `bar::S: std::clone::Clone` is not satisfied
--> $DIR/issue-1920-2.rs:10:5
|
LL | fn assert_clone<T>() where T : Clone { }
| ------------------------------------ required by `assert_clone`
...
LL | assert_clone::<bar::S>();
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `std::clone::Clone` is not implemented for `bar::S`
|
note: required by `assert_clone`
--> $DIR/issue-1920-2.rs:7:1
|
LL | fn assert_clone<T>() where T : Clone { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,14 +1,11 @@
error[E0277]: the trait bound `issue_1920::S: std::clone::Clone` is not satisfied
--> $DIR/issue-1920-3.rs:14:5
|
LL | fn assert_clone<T>() where T : Clone { }
| ------------------------------------ required by `assert_clone`
...
LL | assert_clone::<foo::issue_1920::S>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::clone::Clone` is not implemented for `issue_1920::S`
|
note: required by `assert_clone`
--> $DIR/issue-1920-3.rs:11:1
|
LL | fn assert_clone<T>() where T : Clone { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,6 +1,9 @@
error[E0277]: the size for values of type `Self` cannot be known at compilation time
--> $DIR/issue-20005.rs:8:5
|
LL | trait From<Src> {
| --------------- required by `From`
...
LL | / fn to<Dst>(
LL | | self
LL | | ) -> <Dst as From<Self>>::Result where Dst: From<Self> {
@ -11,11 +14,6 @@ LL | | }
= help: the trait `std::marker::Sized` is not implemented for `Self`
= note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
= help: consider adding a `where Self: std::marker::Sized` bound
note: required by `From`
--> $DIR/issue-20005.rs:1:1
|
LL | trait From<Src> {
| ^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -9,6 +9,9 @@ LL | struct NoData<T>;
error[E0275]: overflow evaluating the requirement `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>: Foo`
--> $DIR/issue-20413.rs:8:1
|
LL | trait Foo {
| --------- required by `Foo`
...
LL | / impl<T> Foo for T where NoData<T>: Foo {
LL | |
LL | | fn answer(self) {
@ -146,15 +149,13 @@ LL | | }
= note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<T>>>`
= note: required because of the requirements on the impl of `Foo` for `NoData<NoData<T>>`
= note: required because of the requirements on the impl of `Foo` for `NoData<T>`
note: required by `Foo`
--> $DIR/issue-20413.rs:1:1
|
LL | trait Foo {
| ^^^^^^^^^
error[E0275]: overflow evaluating the requirement `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>: Foo`
--> $DIR/issue-20413.rs:10:3
|
LL | trait Foo {
| --------- required by `Foo`
...
LL | / fn answer(self) {
LL | |
LL | | let val: NoData<T> = NoData;
@ -289,11 +290,6 @@ LL | | }
= note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<T>>>`
= note: required because of the requirements on the impl of `Foo` for `NoData<NoData<T>>`
= note: required because of the requirements on the impl of `Foo` for `NoData<T>`
note: required by `Foo`
--> $DIR/issue-20413.rs:1:1
|
LL | trait Foo {
| ^^^^^^^^^
error: aborting due to 3 previous errors

View File

@ -1,6 +1,9 @@
error[E0277]: `std::rc::Rc<()>` cannot be sent between threads safely
--> $DIR/issue-21763.rs:9:5
|
LL | fn foo<T: Send>() {}
| ----------------- required by `foo`
...
LL | foo::<HashMap<Rc<()>, Rc<()>>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<()>` cannot be sent between threads safely
|
@ -9,11 +12,6 @@ LL | foo::<HashMap<Rc<()>, Rc<()>>>();
= note: required because of the requirements on the impl of `std::marker::Send` for `hashbrown::raw::RawTable<(std::rc::Rc<()>, std::rc::Rc<()>)>`
= note: required because it appears within the type `hashbrown::map::HashMap<std::rc::Rc<()>, std::rc::Rc<()>, std::collections::hash_map::RandomState>`
= note: required because it appears within the type `std::collections::HashMap<std::rc::Rc<()>, std::rc::Rc<()>>`
note: required by `foo`
--> $DIR/issue-21763.rs:6:1
|
LL | fn foo<T: Send>() {}
| ^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,15 +1,13 @@
error[E0277]: the trait bound `T: Bound` is not satisfied
--> $DIR/issue-21837.rs:8:9
|
LL | pub struct Foo<T: Bound>(T);
| ---------------------------- required by `Foo`
...
LL | impl<T> Trait2 for Foo<T> {}
| ^^^^^^ the trait `Bound` is not implemented for `T`
|
= help: consider adding a `where T: Bound` bound
note: required by `Foo`
--> $DIR/issue-21837.rs:2:1
|
LL | pub struct Foo<T: Bound>(T);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,6 +1,9 @@
error[E0283]: type annotations required: cannot resolve `&'a T: Foo`
--> $DIR/issue-21974.rs:10:1
|
LL | trait Foo {
| --------- required by `Foo`
...
LL | / fn foo<'a,'b,T>(x: &'a T, y: &'b T)
LL | | where &'a T : Foo,
LL | | &'b T : Foo
@ -9,12 +12,6 @@ LL | | x.foo();
LL | | y.foo();
LL | | }
| |_^
|
note: required by `Foo`
--> $DIR/issue-21974.rs:6:1
|
LL | trait Foo {
| ^^^^^^^^^
error: aborting due to previous error

View File

@ -1,16 +1,14 @@
error[E0271]: type mismatch resolving `<<T as Trait>::A as MultiDispatch<i32>>::O == T`
--> $DIR/issue-24204.rs:14:1
|
LL | trait Trait: Sized {
| ------------------ required by `Trait`
...
LL | fn test<T: Trait<B=i32>>(b: i32) -> T where T::A: MultiDispatch<i32> { T::new(b) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected associated type, found type parameter
|
= note: expected type `<<T as Trait>::A as MultiDispatch<i32>>::O`
found type `T`
note: required by `Trait`
--> $DIR/issue-24204.rs:7:1
|
LL | trait Trait: Sized {
| ^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,14 +1,11 @@
error[E0283]: type annotations required: cannot resolve `T0: Trait0<'l0>`
--> $DIR/issue-24424.rs:4:1
|
LL | trait Trait0<'l0> {}
| ----------------- required by `Trait0`
LL |
LL | impl <'l0, 'l1, T0> Trait1<'l0, T0> for bool where T0 : Trait0<'l0>, T0 : Trait0<'l1> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: required by `Trait0`
--> $DIR/issue-24424.rs:2:1
|
LL | trait Trait0<'l0> {}
| ^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,14 +1,11 @@
error[E0277]: the trait bound `(): InOut<_>` is not satisfied
--> $DIR/issue-25076.rs:10:5
|
LL | fn do_fold<B, F: InOut<B, Out=B>>(init: B, f: F) {}
| ------------------------------------------------ required by `do_fold`
...
LL | do_fold(bot(), ());
| ^^^^^^^ the trait `InOut<_>` is not implemented for `()`
|
note: required by `do_fold`
--> $DIR/issue-25076.rs:5:1
|
LL | fn do_fold<B, F: InOut<B, Out=B>>(init: B, f: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,14 +1,11 @@
error[E0283]: type annotations required: cannot resolve `S5<_>: Foo`
--> $DIR/issue-29147.rs:21:13
|
LL | trait Foo { fn xxx(&self); }
| -------------- required by `Foo::xxx`
...
LL | let _ = <S5<_>>::xxx;
| ^^^^^^^^^^^^
|
note: required by `Foo::xxx`
--> $DIR/issue-29147.rs:10:13
|
LL | trait Foo { fn xxx(&self); }
| ^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -12,14 +12,11 @@ LL | size_of_copy::<dyn Misc + Copy>();
error[E0277]: the trait bound `dyn Misc: std::marker::Copy` is not satisfied
--> $DIR/issue-32963.rs:8:5
|
LL | fn size_of_copy<T: Copy+?Sized>() -> usize { mem::size_of::<T>() }
| ------------------------------------------ required by `size_of_copy`
...
LL | size_of_copy::<dyn Misc + Copy>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `dyn Misc`
|
note: required by `size_of_copy`
--> $DIR/issue-32963.rs:5:1
|
LL | fn size_of_copy<T: Copy+?Sized>() -> usize { mem::size_of::<T>() }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,17 +1,15 @@
error[E0271]: type mismatch resolving `for<'a> <() as Array<'a>>::Element == ()`
--> $DIR/issue-39970.rs:19:5
|
LL | fn visit() {}
| ---------- required by `Visit::visit`
...
LL | <() as Visit>::visit();
| ^^^^^^^^^^^^^^^^^^^^ expected &(), found ()
|
= note: expected type `&()`
found type `()`
= note: required because of the requirements on the impl of `Visit` for `()`
note: required by `Visit::visit`
--> $DIR/issue-39970.rs:6:5
|
LL | fn visit() {}
| ^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,6 +1,9 @@
error[E0277]: `std::rc::Rc<Foo>` cannot be sent between threads safely
--> $DIR/issue-40827.rs:14:5
|
LL | fn f<T: Send>(_: T) {}
| ------------------- required by `f`
...
LL | f(Foo(Arc::new(Bar::B(None))));
| ^ `std::rc::Rc<Foo>` cannot be sent between threads safely
|
@ -8,15 +11,13 @@ LL | f(Foo(Arc::new(Bar::B(None))));
= note: required because it appears within the type `Bar`
= note: required because of the requirements on the impl of `std::marker::Send` for `std::sync::Arc<Bar>`
= note: required because it appears within the type `Foo`
note: required by `f`
--> $DIR/issue-40827.rs:11:1
|
LL | fn f<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^
error[E0277]: `std::rc::Rc<Foo>` cannot be shared between threads safely
--> $DIR/issue-40827.rs:14:5
|
LL | fn f<T: Send>(_: T) {}
| ------------------- required by `f`
...
LL | f(Foo(Arc::new(Bar::B(None))));
| ^ `std::rc::Rc<Foo>` cannot be shared between threads safely
|
@ -24,11 +25,6 @@ LL | f(Foo(Arc::new(Bar::B(None))));
= note: required because it appears within the type `Bar`
= note: required because of the requirements on the impl of `std::marker::Send` for `std::sync::Arc<Bar>`
= note: required because it appears within the type `Foo`
note: required by `f`
--> $DIR/issue-40827.rs:11:1
|
LL | fn f<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,41 +1,31 @@
error[E0631]: type mismatch in function arguments
--> $DIR/issue-43623.rs:14:5
|
LL | break_me::<Type, fn(_)>;
| ^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected signature of `for<'b> fn(<Type as Trait<'b>>::Assoc) -> _`
| found signature of `fn(_) -> _`
|
note: required by `break_me`
--> $DIR/issue-43623.rs:11:1
|
LL | / pub fn break_me<T, F>(f: F)
LL | | where T: for<'b> Trait<'b>,
LL | | F: for<'b> FnMut(<T as Trait<'b>>::Assoc) {
LL | | break_me::<Type, fn(_)>;
| | ^^^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected signature of `for<'b> fn(<Type as Trait<'b>>::Assoc) -> _`
| | found signature of `fn(_) -> _`
LL | |
LL | |
LL | | }
| |_^
| |_- required by `break_me`
error[E0271]: type mismatch resolving `for<'b> <fn(_) as std::ops::FnOnce<(<Type as Trait<'b>>::Assoc,)>>::Output == ()`
--> $DIR/issue-43623.rs:14:5
|
LL | break_me::<Type, fn(_)>;
| ^^^^^^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'b, found concrete lifetime
|
note: required by `break_me`
--> $DIR/issue-43623.rs:11:1
|
LL | / pub fn break_me<T, F>(f: F)
LL | | where T: for<'b> Trait<'b>,
LL | | F: for<'b> FnMut(<T as Trait<'b>>::Assoc) {
LL | | break_me::<Type, fn(_)>;
| | ^^^^^^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'b, found concrete lifetime
LL | |
LL | |
LL | | }
| |_^
| |_- required by `break_me`
error: aborting due to 2 previous errors

View File

@ -10,21 +10,18 @@ LL | self.foo.map(Foo::new)
error[E0593]: function is expected to take 0 arguments, but it takes 1 argument
--> $DIR/issue-47706.rs:27:5
|
LL | Bar(i32),
| -------- takes 1 argument
LL | Bar(i32),
| -------- takes 1 argument
...
LL | foo(Qux::Bar);
| ^^^ expected function that takes 0 arguments
|
note: required by `foo`
--> $DIR/issue-47706.rs:20:1
|
LL | / fn foo<F>(f: F)
LL | | where
LL | | F: Fn(),
LL | | {
LL | | }
| |_^
| |_- required by `foo`
...
LL | foo(Qux::Bar);
| ^^^ expected function that takes 0 arguments
error: aborting due to 2 previous errors

View File

@ -1,33 +1,27 @@
error[E0631]: type mismatch in function arguments
--> $DIR/issue-60283.rs:14:5
|
LL | foo((), drop)
| ^^^
| |
| expected signature of `for<'a> fn(<() as Trait<'a>>::Item) -> _`
| found signature of `fn(_) -> _`
|
note: required by `foo`
--> $DIR/issue-60283.rs:9:1
|
LL | / pub fn foo<T, F>(_: T, _: F)
LL | | where T: for<'a> Trait<'a>,
LL | | F: for<'a> FnMut(<T as Trait<'a>>::Item) {}
| |_________________________________________________^
| |_________________________________________________- required by `foo`
...
LL | foo((), drop)
| ^^^
| |
| expected signature of `for<'a> fn(<() as Trait<'a>>::Item) -> _`
| found signature of `fn(_) -> _`
error[E0271]: type mismatch resolving `for<'a> <fn(_) {std::mem::drop::<_>} as std::ops::FnOnce<(<() as Trait<'a>>::Item,)>>::Output == ()`
--> $DIR/issue-60283.rs:14:5
|
LL | foo((), drop)
| ^^^ expected bound lifetime parameter 'a, found concrete lifetime
|
note: required by `foo`
--> $DIR/issue-60283.rs:9:1
|
LL | / pub fn foo<T, F>(_: T, _: F)
LL | | where T: for<'a> Trait<'a>,
LL | | F: for<'a> FnMut(<T as Trait<'a>>::Item) {}
| |_________________________________________________^
| |_________________________________________________- required by `foo`
...
LL | foo((), drop)
| ^^^ expected bound lifetime parameter 'a, found concrete lifetime
error: aborting due to 2 previous errors

View File

@ -1,16 +1,13 @@
error[E0277]: `u8` is not an iterator
--> $DIR/bound.rs:2:10
|
LL | struct S<I: Iterator>(I);
| ------------------------- required by `S`
LL | struct T(S<u8>);
| ^^^^^ `u8` is not an iterator
|
= help: the trait `std::iter::Iterator` is not implemented for `u8`
= note: if you want to iterate between `start` until a value `end`, use the exclusive range syntax `start..end` or the inclusive range syntax `start..=end`
note: required by `S`
--> $DIR/bound.rs:1:1
|
LL | struct S<I: Iterator>(I);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,138 +1,107 @@
error[E0277]: the trait bound `&'static mut isize: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:27:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<&'static mut isize>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `&'static mut isize`
|
= help: the following implementations were found:
<isize as std::marker::Copy>
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `&'a mut isize: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:28:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<&'a mut isize>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `&'a mut isize`
|
= help: the following implementations were found:
<isize as std::marker::Copy>
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `std::boxed::Box<isize>: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:31:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<Box<isize>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::boxed::Box<isize>`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `std::string::String: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:32:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<String>();
| ^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::string::String`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `std::vec::Vec<isize>: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:33:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<Vec<isize> >();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::vec::Vec<isize>`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `std::boxed::Box<&'a mut isize>: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:34:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<Box<&'a mut isize>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::boxed::Box<&'a mut isize>`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `std::boxed::Box<dyn Dummy>: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:42:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<Box<dyn Dummy>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::boxed::Box<dyn Dummy>`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `std::boxed::Box<dyn Dummy + std::marker::Send>: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:43:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<Box<dyn Dummy + Send>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::boxed::Box<dyn Dummy + std::marker::Send>`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `&'a mut (dyn Dummy + std::marker::Send + 'a): std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:46:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<&'a mut (dyn Dummy + Send)>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `&'a mut (dyn Dummy + std::marker::Send + 'a)`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `MyNoncopyStruct: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:64:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<MyNoncopyStruct>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `MyNoncopyStruct`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `std::rc::Rc<isize>: std::marker::Copy` is not satisfied
--> $DIR/kindck-copy.rs:67:5
|
LL | fn assert_copy<T:Copy>() { }
| ------------------------ required by `assert_copy`
...
LL | assert_copy::<Rc<isize>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::rc::Rc<isize>`
|
note: required by `assert_copy`
--> $DIR/kindck-copy.rs:5:1
|
LL | fn assert_copy<T:Copy>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 11 previous errors

View File

@ -1,15 +1,13 @@
error[E0277]: the trait bound `std::boxed::Box<{integer}>: std::marker::Copy` is not satisfied
--> $DIR/kindck-impl-type-params-2.rs:13:5
|
LL | fn take_param<T:Foo>(foo: &T) { }
| ----------------------------- required by `take_param`
...
LL | take_param(&x);
| ^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::boxed::Box<{integer}>`
|
= note: required because of the requirements on the impl of `Foo` for `std::boxed::Box<{integer}>`
note: required by `take_param`
--> $DIR/kindck-impl-type-params-2.rs:9:1
|
LL | fn take_param<T:Foo>(foo: &T) { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,15 +1,13 @@
error[E0277]: the trait bound `std::boxed::Box<{integer}>: std::marker::Copy` is not satisfied
--> $DIR/kindck-inherited-copy-bound.rs:18:5
|
LL | fn take_param<T:Foo>(foo: &T) { }
| ----------------------------- required by `take_param`
...
LL | take_param(&x);
| ^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::boxed::Box<{integer}>`
|
= note: required because of the requirements on the impl of `Foo` for `std::boxed::Box<{integer}>`
note: required by `take_param`
--> $DIR/kindck-inherited-copy-bound.rs:14:1
|
LL | fn take_param<T:Foo>(foo: &T) { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0038]: the trait `Foo` cannot be made into an object
--> $DIR/kindck-inherited-copy-bound.rs:24:19

View File

@ -1,16 +1,14 @@
error[E0277]: `std::rc::Rc<usize>` cannot be sent between threads safely
--> $DIR/kindck-nonsendable-1.rs:9:5
|
LL | fn bar<F:FnOnce() + Send>(_: F) { }
| ------------------------------- required by `bar`
...
LL | bar(move|| foo(x));
| ^^^ `std::rc::Rc<usize>` cannot be sent between threads safely
|
= help: within `[closure@$DIR/kindck-nonsendable-1.rs:9:9: 9:22 x:std::rc::Rc<usize>]`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<usize>`
= note: required because it appears within the type `[closure@$DIR/kindck-nonsendable-1.rs:9:9: 9:22 x:std::rc::Rc<usize>]`
note: required by `bar`
--> $DIR/kindck-nonsendable-1.rs:5:1
|
LL | fn bar<F:FnOnce() + Send>(_: F) { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,31 +1,27 @@
error[E0277]: `(dyn Dummy + 'static)` cannot be shared between threads safely
--> $DIR/kindck-send-object.rs:12:5
|
LL | fn assert_send<T:Send>() { }
| ------------------------ required by `assert_send`
...
LL | assert_send::<&'static (dyn Dummy + 'static)>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn Dummy + 'static)` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `(dyn Dummy + 'static)`
= note: required because of the requirements on the impl of `std::marker::Send` for `&'static (dyn Dummy + 'static)`
note: required by `assert_send`
--> $DIR/kindck-send-object.rs:5:1
|
LL | fn assert_send<T:Send>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `dyn Dummy` cannot be sent between threads safely
--> $DIR/kindck-send-object.rs:17:5
|
LL | fn assert_send<T:Send>() { }
| ------------------------ required by `assert_send`
...
LL | assert_send::<Box<dyn Dummy>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `dyn Dummy` cannot be sent between threads safely
|
= help: the trait `std::marker::Send` is not implemented for `dyn Dummy`
= note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<dyn Dummy>`
= note: required because it appears within the type `std::boxed::Box<dyn Dummy>`
note: required by `assert_send`
--> $DIR/kindck-send-object.rs:5:1
|
LL | fn assert_send<T:Send>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,16 +1,14 @@
error[E0277]: `(dyn Dummy + 'a)` cannot be shared between threads safely
--> $DIR/kindck-send-object1.rs:10:5
|
LL | fn assert_send<T:Send+'static>() { }
| -------------------------------- required by `assert_send`
...
LL | assert_send::<&'a dyn Dummy>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn Dummy + 'a)` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `(dyn Dummy + 'a)`
= note: required because of the requirements on the impl of `std::marker::Send` for `&'a (dyn Dummy + 'a)`
note: required by `assert_send`
--> $DIR/kindck-send-object1.rs:5:1
|
LL | fn assert_send<T:Send+'static>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0477]: the type `&'a (dyn Dummy + std::marker::Sync + 'a)` does not fulfill the required lifetime
--> $DIR/kindck-send-object1.rs:14:5
@ -23,17 +21,15 @@ LL | assert_send::<&'a (dyn Dummy + Sync)>();
error[E0277]: `(dyn Dummy + 'a)` cannot be sent between threads safely
--> $DIR/kindck-send-object1.rs:29:5
|
LL | fn assert_send<T:Send+'static>() { }
| -------------------------------- required by `assert_send`
...
LL | assert_send::<Box<dyn Dummy + 'a>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn Dummy + 'a)` cannot be sent between threads safely
|
= help: the trait `std::marker::Send` is not implemented for `(dyn Dummy + 'a)`
= note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn Dummy + 'a)>`
= note: required because it appears within the type `std::boxed::Box<(dyn Dummy + 'a)>`
note: required by `assert_send`
--> $DIR/kindck-send-object1.rs:5:1
|
LL | fn assert_send<T:Send+'static>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 3 previous errors

View File

@ -1,31 +1,27 @@
error[E0277]: `(dyn Dummy + 'static)` cannot be shared between threads safely
--> $DIR/kindck-send-object2.rs:7:5
|
LL | fn assert_send<T:Send>() { }
| ------------------------ required by `assert_send`
...
LL | assert_send::<&'static dyn Dummy>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn Dummy + 'static)` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `(dyn Dummy + 'static)`
= note: required because of the requirements on the impl of `std::marker::Send` for `&'static (dyn Dummy + 'static)`
note: required by `assert_send`
--> $DIR/kindck-send-object2.rs:3:1
|
LL | fn assert_send<T:Send>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: `dyn Dummy` cannot be sent between threads safely
--> $DIR/kindck-send-object2.rs:12:5
|
LL | fn assert_send<T:Send>() { }
| ------------------------ required by `assert_send`
...
LL | assert_send::<Box<dyn Dummy>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `dyn Dummy` cannot be sent between threads safely
|
= help: the trait `std::marker::Send` is not implemented for `dyn Dummy`
= note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<dyn Dummy>`
= note: required because it appears within the type `std::boxed::Box<dyn Dummy>`
note: required by `assert_send`
--> $DIR/kindck-send-object2.rs:3:1
|
LL | fn assert_send<T:Send>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,17 +1,15 @@
error[E0277]: `*mut u8` cannot be sent between threads safely
--> $DIR/kindck-send-owned.rs:12:5
|
LL | fn assert_send<T:Send>() { }
| ------------------------ required by `assert_send`
...
LL | assert_send::<Box<*mut u8>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
|
= help: the trait `std::marker::Send` is not implemented for `*mut u8`
= note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<*mut u8>`
= note: required because it appears within the type `std::boxed::Box<*mut u8>`
note: required by `assert_send`
--> $DIR/kindck-send-owned.rs:3:1
|
LL | fn assert_send<T:Send>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,15 +1,13 @@
error[E0277]: `*mut &'a isize` cannot be sent between threads safely
--> $DIR/kindck-send-unsafe.rs:6:5
|
LL | fn assert_send<T:Send>() { }
| ------------------------ required by `assert_send`
...
LL | assert_send::<*mut &'a isize>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut &'a isize` cannot be sent between threads safely
|
= help: the trait `std::marker::Send` is not implemented for `*mut &'a isize`
note: required by `assert_send`
--> $DIR/kindck-send-unsafe.rs:3:1
|
LL | fn assert_send<T:Send>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,14 +1,11 @@
error[E0277]: the trait bound `NotDebugOrDisplay: Marker` is not satisfied
--> $DIR/overlap-marker-trait.rs:27:5
|
LL | fn is_marker<T: Marker>() { }
| ------------------------- required by `is_marker`
...
LL | is_marker::<NotDebugOrDisplay>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Marker` is not implemented for `NotDebugOrDisplay`
|
note: required by `is_marker`
--> $DIR/overlap-marker-trait.rs:15:1
|
LL | fn is_marker<T: Marker>() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,60 +1,48 @@
error[E0631]: type mismatch in closure arguments
--> $DIR/E0631.rs:7:5
|
LL | fn foo<F: Fn(usize)>(_: F) {}
| -------------------------- required by `foo`
...
LL | foo(|_: isize| {});
| ^^^ ---------- found signature of `fn(isize) -> _`
| |
| expected signature of `fn(usize) -> _`
|
note: required by `foo`
--> $DIR/E0631.rs:3:1
|
LL | fn foo<F: Fn(usize)>(_: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0631]: type mismatch in closure arguments
--> $DIR/E0631.rs:8:5
|
LL | fn bar<F: Fn<usize>>(_: F) {}
| -------------------------- required by `bar`
...
LL | bar(|_: isize| {});
| ^^^ ---------- found signature of `fn(isize) -> _`
| |
| expected signature of `fn(usize) -> _`
|
note: required by `bar`
--> $DIR/E0631.rs:4:1
|
LL | fn bar<F: Fn<usize>>(_: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0631]: type mismatch in function arguments
--> $DIR/E0631.rs:9:5
|
LL | fn foo<F: Fn(usize)>(_: F) {}
| -------------------------- required by `foo`
...
LL | fn f(_: u64) {}
| ------------ found signature of `fn(u64) -> _`
...
LL | foo(f);
| ^^^ expected signature of `fn(usize) -> _`
|
note: required by `foo`
--> $DIR/E0631.rs:3:1
|
LL | fn foo<F: Fn(usize)>(_: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0631]: type mismatch in function arguments
--> $DIR/E0631.rs:10:5
|
LL | fn bar<F: Fn<usize>>(_: F) {}
| -------------------------- required by `bar`
LL | fn main() {
LL | fn f(_: u64) {}
| ------------ found signature of `fn(u64) -> _`
...
LL | bar(f);
| ^^^ expected signature of `fn(usize) -> _`
|
note: required by `bar`
--> $DIR/E0631.rs:4:1
|
LL | fn bar<F: Fn<usize>>(_: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 4 previous errors

View File

@ -45,16 +45,13 @@ LL | [1, 2, 3].sort_by(|tuple, tuple2| panic!());
error[E0593]: closure is expected to take 1 argument, but it takes 0 arguments
--> $DIR/closure-arg-count.rs:13:5
|
LL | fn f<F: Fn<usize>>(_: F) {}
| ------------------------ required by `f`
...
LL | f(|| panic!());
| ^ -- takes 0 arguments
| |
| expected closure that takes 1 argument
|
note: required by `f`
--> $DIR/closure-arg-count.rs:3:1
|
LL | fn f<F: Fn<usize>>(_: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
help: consider changing the closure to take and ignore the expected argument
|
LL | f(|_| panic!());
@ -63,16 +60,13 @@ LL | f(|_| panic!());
error[E0593]: closure is expected to take 1 argument, but it takes 0 arguments
--> $DIR/closure-arg-count.rs:15:5
|
LL | fn f<F: Fn<usize>>(_: F) {}
| ------------------------ required by `f`
...
LL | f( move || panic!());
| ^ ---------- takes 0 arguments
| |
| expected closure that takes 1 argument
|
note: required by `f`
--> $DIR/closure-arg-count.rs:3:1
|
LL | fn f<F: Fn<usize>>(_: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
help: consider changing the closure to take and ignore the expected argument
|
LL | f( move |_| panic!());
@ -148,14 +142,10 @@ error[E0593]: function is expected to take 0 arguments, but it takes 1 argument
LL | call(Foo);
| ^^^^ expected function that takes 0 arguments
...
LL | fn call<F, R>(_: F) where F: FnOnce() -> R {}
| ------------------------------------------ required by `call`
LL | struct Foo(u8);
| --------------- takes 1 argument
|
note: required by `call`
--> $DIR/closure-arg-count.rs:42:1
|
LL | fn call<F, R>(_: F) where F: FnOnce() -> R {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 14 previous errors

View File

@ -25,29 +25,23 @@ LL | a.iter().map(|_: (u16, u16)| 45);
error[E0631]: type mismatch in function arguments
--> $DIR/closure-arg-type-mismatch.rs:10:5
|
LL | fn baz<F: Fn(*mut &u32)>(_: F) {}
| ------------------------------ required by `baz`
LL | fn _test<'a>(f: fn(*mut &'a u32)) {
LL | baz(f);
| ^^^
| |
| expected signature of `for<'r> fn(*mut &'r u32) -> _`
| found signature of `fn(*mut &'a u32) -> _`
|
note: required by `baz`
--> $DIR/closure-arg-type-mismatch.rs:8:1
|
LL | fn baz<F: Fn(*mut &u32)>(_: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0271]: type mismatch resolving `for<'r> <fn(*mut &'a u32) as std::ops::FnOnce<(*mut &'r u32,)>>::Output == ()`
--> $DIR/closure-arg-type-mismatch.rs:10:5
|
LL | fn baz<F: Fn(*mut &u32)>(_: F) {}
| ------------------------------ required by `baz`
LL | fn _test<'a>(f: fn(*mut &'a u32)) {
LL | baz(f);
| ^^^ expected bound lifetime parameter, found concrete lifetime
|
note: required by `baz`
--> $DIR/closure-arg-type-mismatch.rs:8:1
|
LL | fn baz<F: Fn(*mut &u32)>(_: F) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 5 previous errors

View File

@ -1,30 +1,26 @@
error[E0271]: type mismatch resolving `for<'r> <[closure@$DIR/closure-mismatch.rs:8:9: 8:15] as std::ops::FnOnce<(&'r (),)>>::Output == ()`
--> $DIR/closure-mismatch.rs:8:5
|
LL | fn baz<T: Foo>(_: T) {}
| -------------------- required by `baz`
...
LL | baz(|_| ());
| ^^^ expected bound lifetime parameter, found concrete lifetime
|
= note: required because of the requirements on the impl of `Foo` for `[closure@$DIR/closure-mismatch.rs:8:9: 8:15]`
note: required by `baz`
--> $DIR/closure-mismatch.rs:5:1
|
LL | fn baz<T: Foo>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^
error[E0631]: type mismatch in closure arguments
--> $DIR/closure-mismatch.rs:8:5
|
LL | fn baz<T: Foo>(_: T) {}
| -------------------- required by `baz`
...
LL | baz(|_| ());
| ^^^ ------ found signature of `fn(_) -> _`
| |
| expected signature of `for<'r> fn(&'r ()) -> _`
|
= note: required because of the requirements on the impl of `Foo` for `[closure@$DIR/closure-mismatch.rs:8:9: 8:15]`
note: required by `baz`
--> $DIR/closure-mismatch.rs:5:1
|
LL | fn baz<T: Foo>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -3,15 +3,12 @@ error[E0631]: type mismatch in function arguments
|
LL | fn takes_mut(x: &mut isize) { }
| --------------------------- found signature of `for<'r> fn(&'r mut isize) -> _`
LL |
LL | fn apply<T, F>(t: T, f: F) where F: FnOnce(T) {
| --------------------------------------------- required by `apply`
...
LL | apply(&3, takes_mut);
| ^^^^^ expected signature of `fn(&{integer}) -> _`
|
note: required by `apply`
--> $DIR/fn-variance-1.rs:5:1
|
LL | fn apply<T, F>(t: T, f: F) where F: FnOnce(T) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0631]: type mismatch in function arguments
--> $DIR/fn-variance-1.rs:15:5
@ -19,14 +16,11 @@ error[E0631]: type mismatch in function arguments
LL | fn takes_imm(x: &isize) { }
| ----------------------- found signature of `for<'r> fn(&'r isize) -> _`
...
LL | fn apply<T, F>(t: T, f: F) where F: FnOnce(T) {
| --------------------------------------------- required by `apply`
...
LL | apply(&mut 3, takes_imm);
| ^^^^^ expected signature of `fn(&mut {integer}) -> _`
|
note: required by `apply`
--> $DIR/fn-variance-1.rs:5:1
|
LL | fn apply<T, F>(t: T, f: F) where F: FnOnce(T) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,17 +1,14 @@
error[E0631]: type mismatch in closure arguments
--> $DIR/unboxed-closures-vtable-mismatch.rs:15:13
|
LL | fn call_it<F:FnMut(isize,isize)->isize>(y: isize, mut f: F) -> isize {
| -------------------------------------------------------------------- required by `call_it`
...
LL | let f = to_fn_mut(|x: usize, y: isize| -> isize { (x as isize) + y });
| ----------------------------- found signature of `fn(usize, isize) -> _`
LL |
LL | let z = call_it(3, f);
| ^^^^^^^ expected signature of `fn(isize, isize) -> _`
|
note: required by `call_it`
--> $DIR/unboxed-closures-vtable-mismatch.rs:7:1
|
LL | fn call_it<F:FnMut(isize,isize)->isize>(y: isize, mut f: F) -> isize {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,17 +1,15 @@
error[E0277]: `NoSync` cannot be shared between threads safely
--> $DIR/mutable-enum-indirect.rs:17:5
|
LL | fn bar<T: Sync>(_: T) {}
| --------------------- required by `bar`
...
LL | bar(&x);
| ^^^ `NoSync` cannot be shared between threads safely
|
= help: within `&Foo`, the trait `std::marker::Sync` is not implemented for `NoSync`
= note: required because it appears within the type `Foo`
= note: required because it appears within the type `&Foo`
note: required by `bar`
--> $DIR/mutable-enum-indirect.rs:13:1
|
LL | fn bar<T: Sync>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,16 +1,14 @@
error[E0277]: `std::cell::Cell<i32>` cannot be shared between threads safely
--> $DIR/mutexguard-sync.rs:11:5
|
LL | fn test_sync<T: Sync>(_t: T) {}
| ---------------------------- required by `test_sync`
...
LL | test_sync(guard);
| ^^^^^^^^^ `std::cell::Cell<i32>` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `std::cell::Cell<i32>`
= note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::MutexGuard<'_, std::cell::Cell<i32>>`
note: required by `test_sync`
--> $DIR/mutexguard-sync.rs:5:1
|
LL | fn test_sync<T: Sync>(_t: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -69,530 +69,398 @@ LL | use namespace_mix::xm8::V;
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:33:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m1::S{});
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::S: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:35:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m2::S{});
| ^^^^^ the trait `Impossible` is not implemented for `c::S`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:36:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m2::S);
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:39:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm1::S{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::S: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:41:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm2::S{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::S`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:42:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm2::S);
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:55:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m3::TS{});
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `fn() -> c::TS {c::TS}: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:56:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m3::TS);
| ^^^^^ the trait `Impossible` is not implemented for `fn() -> c::TS {c::TS}`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::TS: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:57:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m4::TS{});
| ^^^^^ the trait `Impossible` is not implemented for `c::TS`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:58:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m4::TS);
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:61:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm3::TS{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `fn() -> namespace_mix::c::TS {namespace_mix::c::TS}: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:62:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm3::TS);
| ^^^^^ the trait `Impossible` is not implemented for `fn() -> namespace_mix::c::TS {namespace_mix::c::TS}`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::TS: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:63:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm4::TS{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::TS`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:64:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm4::TS);
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:77:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m5::US{});
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::US: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:78:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m5::US);
| ^^^^^ the trait `Impossible` is not implemented for `c::US`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::US: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:79:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m6::US{});
| ^^^^^ the trait `Impossible` is not implemented for `c::US`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:80:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m6::US);
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:83:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm5::US{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::US: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:84:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm5::US);
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::US`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::US: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:85:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm6::US{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::US`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:86:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm6::US);
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:99:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m7::V{});
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::E: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:101:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m8::V{});
| ^^^^^ the trait `Impossible` is not implemented for `c::E`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:102:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m8::V);
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:105:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm7::V{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::E: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:107:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm8::V{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::E`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:108:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm8::V);
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:121:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m9::TV{});
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `fn() -> c::E {c::E::TV}: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:122:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(m9::TV);
| ^^^^^ the trait `Impossible` is not implemented for `fn() -> c::E {c::E::TV}`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::E: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:123:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(mA::TV{});
| ^^^^^ the trait `Impossible` is not implemented for `c::E`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:124:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(mA::TV);
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:127:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm9::TV{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `fn() -> namespace_mix::c::E {namespace_mix::xm7::TV}: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:128:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xm9::TV);
| ^^^^^ the trait `Impossible` is not implemented for `fn() -> namespace_mix::c::E {namespace_mix::xm7::TV}`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::E: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:129:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xmA::TV{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::E`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:130:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xmA::TV);
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:143:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(mB::UV{});
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::E: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:144:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(mB::UV);
| ^^^^^ the trait `Impossible` is not implemented for `c::E`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::E: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:145:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(mC::UV{});
| ^^^^^ the trait `Impossible` is not implemented for `c::E`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:146:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(mC::UV);
| ^^^^^ the trait `Impossible` is not implemented for `c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:149:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xmB::UV{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::E: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:150:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xmB::UV);
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::E`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::E: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:151:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xmC::UV{});
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::E`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `namespace_mix::c::Item: Impossible` is not satisfied
--> $DIR/namespace-mix.rs:152:5
|
LL | fn check<T: Impossible>(_: T) {}
| ----------------------------- required by `check`
...
LL | check(xmC::UV);
| ^^^^^ the trait `Impossible` is not implemented for `namespace_mix::c::Item`
|
note: required by `check`
--> $DIR/namespace-mix.rs:21:1
|
LL | fn check<T: Impossible>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 48 previous errors

View File

@ -1,16 +1,14 @@
error[E0277]: `NoSend` cannot be sent between threads safely
--> $DIR/no_send-enum.rs:16:5
|
LL | fn bar<T: Send>(_: T) {}
| --------------------- required by `bar`
...
LL | bar(x);
| ^^^ `NoSend` cannot be sent between threads safely
|
= help: within `Foo`, the trait `std::marker::Send` is not implemented for `NoSend`
= note: required because it appears within the type `Foo`
note: required by `bar`
--> $DIR/no_send-enum.rs:12:1
|
LL | fn bar<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,15 +1,13 @@
error[E0277]: `std::rc::Rc<{integer}>` cannot be sent between threads safely
--> $DIR/no_send-rc.rs:7:5
|
LL | fn bar<T: Send>(_: T) {}
| --------------------- required by `bar`
...
LL | bar(x);
| ^^^ `std::rc::Rc<{integer}>` cannot be sent between threads safely
|
= help: the trait `std::marker::Send` is not implemented for `std::rc::Rc<{integer}>`
note: required by `bar`
--> $DIR/no_send-rc.rs:3:1
|
LL | fn bar<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,15 +1,13 @@
error[E0277]: `Foo` cannot be sent between threads safely
--> $DIR/no_send-struct.rs:15:5
|
LL | fn bar<T: Send>(_: T) {}
| --------------------- required by `bar`
...
LL | bar(x);
| ^^^ `Foo` cannot be sent between threads safely
|
= help: the trait `std::marker::Send` is not implemented for `Foo`
note: required by `bar`
--> $DIR/no_send-struct.rs:11:1
|
LL | fn bar<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,16 +1,14 @@
error[E0277]: `NoSync` cannot be shared between threads safely
--> $DIR/no_share-enum.rs:14:5
|
LL | fn bar<T: Sync>(_: T) {}
| --------------------- required by `bar`
...
LL | bar(x);
| ^^^ `NoSync` cannot be shared between threads safely
|
= help: within `Foo`, the trait `std::marker::Sync` is not implemented for `NoSync`
= note: required because it appears within the type `Foo`
note: required by `bar`
--> $DIR/no_share-enum.rs:10:1
|
LL | fn bar<T: Sync>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,15 +1,13 @@
error[E0277]: `Foo` cannot be shared between threads safely
--> $DIR/no_share-struct.rs:12:5
|
LL | fn bar<T: Sync>(_: T) {}
| --------------------- required by `bar`
...
LL | bar(x);
| ^^^ `Foo` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `Foo`
note: required by `bar`
--> $DIR/no_share-struct.rs:8:1
|
LL | fn bar<T: Sync>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,21 +1,22 @@
error[E0277]: the type `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-2.rs:10:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<Rc<RefCell<i32>>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
= help: within `std::cell::RefCell<i32>`, the trait `std::panic::RefUnwindSafe` is not implemented for `std::cell::UnsafeCell<i32>`
= note: required because it appears within the type `std::cell::RefCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `std::rc::Rc<std::cell::RefCell<i32>>`
note: required by `assert`
--> $DIR/not-panic-safe-2.rs:7:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the type `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-2.rs:10:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<Rc<RefCell<i32>>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
@ -23,11 +24,6 @@ LL | assert::<Rc<RefCell<i32>>>();
= note: required because it appears within the type `std::cell::Cell<isize>`
= note: required because it appears within the type `std::cell::RefCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `std::rc::Rc<std::cell::RefCell<i32>>`
note: required by `assert`
--> $DIR/not-panic-safe-2.rs:7:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,21 +1,22 @@
error[E0277]: the type `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-3.rs:10:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<Arc<RefCell<i32>>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
= help: within `std::cell::RefCell<i32>`, the trait `std::panic::RefUnwindSafe` is not implemented for `std::cell::UnsafeCell<i32>`
= note: required because it appears within the type `std::cell::RefCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `std::sync::Arc<std::cell::RefCell<i32>>`
note: required by `assert`
--> $DIR/not-panic-safe-3.rs:7:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the type `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-3.rs:10:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<Arc<RefCell<i32>>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
@ -23,11 +24,6 @@ LL | assert::<Arc<RefCell<i32>>>();
= note: required because it appears within the type `std::cell::Cell<isize>`
= note: required because it appears within the type `std::cell::RefCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `std::sync::Arc<std::cell::RefCell<i32>>`
note: required by `assert`
--> $DIR/not-panic-safe-3.rs:7:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,21 +1,22 @@
error[E0277]: the type `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-4.rs:9:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<&RefCell<i32>>();
| ^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
= help: within `std::cell::RefCell<i32>`, the trait `std::panic::RefUnwindSafe` is not implemented for `std::cell::UnsafeCell<i32>`
= note: required because it appears within the type `std::cell::RefCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `&std::cell::RefCell<i32>`
note: required by `assert`
--> $DIR/not-panic-safe-4.rs:6:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the type `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-4.rs:9:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<&RefCell<i32>>();
| ^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
@ -23,11 +24,6 @@ LL | assert::<&RefCell<i32>>();
= note: required because it appears within the type `std::cell::Cell<isize>`
= note: required because it appears within the type `std::cell::RefCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `&std::cell::RefCell<i32>`
note: required by `assert`
--> $DIR/not-panic-safe-4.rs:6:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,16 +1,14 @@
error[E0277]: the type `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-5.rs:9:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<*const UnsafeCell<i32>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
= help: the trait `std::panic::RefUnwindSafe` is not implemented for `std::cell::UnsafeCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `*const std::cell::UnsafeCell<i32>`
note: required by `assert`
--> $DIR/not-panic-safe-5.rs:6:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,21 +1,22 @@
error[E0277]: the type `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-6.rs:9:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<*mut RefCell<i32>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<i32>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
= help: within `std::cell::RefCell<i32>`, the trait `std::panic::RefUnwindSafe` is not implemented for `std::cell::UnsafeCell<i32>`
= note: required because it appears within the type `std::cell::RefCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `*mut std::cell::RefCell<i32>`
note: required by `assert`
--> $DIR/not-panic-safe-6.rs:6:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0277]: the type `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
--> $DIR/not-panic-safe-6.rs:9:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<*mut RefCell<i32>>();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
|
@ -23,11 +24,6 @@ LL | assert::<*mut RefCell<i32>>();
= note: required because it appears within the type `std::cell::Cell<isize>`
= note: required because it appears within the type `std::cell::RefCell<i32>`
= note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `*mut std::cell::RefCell<i32>`
note: required by `assert`
--> $DIR/not-panic-safe-6.rs:6:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,15 +1,13 @@
error[E0277]: the type `&mut i32` may not be safely transferred across an unwind boundary
--> $DIR/not-panic-safe.rs:9:5
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ----------------------------------- required by `assert`
...
LL | assert::<&mut i32>();
| ^^^^^^^^^^^^^^^^^^ `&mut i32` may not be safely transferred across an unwind boundary
|
= help: the trait `std::panic::UnwindSafe` is not implemented for `&mut i32`
note: required by `assert`
--> $DIR/not-panic-safe.rs:6:1
|
LL | fn assert<T: UnwindSafe + ?Sized>() {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,80 +1,68 @@
error[E0277]: `std::cell::Cell<i32>` cannot be shared between threads safely
--> $DIR/not-sync.rs:8:5
|
LL | fn test<T: Sync>() {}
| ------------------ required by `test`
...
LL | test::<Cell<i32>>();
| ^^^^^^^^^^^^^^^^^ `std::cell::Cell<i32>` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `std::cell::Cell<i32>`
note: required by `test`
--> $DIR/not-sync.rs:5:1
|
LL | fn test<T: Sync>() {}
| ^^^^^^^^^^^^^^^^^^
error[E0277]: `std::cell::RefCell<i32>` cannot be shared between threads safely
--> $DIR/not-sync.rs:10:5
|
LL | fn test<T: Sync>() {}
| ------------------ required by `test`
...
LL | test::<RefCell<i32>>();
| ^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell<i32>` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `std::cell::RefCell<i32>`
note: required by `test`
--> $DIR/not-sync.rs:5:1
|
LL | fn test<T: Sync>() {}
| ^^^^^^^^^^^^^^^^^^
error[E0277]: `std::rc::Rc<i32>` cannot be shared between threads safely
--> $DIR/not-sync.rs:13:5
|
LL | fn test<T: Sync>() {}
| ------------------ required by `test`
...
LL | test::<Rc<i32>>();
| ^^^^^^^^^^^^^^^ `std::rc::Rc<i32>` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `std::rc::Rc<i32>`
note: required by `test`
--> $DIR/not-sync.rs:5:1
|
LL | fn test<T: Sync>() {}
| ^^^^^^^^^^^^^^^^^^
error[E0277]: `std::rc::Weak<i32>` cannot be shared between threads safely
--> $DIR/not-sync.rs:15:5
|
LL | fn test<T: Sync>() {}
| ------------------ required by `test`
...
LL | test::<Weak<i32>>();
| ^^^^^^^^^^^^^^^^^ `std::rc::Weak<i32>` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `std::rc::Weak<i32>`
note: required by `test`
--> $DIR/not-sync.rs:5:1
|
LL | fn test<T: Sync>() {}
| ^^^^^^^^^^^^^^^^^^
error[E0277]: `std::sync::mpsc::Receiver<i32>` cannot be shared between threads safely
--> $DIR/not-sync.rs:18:5
|
LL | fn test<T: Sync>() {}
| ------------------ required by `test`
...
LL | test::<Receiver<i32>>();
| ^^^^^^^^^^^^^^^^^^^^^ `std::sync::mpsc::Receiver<i32>` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `std::sync::mpsc::Receiver<i32>`
note: required by `test`
--> $DIR/not-sync.rs:5:1
|
LL | fn test<T: Sync>() {}
| ^^^^^^^^^^^^^^^^^^
error[E0277]: `std::sync::mpsc::Sender<i32>` cannot be shared between threads safely
--> $DIR/not-sync.rs:20:5
|
LL | fn test<T: Sync>() {}
| ------------------ required by `test`
...
LL | test::<Sender<i32>>();
| ^^^^^^^^^^^^^^^^^^^ `std::sync::mpsc::Sender<i32>` cannot be shared between threads safely
|
= help: the trait `std::marker::Sync` is not implemented for `std::sync::mpsc::Sender<i32>`
note: required by `test`
--> $DIR/not-sync.rs:5:1
|
LL | fn test<T: Sync>() {}
| ^^^^^^^^^^^^^^^^^^
error: aborting due to 6 previous errors

Some files were not shown because too many files have changed in this diff Show More