Point at impl
and type defs introducing requirements on E0277
This commit is contained in:
parent
d326c218ef
commit
8bc5581978
55 changed files with 621 additions and 110 deletions
|
@ -1598,7 +1598,7 @@ impl<'tcx> TyCtxt<'tcx> {
|
|||
.filter(|item| item.kind == AssocKind::Fn && item.defaultness.has_value())
|
||||
}
|
||||
|
||||
fn item_name_from_hir(self, def_id: DefId) -> Option<Ident> {
|
||||
pub fn item_name_from_hir(self, def_id: DefId) -> Option<Ident> {
|
||||
self.hir().get_if_local(def_id).and_then(|node| node.ident())
|
||||
}
|
||||
|
||||
|
|
|
@ -2070,7 +2070,14 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
|
|||
|
||||
// Don't print the tuple of capture types
|
||||
if !is_upvar_tys_infer_tuple {
|
||||
err.note(&format!("required because it appears within the type `{}`", ty));
|
||||
let msg = format!("required because it appears within the type `{}`", ty);
|
||||
match ty.kind() {
|
||||
ty::Adt(def, _) => match self.tcx.item_name_from_hir(def.did) {
|
||||
Some(ident) => err.span_note(ident.span, &msg),
|
||||
None => err.note(&msg),
|
||||
},
|
||||
_ => err.note(&msg),
|
||||
};
|
||||
}
|
||||
|
||||
obligated_types.push(ty);
|
||||
|
@ -2092,11 +2099,36 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
|
|||
ObligationCauseCode::ImplDerivedObligation(ref data) => {
|
||||
let mut parent_trait_ref = self.resolve_vars_if_possible(data.parent_trait_ref);
|
||||
let parent_def_id = parent_trait_ref.def_id();
|
||||
err.note(&format!(
|
||||
let msg = format!(
|
||||
"required because of the requirements on the impl of `{}` for `{}`",
|
||||
parent_trait_ref.print_only_trait_path(),
|
||||
parent_trait_ref.skip_binder().self_ty()
|
||||
));
|
||||
);
|
||||
let mut candidates = vec![];
|
||||
self.tcx.for_each_relevant_impl(
|
||||
parent_def_id,
|
||||
parent_trait_ref.self_ty().skip_binder(),
|
||||
|impl_def_id| {
|
||||
candidates.push(impl_def_id);
|
||||
},
|
||||
);
|
||||
match &candidates[..] {
|
||||
[def_id] => match self.tcx.hir().get_if_local(*def_id) {
|
||||
Some(Node::Item(hir::Item {
|
||||
kind: hir::ItemKind::Impl(hir::Impl { of_trait, self_ty, .. }),
|
||||
..
|
||||
})) => {
|
||||
let mut spans = Vec::with_capacity(2);
|
||||
if let Some(trait_ref) = of_trait {
|
||||
spans.push(trait_ref.path.span);
|
||||
}
|
||||
spans.push(self_ty.span);
|
||||
err.span_note(spans, &msg)
|
||||
}
|
||||
_ => err.note(&msg),
|
||||
},
|
||||
_ => err.note(&msg),
|
||||
};
|
||||
|
||||
let mut parent_predicate = parent_trait_ref.without_const().to_predicate(tcx);
|
||||
let mut data = data;
|
||||
|
|
|
@ -10,7 +10,11 @@ LL | |
|
|||
LL | | }
|
||||
| |_^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
--> $DIR/impl-wf-cycle-1.rs:15:17
|
||||
|
|
||||
LL | impl<T: Grault> Grault for (T,)
|
||||
| ^^^^^^ ^^^^
|
||||
= note: 1 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
|
||||
|
@ -20,7 +24,11 @@ error[E0275]: overflow evaluating the requirement `<(T,) as Grault>::A == _`
|
|||
LL | type A = ();
|
||||
| ^^^^^^^^^^^^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
--> $DIR/impl-wf-cycle-1.rs:15:17
|
||||
|
|
||||
LL | impl<T: Grault> Grault for (T,)
|
||||
| ^^^^^^ ^^^^
|
||||
= note: 1 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
|
||||
|
@ -30,7 +38,11 @@ error[E0275]: overflow evaluating the requirement `<(T,) as Grault>::A == _`
|
|||
LL | type B = bool;
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
--> $DIR/impl-wf-cycle-1.rs:15:17
|
||||
|
|
||||
LL | impl<T: Grault> Grault for (T,)
|
||||
| ^^^^^^ ^^^^
|
||||
= note: 1 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
|
||||
|
|
|
@ -10,7 +10,11 @@ LL | |
|
|||
LL | | }
|
||||
| |_^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
--> $DIR/impl-wf-cycle-2.rs:7:17
|
||||
|
|
||||
LL | impl<T: Grault> Grault for (T,)
|
||||
| ^^^^^^ ^^^^
|
||||
|
||||
error[E0275]: overflow evaluating the requirement `<(T,) as Grault>::A == _`
|
||||
--> $DIR/impl-wf-cycle-2.rs:11:5
|
||||
|
@ -18,7 +22,11 @@ error[E0275]: overflow evaluating the requirement `<(T,) as Grault>::A == _`
|
|||
LL | type A = ();
|
||||
| ^^^^^^^^^^^^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
note: required because of the requirements on the impl of `Grault` for `(T,)`
|
||||
--> $DIR/impl-wf-cycle-2.rs:7:17
|
||||
|
|
||||
LL | impl<T: Grault> Grault for (T,)
|
||||
| ^^^^^^ ^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
|
|
@ -7,7 +7,11 @@ LL | fn visit() {}
|
|||
LL | <() as Visit>::visit();
|
||||
| ^^^^^^^^^^^^^^^^^^^^ expected `&()`, found `()`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Visit` for `()`
|
||||
note: required because of the requirements on the impl of `Visit` for `()`
|
||||
--> $DIR/issue-44153.rs:13:10
|
||||
|
|
||||
LL | impl<'a> Visit for () where
|
||||
| ^^^^^ ^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -13,7 +13,11 @@ error[E0277]: the trait bound `T: MyDisplay` is not satisfied
|
|||
LL | let closure = |config: &mut <S as MPU>::MpuConfig| writer.my_write(&config);
|
||||
| ^^^^^^^ the trait `MyDisplay` is not implemented for `T`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `MyDisplay` for `&mut T`
|
||||
note: required because of the requirements on the impl of `MyDisplay` for `&mut T`
|
||||
--> $DIR/issue-65774-1.rs:5:24
|
||||
|
|
||||
LL | impl<'a, T: MyDisplay> MyDisplay for &'a mut T { }
|
||||
| ^^^^^^^^^ ^^^^^^^^^
|
||||
= note: required for the cast to the object type `dyn MyDisplay`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
|
|
@ -17,7 +17,11 @@ LL | async fn frob(self) {}
|
|||
| ^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Foo`, the trait `Sized` is not implemented for `str`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/issue-72590-type-error-sized.rs:5:8
|
||||
|
|
||||
LL | struct Foo {
|
||||
| ^^^
|
||||
= help: unsized fn params are gated as an unstable feature
|
||||
help: function arguments must have a statically known size, borrowed types always have a known size
|
||||
|
|
||||
|
|
48
src/test/ui/async-await/pin-needed-to-poll-2.rs
Normal file
48
src/test/ui/async-await/pin-needed-to-poll-2.rs
Normal file
|
@ -0,0 +1,48 @@
|
|||
use std::{
|
||||
future::Future,
|
||||
pin::Pin,
|
||||
marker::Unpin,
|
||||
task::{Context, Poll},
|
||||
};
|
||||
|
||||
struct Sleep(std::marker::PhantomPinned);
|
||||
|
||||
impl Future for Sleep {
|
||||
type Output = ();
|
||||
|
||||
fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
|
||||
Poll::Ready(())
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for Sleep {
|
||||
fn drop(&mut self) {}
|
||||
}
|
||||
|
||||
fn sleep() -> Sleep {
|
||||
Sleep(std::marker::PhantomPinned)
|
||||
}
|
||||
|
||||
|
||||
struct MyFuture {
|
||||
sleep: Sleep,
|
||||
}
|
||||
|
||||
impl MyFuture {
|
||||
fn new() -> Self {
|
||||
Self {
|
||||
sleep: sleep(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Future for MyFuture {
|
||||
type Output = ();
|
||||
|
||||
fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
|
||||
Pin::new(&mut self.sleep).poll(cx)
|
||||
//~^ ERROR `PhantomPinned` cannot be unpinned
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
16
src/test/ui/async-await/pin-needed-to-poll-2.stderr
Normal file
16
src/test/ui/async-await/pin-needed-to-poll-2.stderr
Normal file
|
@ -0,0 +1,16 @@
|
|||
error[E0277]: `PhantomPinned` cannot be unpinned
|
||||
--> $DIR/pin-needed-to-poll-2.rs:43:9
|
||||
|
|
||||
LL | Pin::new(&mut self.sleep).poll(cx)
|
||||
| ^^^^^^^^ within `Sleep`, the trait `Unpin` is not implemented for `PhantomPinned`
|
||||
|
|
||||
note: required because it appears within the type `Sleep`
|
||||
--> $DIR/pin-needed-to-poll-2.rs:8:8
|
||||
|
|
||||
LL | struct Sleep(std::marker::PhantomPinned);
|
||||
| ^^^^^
|
||||
= note: required by `Pin::<P>::new`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
|
@ -6,7 +6,11 @@ LL | b + 3
|
|||
|
|
||||
= help: the following implementations were found:
|
||||
<f64 as Scalar>
|
||||
= note: required because of the requirements on the impl of `Add<{integer}>` for `Bob`
|
||||
note: required because of the requirements on the impl of `Add<{integer}>` for `Bob`
|
||||
--> $DIR/issue-22645.rs:8:19
|
||||
|
|
||||
LL | impl<RHS: Scalar> Add <RHS> for Bob {
|
||||
| ^^^^^^^^^ ^^^
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-22645.rs:15:3
|
||||
|
|
|
@ -9,7 +9,11 @@ LL | impl <T:Sync+'static> RequiresRequiresShareAndSend for X<T> { }
|
|||
LL | pub trait RequiresRequiresShareAndSend : RequiresShare + Send { }
|
||||
| ---- required by this bound in `RequiresRequiresShareAndSend`
|
||||
|
|
||||
= note: required because it appears within the type `X<T>`
|
||||
note: required because it appears within the type `X<T>`
|
||||
--> $DIR/builtin-superkinds-in-metadata.rs:9:8
|
||||
|
|
||||
LL | struct X<T>(T);
|
||||
| ^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | impl <T:Sync+'static + std::marker::Send> RequiresRequiresShareAndSend for X<T> { }
|
||||
|
|
|
@ -8,16 +8,56 @@ LL | is_send::<A>();
|
|||
| ^^^^^^^^^^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="20"]` attribute to your crate (`recursion_limit`)
|
||||
= note: required because it appears within the type `J`
|
||||
= note: required because it appears within the type `I`
|
||||
= note: required because it appears within the type `H`
|
||||
= note: required because it appears within the type `G`
|
||||
= note: required because it appears within the type `F`
|
||||
= note: required because it appears within the type `E`
|
||||
= note: required because it appears within the type `D`
|
||||
= 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 because it appears within the type `J`
|
||||
--> $DIR/recursion_limit.rs:24:9
|
||||
|
|
||||
LL | link! { J, K }
|
||||
| ^
|
||||
note: required because it appears within the type `I`
|
||||
--> $DIR/recursion_limit.rs:23:9
|
||||
|
|
||||
LL | link! { I, J }
|
||||
| ^
|
||||
note: required because it appears within the type `H`
|
||||
--> $DIR/recursion_limit.rs:22:9
|
||||
|
|
||||
LL | link! { H, I }
|
||||
| ^
|
||||
note: required because it appears within the type `G`
|
||||
--> $DIR/recursion_limit.rs:21:9
|
||||
|
|
||||
LL | link! { G, H }
|
||||
| ^
|
||||
note: required because it appears within the type `F`
|
||||
--> $DIR/recursion_limit.rs:20:9
|
||||
|
|
||||
LL | link! { F, G }
|
||||
| ^
|
||||
note: required because it appears within the type `E`
|
||||
--> $DIR/recursion_limit.rs:19:9
|
||||
|
|
||||
LL | link! { E, F }
|
||||
| ^
|
||||
note: required because it appears within the type `D`
|
||||
--> $DIR/recursion_limit.rs:18:9
|
||||
|
|
||||
LL | link! { D, E }
|
||||
| ^
|
||||
note: required because it appears within the type `C`
|
||||
--> $DIR/recursion_limit.rs:17:9
|
||||
|
|
||||
LL | link! { C, D }
|
||||
| ^
|
||||
note: required because it appears within the type `B`
|
||||
--> $DIR/recursion_limit.rs:16:9
|
||||
|
|
||||
LL | link! { B, C }
|
||||
| ^
|
||||
note: required because it appears within the type `A`
|
||||
--> $DIR/recursion_limit.rs:15:9
|
||||
|
|
||||
LL | link! { A, B }
|
||||
| ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -5,8 +5,16 @@ LL | let h: &Fat<Fat<[isize]>> = &Fat { ptr: *g };
|
|||
| ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Fat<Fat<[isize]>>`, the trait `Sized` is not implemented for `[isize]`
|
||||
= note: required because it appears within the type `Fat<[isize]>`
|
||||
= note: required because it appears within the type `Fat<Fat<[isize]>>`
|
||||
note: required because it appears within the type `Fat<[isize]>`
|
||||
--> $DIR/dst-bad-deep.rs:6:8
|
||||
|
|
||||
LL | struct Fat<T: ?Sized> {
|
||||
| ^^^
|
||||
note: required because it appears within the type `Fat<Fat<[isize]>>`
|
||||
--> $DIR/dst-bad-deep.rs:6:8
|
||||
|
|
||||
LL | struct Fat<T: ?Sized> {
|
||||
| ^^^
|
||||
= note: structs must have a statically known size to be initialized
|
||||
|
||||
error: aborting due to previous error
|
||||
|
|
|
@ -8,7 +8,11 @@ LL | impl<T> Foo for T where Bar<T>: Foo {}
|
|||
| ^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`E0275`)
|
||||
= note: required because of the requirements on the impl of `Foo` for `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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
note: required because of the requirements on the impl of `Foo` for `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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/E0275.rs:5:9
|
||||
|
|
||||
LL | impl<T> Foo for T where Bar<T>: Foo {}
|
||||
| ^^^ ^
|
||||
= note: 127 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Foo` for `Bar<T>`
|
||||
|
||||
|
|
|
@ -8,9 +8,21 @@ LL | is_send::<Foo>();
|
|||
| ^^^^^^^^^^^^^^ `*const u8` cannot be sent between threads safely
|
||||
|
|
||||
= help: within `Foo`, the trait `Send` is not implemented for `*const u8`
|
||||
= 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 because it appears within the type `Baz`
|
||||
--> $DIR/E0277-2.rs:9:8
|
||||
|
|
||||
LL | struct Baz {
|
||||
| ^^^
|
||||
note: required because it appears within the type `Bar`
|
||||
--> $DIR/E0277-2.rs:5:8
|
||||
|
|
||||
LL | struct Bar {
|
||||
| ^^^
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/E0277-2.rs:1:8
|
||||
|
|
||||
LL | struct Foo {
|
||||
| ^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
24
src/test/ui/extern/extern-types-unsized.stderr
vendored
24
src/test/ui/extern/extern-types-unsized.stderr
vendored
|
@ -23,7 +23,11 @@ LL | assert_sized::<Foo>();
|
|||
| ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Foo`, the trait `Sized` is not implemented for `A`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/extern-types-unsized.rs:9:8
|
||||
|
|
||||
LL | struct Foo {
|
||||
| ^^^
|
||||
help: consider relaxing the implicit `Sized` restriction
|
||||
|
|
||||
LL | fn assert_sized<T: ?Sized>() {}
|
||||
|
@ -39,7 +43,11 @@ LL | assert_sized::<Bar<A>>();
|
|||
| ^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Bar<A>`, the trait `Sized` is not implemented for `A`
|
||||
= note: required because it appears within the type `Bar<A>`
|
||||
note: required because it appears within the type `Bar<A>`
|
||||
--> $DIR/extern-types-unsized.rs:14:8
|
||||
|
|
||||
LL | struct Bar<T: ?Sized> {
|
||||
| ^^^
|
||||
help: consider relaxing the implicit `Sized` restriction
|
||||
|
|
||||
LL | fn assert_sized<T: ?Sized>() {}
|
||||
|
@ -55,8 +63,16 @@ LL | assert_sized::<Bar<Bar<A>>>();
|
|||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Bar<Bar<A>>`, the trait `Sized` is not implemented for `A`
|
||||
= note: required because it appears within the type `Bar<A>`
|
||||
= note: required because it appears within the type `Bar<Bar<A>>`
|
||||
note: required because it appears within the type `Bar<A>`
|
||||
--> $DIR/extern-types-unsized.rs:14:8
|
||||
|
|
||||
LL | struct Bar<T: ?Sized> {
|
||||
| ^^^
|
||||
note: required because it appears within the type `Bar<Bar<A>>`
|
||||
--> $DIR/extern-types-unsized.rs:14:8
|
||||
|
|
||||
LL | struct Bar<T: ?Sized> {
|
||||
| ^^^
|
||||
help: consider relaxing the implicit `Sized` restriction
|
||||
|
|
||||
LL | fn assert_sized<T: ?Sized>() {}
|
||||
|
|
|
@ -107,7 +107,11 @@ LL | | }
|
|||
| |_^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Dst<(dyn A + 'static)>`, the trait `Sized` is not implemented for `(dyn A + 'static)`
|
||||
= note: required because it appears within the type `Dst<(dyn A + 'static)>`
|
||||
note: required because it appears within the type `Dst<(dyn A + 'static)>`
|
||||
--> $DIR/feature-gate-trivial_bounds.rs:48:8
|
||||
|
|
||||
LL | struct Dst<X: ?Sized> {
|
||||
| ^^^
|
||||
= help: see issue #48214
|
||||
= help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
|
||||
|
||||
|
|
|
@ -15,7 +15,11 @@ error[E0271]: type mismatch resolving `<[closure@$DIR/issue-62203-hrtb-ice.rs:42
|
|||
LL | let v = Unit2.m(
|
||||
| ^ expected struct `Unit4`, found struct `Unit3`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `for<'r> T0<'r, (<Unit2 as Ty<'r>>::V,)>` for `L<[closure@$DIR/issue-62203-hrtb-ice.rs:42:17: 42:39]>`
|
||||
note: required because of the requirements on the impl of `for<'r> T0<'r, (<Unit2 as Ty<'r>>::V,)>` for `L<[closure@$DIR/issue-62203-hrtb-ice.rs:42:17: 42:39]>`
|
||||
--> $DIR/issue-62203-hrtb-ice.rs:17:16
|
||||
|
|
||||
LL | impl<'a, A, T> T0<'a, A> for L<T>
|
||||
| ^^^^^^^^^ ^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
|
|
@ -5,7 +5,11 @@ LL | 0.contains(bits);
|
|||
| ^^^^^^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_18400`)
|
||||
= note: required because of the requirements on the impl of `Set<&[_]>` for `{integer}`
|
||||
note: required because of the requirements on the impl of `Set<&[_]>` for `{integer}`
|
||||
--> $DIR/issue-18400.rs:6:16
|
||||
|
|
||||
LL | impl<'a, T, S> Set<&'a [T]> for S where
|
||||
| ^^^^^^^^^^^^ ^
|
||||
= note: 128 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
|
||||
|
||||
|
|
|
@ -16,7 +16,11 @@ LL | impl<T> Foo for T where NoData<T>: Foo {
|
|||
| ^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_20413`)
|
||||
= note: required because of the requirements on the impl of `Foo` for `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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
note: required because of the requirements on the impl of `Foo` for `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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:8:9
|
||||
|
|
||||
LL | impl<T> Foo for T where NoData<T>: Foo {
|
||||
| ^^^ ^
|
||||
= note: 127 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Foo` for `NoData<T>`
|
||||
|
||||
|
@ -30,8 +34,16 @@ LL | impl<T> Bar for T where EvenLessData<T>: Baz {
|
|||
| ^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_20413`)
|
||||
= note: required because of the requirements on the impl of `Bar` for `AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
= note: required because of the requirements on the impl of `Baz` for `EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
note: required because of the requirements on the impl of `Bar` for `AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:28:9
|
||||
|
|
||||
LL | impl<T> Bar for T where EvenLessData<T>: Baz {
|
||||
| ^^^ ^
|
||||
note: required because of the requirements on the impl of `Baz` for `EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:36:9
|
||||
|
|
||||
LL | impl<T> Baz for T where AlmostNoData<T>: Bar {
|
||||
| ^^^ ^
|
||||
= note: 126 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Baz` for `EvenLessData<T>`
|
||||
|
||||
|
@ -45,8 +57,16 @@ LL | impl<T> Baz for T where AlmostNoData<T>: Bar {
|
|||
| ^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_20413`)
|
||||
= note: required because of the requirements on the impl of `Baz` for `EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
= note: required because of the requirements on the impl of `Bar` for `AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
note: required because of the requirements on the impl of `Baz` for `EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:36:9
|
||||
|
|
||||
LL | impl<T> Baz for T where AlmostNoData<T>: Bar {
|
||||
| ^^^ ^
|
||||
note: required because of the requirements on the impl of `Bar` for `AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:28:9
|
||||
|
|
||||
LL | impl<T> Bar for T where EvenLessData<T>: Baz {
|
||||
| ^^^ ^
|
||||
= note: 126 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Bar` for `AlmostNoData<T>`
|
||||
|
||||
|
@ -60,7 +80,11 @@ LL | impl<T> Foo for T where NoData<T>: Foo {
|
|||
| ^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_20413`)
|
||||
= note: required because of the requirements on the impl of `Foo` for `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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
note: required because of the requirements on the impl of `Foo` for `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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:8:9
|
||||
|
|
||||
LL | impl<T> Foo for T where NoData<T>: Foo {
|
||||
| ^^^ ^
|
||||
= note: 127 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Foo` for `NoData<T>`
|
||||
|
||||
|
@ -74,8 +98,16 @@ LL | impl<T> Bar for T where EvenLessData<T>: Baz {
|
|||
| ^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_20413`)
|
||||
= note: required because of the requirements on the impl of `Bar` for `AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
= note: required because of the requirements on the impl of `Baz` for `EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
note: required because of the requirements on the impl of `Bar` for `AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:28:9
|
||||
|
|
||||
LL | impl<T> Bar for T where EvenLessData<T>: Baz {
|
||||
| ^^^ ^
|
||||
note: required because of the requirements on the impl of `Baz` for `EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:36:9
|
||||
|
|
||||
LL | impl<T> Baz for T where AlmostNoData<T>: Bar {
|
||||
| ^^^ ^
|
||||
= note: 126 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Baz` for `EvenLessData<T>`
|
||||
|
||||
|
@ -89,8 +121,16 @@ LL | impl<T> Baz for T where AlmostNoData<T>: Bar {
|
|||
| ^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_20413`)
|
||||
= note: required because of the requirements on the impl of `Baz` for `EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
= note: required because of the requirements on the impl of `Bar` for `AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
note: required because of the requirements on the impl of `Baz` for `EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:36:9
|
||||
|
|
||||
LL | impl<T> Baz for T where AlmostNoData<T>: Bar {
|
||||
| ^^^ ^
|
||||
note: required because of the requirements on the impl of `Bar` for `AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<EvenLessData<AlmostNoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
|
||||
--> $DIR/issue-20413.rs:28:9
|
||||
|
|
||||
LL | impl<T> Bar for T where EvenLessData<T>: Baz {
|
||||
| ^^^ ^
|
||||
= note: 126 redundant requirements hidden
|
||||
= note: required because of the requirements on the impl of `Bar` for `AlmostNoData<T>`
|
||||
|
||||
|
|
|
@ -5,7 +5,11 @@ LL | let _: Box<dyn for<'b> Wrap<'b>> = Box::new(Wrapper(process));
|
|||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ `<P as Process<'_>>::Item` is not an iterator
|
||||
|
|
||||
= help: the trait `Iterator` is not implemented for `<P as Process<'_>>::Item`
|
||||
= note: required because of the requirements on the impl of `for<'b> Wrap<'b>` for `Wrapper<P>`
|
||||
note: required because of the requirements on the impl of `for<'b> Wrap<'b>` for `Wrapper<P>`
|
||||
--> $DIR/issue-22872.rs:7:13
|
||||
|
|
||||
LL | impl<'b, P> Wrap<'b> for Wrapper<P>
|
||||
| ^^^^^^^^ ^^^^^^^^^^
|
||||
= note: required for the cast to the object type `dyn for<'b> Wrap<'b>`
|
||||
help: consider further restricting the associated type
|
||||
|
|
||||
|
|
|
@ -5,7 +5,11 @@ LL | type Next = <GetNext<T::Next> as Next>::Next;
|
|||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_23122_2`)
|
||||
= note: required because of the requirements on the impl of `Next` for `GetNext<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<T as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next>`
|
||||
note: required because of the requirements on the impl of `Next` for `GetNext<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<T as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next>`
|
||||
--> $DIR/issue-23122-2.rs:8:15
|
||||
|
|
||||
LL | impl<T: Next> Next for GetNext<T> {
|
||||
| ^^^^ ^^^^^^^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -4,7 +4,11 @@ error[E0277]: the trait bound `<Col as Expression>::SqlType: NotNull` is not sat
|
|||
LL | #[derive(Debug, Copy, Clone)]
|
||||
| ^^^^ the trait `NotNull` is not implemented for `<Col as Expression>::SqlType`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `IntoNullable` for `<Col as Expression>::SqlType`
|
||||
note: required because of the requirements on the impl of `IntoNullable` for `<Col as Expression>::SqlType`
|
||||
--> $DIR/issue-38821.rs:9:18
|
||||
|
|
||||
LL | impl<T: NotNull> IntoNullable for T {
|
||||
| ^^^^^^^^^^^^ ^
|
||||
= note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
|
|
@ -7,7 +7,11 @@ LL | fn visit() {}
|
|||
LL | <() as Visit>::visit();
|
||||
| ^^^^^^^^^^^^^^^^^^^^ expected `()`, found `&()`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Visit` for `()`
|
||||
note: required because of the requirements on the impl of `Visit` for `()`
|
||||
--> $DIR/issue-39970.rs:13:6
|
||||
|
|
||||
LL | impl Visit for () where
|
||||
| ^^^^^ ^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -8,9 +8,17 @@ LL | f(Foo(Arc::new(Bar::B(None))));
|
|||
| ^ `Rc<Foo>` cannot be shared between threads safely
|
||||
|
|
||||
= help: within `Bar`, the trait `Sync` is not implemented for `Rc<Foo>`
|
||||
= note: required because it appears within the type `Bar`
|
||||
note: required because it appears within the type `Bar`
|
||||
--> $DIR/issue-40827.rs:6:6
|
||||
|
|
||||
LL | enum Bar {
|
||||
| ^^^
|
||||
= note: required because of the requirements on the impl of `Send` for `Arc<Bar>`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/issue-40827.rs:4:8
|
||||
|
|
||||
LL | struct Foo(Arc<Bar>);
|
||||
| ^^^
|
||||
|
||||
error[E0277]: `Rc<Foo>` cannot be sent between threads safely
|
||||
--> $DIR/issue-40827.rs:14:5
|
||||
|
@ -22,9 +30,17 @@ LL | f(Foo(Arc::new(Bar::B(None))));
|
|||
| ^ `Rc<Foo>` cannot be sent between threads safely
|
||||
|
|
||||
= help: within `Bar`, the trait `Send` is not implemented for `Rc<Foo>`
|
||||
= note: required because it appears within the type `Bar`
|
||||
note: required because it appears within the type `Bar`
|
||||
--> $DIR/issue-40827.rs:6:6
|
||||
|
|
||||
LL | enum Bar {
|
||||
| ^^^
|
||||
= note: required because of the requirements on the impl of `Send` for `Arc<Bar>`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/issue-40827.rs:4:8
|
||||
|
|
||||
LL | struct Foo(Arc<Bar>);
|
||||
| ^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
|
|
@ -21,7 +21,11 @@ LL | Struct { r: r }
|
|||
| --------------- this returned value is of type `Struct`
|
||||
|
|
||||
= help: within `Struct`, the trait `Sized` is not implemented for `(dyn A + 'static)`
|
||||
= note: required because it appears within the type `Struct`
|
||||
note: required because it appears within the type `Struct`
|
||||
--> $DIR/issue-5883.rs:3:8
|
||||
|
|
||||
LL | struct Struct {
|
||||
| ^^^^^^
|
||||
= note: the return type of a function must have a statically known size
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
|
|
@ -6,7 +6,11 @@ LL | let a = A {v: box B{v: None} as Box<dyn Foo + Send>};
|
|||
|
|
||||
= help: within `B`, the trait `Send` is not implemented for `Rc<RefCell<A>>`
|
||||
= note: required because it appears within the type `Option<Rc<RefCell<A>>>`
|
||||
= note: required because it appears within the type `B`
|
||||
note: required because it appears within the type `B`
|
||||
--> $DIR/issue-7013.rs:10:8
|
||||
|
|
||||
LL | struct B {
|
||||
| ^
|
||||
= note: required for the cast to the object type `dyn Foo + Send`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
|
|
@ -7,7 +7,11 @@ LL | fn take_param<T:Foo>(foo: &T) { }
|
|||
LL | take_param(&x);
|
||||
| ^^ the trait `Copy` is not implemented for `Box<{integer}>`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Foo` for `Box<{integer}>`
|
||||
note: required because of the requirements on the impl of `Foo` for `Box<{integer}>`
|
||||
--> $DIR/kindck-impl-type-params-2.rs:6:14
|
||||
|
|
||||
LL | impl<T:Copy> Foo for T {
|
||||
| ^^^ ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -4,7 +4,11 @@ error[E0277]: `T` cannot be sent between threads safely
|
|||
LL | let a = &t as &dyn Gettable<T>;
|
||||
| ^^ `T` cannot be sent between threads safely
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Gettable<T>` for `S<T>`
|
||||
note: required because of the requirements on the impl of `Gettable<T>` for `S<T>`
|
||||
--> $DIR/kindck-impl-type-params.rs:14:32
|
||||
|
|
||||
LL | impl<T: Send + Copy + 'static> Gettable<T> for S<T> {}
|
||||
| ^^^^^^^^^^^ ^^^^
|
||||
= note: required for the cast to the object type `dyn Gettable<T>`
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
|
@ -17,7 +21,11 @@ error[E0277]: the trait bound `T: Copy` is not satisfied
|
|||
LL | let a = &t as &dyn Gettable<T>;
|
||||
| ^^ the trait `Copy` is not implemented for `T`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Gettable<T>` for `S<T>`
|
||||
note: required because of the requirements on the impl of `Gettable<T>` for `S<T>`
|
||||
--> $DIR/kindck-impl-type-params.rs:14:32
|
||||
|
|
||||
LL | impl<T: Send + Copy + 'static> Gettable<T> for S<T> {}
|
||||
| ^^^^^^^^^^^ ^^^^
|
||||
= note: required for the cast to the object type `dyn Gettable<T>`
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
|
@ -30,7 +38,11 @@ error[E0277]: `T` cannot be sent between threads safely
|
|||
LL | let a: &dyn Gettable<T> = &t;
|
||||
| ^^ `T` cannot be sent between threads safely
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Gettable<T>` for `S<T>`
|
||||
note: required because of the requirements on the impl of `Gettable<T>` for `S<T>`
|
||||
--> $DIR/kindck-impl-type-params.rs:14:32
|
||||
|
|
||||
LL | impl<T: Send + Copy + 'static> Gettable<T> for S<T> {}
|
||||
| ^^^^^^^^^^^ ^^^^
|
||||
= note: required for the cast to the object type `dyn Gettable<T>`
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
|
@ -43,7 +55,11 @@ error[E0277]: the trait bound `T: Copy` is not satisfied
|
|||
LL | let a: &dyn Gettable<T> = &t;
|
||||
| ^^ the trait `Copy` is not implemented for `T`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Gettable<T>` for `S<T>`
|
||||
note: required because of the requirements on the impl of `Gettable<T>` for `S<T>`
|
||||
--> $DIR/kindck-impl-type-params.rs:14:32
|
||||
|
|
||||
LL | impl<T: Send + Copy + 'static> Gettable<T> for S<T> {}
|
||||
| ^^^^^^^^^^^ ^^^^
|
||||
= note: required for the cast to the object type `dyn Gettable<T>`
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
|
@ -64,7 +80,11 @@ error[E0277]: the trait bound `String: Copy` is not satisfied
|
|||
LL | let a = t as Box<dyn Gettable<String>>;
|
||||
| ^ the trait `Copy` is not implemented for `String`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Gettable<String>` for `S<String>`
|
||||
note: required because of the requirements on the impl of `Gettable<String>` for `S<String>`
|
||||
--> $DIR/kindck-impl-type-params.rs:14:32
|
||||
|
|
||||
LL | impl<T: Send + Copy + 'static> Gettable<T> for S<T> {}
|
||||
| ^^^^^^^^^^^ ^^^^
|
||||
= note: required for the cast to the object type `dyn Gettable<String>`
|
||||
|
||||
error[E0277]: the trait bound `Foo: Copy` is not satisfied
|
||||
|
@ -73,7 +93,11 @@ error[E0277]: the trait bound `Foo: Copy` is not satisfied
|
|||
LL | let a: Box<dyn Gettable<Foo>> = t;
|
||||
| ^ the trait `Copy` is not implemented for `Foo`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Gettable<Foo>` for `S<Foo>`
|
||||
note: required because of the requirements on the impl of `Gettable<Foo>` for `S<Foo>`
|
||||
--> $DIR/kindck-impl-type-params.rs:14:32
|
||||
|
|
||||
LL | impl<T: Send + Copy + 'static> Gettable<T> for S<T> {}
|
||||
| ^^^^^^^^^^^ ^^^^
|
||||
= note: required for the cast to the object type `dyn Gettable<Foo>`
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
|
|
@ -7,7 +7,11 @@ LL | fn take_param<T:Foo>(foo: &T) { }
|
|||
LL | take_param(&x);
|
||||
| ^^ the trait `Copy` is not implemented for `Box<{integer}>`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Foo` for `Box<{integer}>`
|
||||
note: required because of the requirements on the impl of `Foo` for `Box<{integer}>`
|
||||
--> $DIR/kindck-inherited-copy-bound.rs:14:14
|
||||
|
|
||||
LL | impl<T:Copy> Foo for T {
|
||||
| ^^^ ^
|
||||
|
||||
error[E0038]: the trait `Foo` cannot be made into an object
|
||||
--> $DIR/kindck-inherited-copy-bound.rs:28:19
|
||||
|
|
|
@ -7,7 +7,11 @@ LL | fn take_param<T:Foo>(foo: &T) { }
|
|||
LL | take_param(&x);
|
||||
| ^^ the trait `Copy` is not implemented for `Box<{integer}>`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Foo` for `Box<{integer}>`
|
||||
note: required because of the requirements on the impl of `Foo` for `Box<{integer}>`
|
||||
--> $DIR/kindck-inherited-copy-bound.rs:14:14
|
||||
|
|
||||
LL | impl<T:Copy> Foo for T {
|
||||
| ^^^ ^
|
||||
|
||||
error[E0038]: the trait `Foo` cannot be made into an object
|
||||
--> $DIR/kindck-inherited-copy-bound.rs:28:13
|
||||
|
|
|
@ -8,7 +8,11 @@ LL | bar(&x);
|
|||
| ^^^ `NoSync` cannot be shared between threads safely
|
||||
|
|
||||
= help: within `&Foo`, the trait `Sync` is not implemented for `NoSync`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/mutable-enum-indirect.rs:11:6
|
||||
|
|
||||
LL | enum Foo { A(NoSync) }
|
||||
| ^^^
|
||||
= note: required because it appears within the type `&Foo`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
|
|
@ -17,8 +17,16 @@ LL | F: Send + 'static,
|
|||
| ---- required by this bound in `spawn`
|
||||
|
|
||||
= help: within `[closure@$DIR/no-send-res-ports.rs:25:19: 29:6]`, the trait `Send` is not implemented for `Rc<()>`
|
||||
= note: required because it appears within the type `Port<()>`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Port<()>`
|
||||
--> $DIR/no-send-res-ports.rs:5:8
|
||||
|
|
||||
LL | struct Port<T>(Rc<T>);
|
||||
| ^^^^
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/no-send-res-ports.rs:9:12
|
||||
|
|
||||
LL | struct Foo {
|
||||
| ^^^
|
||||
= note: required because it appears within the type `[closure@$DIR/no-send-res-ports.rs:25:19: 29:6]`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
|
|
@ -8,7 +8,11 @@ LL | bar(x);
|
|||
| ^^^ `NoSend` cannot be sent between threads safely
|
||||
|
|
||||
= help: within `Foo`, the trait `Send` is not implemented for `NoSend`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/no_send-enum.rs:8:6
|
||||
|
|
||||
LL | enum Foo {
|
||||
| ^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -8,7 +8,11 @@ LL | bar(x);
|
|||
| ^^^ `NoSync` cannot be shared between threads safely
|
||||
|
|
||||
= help: within `Foo`, the trait `Sync` is not implemented for `NoSync`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/no_share-enum.rs:8:6
|
||||
|
|
||||
LL | enum Foo { A(NoSync) }
|
||||
| ^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -7,9 +7,17 @@ LL | fn is_zen<T: Zen>(_: T) {}
|
|||
LL | is_zen(x)
|
||||
| ^ `T` cannot be shared between threads safely
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Zen` for `&T`
|
||||
note: required because of the requirements on the impl of `Zen` for `&T`
|
||||
--> $DIR/phantom-auto-trait.rs:10:24
|
||||
|
|
||||
LL | unsafe impl<'a, T: 'a> Zen for &'a T where T: Sync {}
|
||||
| ^^^ ^^^^^
|
||||
= note: required because it appears within the type `PhantomData<&T>`
|
||||
= note: required because it appears within the type `Guard<'_, T>`
|
||||
note: required because it appears within the type `Guard<'_, T>`
|
||||
--> $DIR/phantom-auto-trait.rs:12:8
|
||||
|
|
||||
LL | struct Guard<'a, T: 'a> {
|
||||
| ^^^^^
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
LL | fn not_sync<T: std::marker::Sync>(x: Guard<T>) {
|
||||
|
@ -24,10 +32,22 @@ LL | fn is_zen<T: Zen>(_: T) {}
|
|||
LL | is_zen(x)
|
||||
| ^ `T` cannot be shared between threads safely
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Zen` for `&T`
|
||||
note: required because of the requirements on the impl of `Zen` for `&T`
|
||||
--> $DIR/phantom-auto-trait.rs:10:24
|
||||
|
|
||||
LL | unsafe impl<'a, T: 'a> Zen for &'a T where T: Sync {}
|
||||
| ^^^ ^^^^^
|
||||
= note: required because it appears within the type `PhantomData<&T>`
|
||||
= note: required because it appears within the type `Guard<'_, T>`
|
||||
= note: required because it appears within the type `Nested<Guard<'_, T>>`
|
||||
note: required because it appears within the type `Guard<'_, T>`
|
||||
--> $DIR/phantom-auto-trait.rs:12:8
|
||||
|
|
||||
LL | struct Guard<'a, T: 'a> {
|
||||
| ^^^^^
|
||||
note: required because it appears within the type `Nested<Guard<'_, T>>`
|
||||
--> $DIR/phantom-auto-trait.rs:16:8
|
||||
|
|
||||
LL | struct Nested<T>(T);
|
||||
| ^^^^^^
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
LL | fn nested_not_sync<T: std::marker::Sync>(x: Nested<Guard<T>>) {
|
||||
|
|
|
@ -8,7 +8,11 @@ LL | let _: AssertSync<Foo> = unimplemented!();
|
|||
| ^^^^^^^^^^^^^^^ `*const Bar` cannot be shared between threads safely
|
||||
|
|
||||
= help: within `Foo`, the trait `Sync` is not implemented for `*const Bar`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/recursive-requirements.rs:5:12
|
||||
|
|
||||
LL | pub struct Foo {
|
||||
| ^^^
|
||||
|
||||
error[E0277]: `*const Foo` cannot be shared between threads safely
|
||||
--> $DIR/recursive-requirements.rs:16:12
|
||||
|
@ -20,9 +24,17 @@ LL | let _: AssertSync<Foo> = unimplemented!();
|
|||
| ^^^^^^^^^^^^^^^ `*const Foo` cannot be shared between threads safely
|
||||
|
|
||||
= help: within `Foo`, the trait `Sync` is not implemented for `*const Foo`
|
||||
= note: required because it appears within the type `Bar`
|
||||
note: required because it appears within the type `Bar`
|
||||
--> $DIR/recursive-requirements.rs:10:12
|
||||
|
|
||||
LL | pub struct Bar {
|
||||
| ^^^
|
||||
= note: required because it appears within the type `PhantomData<Bar>`
|
||||
= note: required because it appears within the type `Foo`
|
||||
note: required because it appears within the type `Foo`
|
||||
--> $DIR/recursive-requirements.rs:5:12
|
||||
|
|
||||
LL | pub struct Foo {
|
||||
| ^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
|
|
@ -10,7 +10,11 @@ LL | #![feature(specialization)]
|
|||
|
||||
error[E0275]: overflow evaluating the requirement `i32: Check`
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Iterate` for `i32`
|
||||
note: required because of the requirements on the impl of `Iterate` for `i32`
|
||||
--> $DIR/issue-38091-2.rs:11:13
|
||||
|
|
||||
LL | impl<'a, T> Iterate<'a> for T
|
||||
| ^^^^^^^^^^^ ^
|
||||
|
||||
error: aborting due to previous error; 1 warning emitted
|
||||
|
||||
|
|
|
@ -14,8 +14,16 @@ error[E0275]: overflow evaluating the requirement `T: FromA<U>`
|
|||
LL | x.foo(y.to()).to()
|
||||
| ^^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `FromA<U>` for `T`
|
||||
= note: required because of the requirements on the impl of `ToA<T>` for `U`
|
||||
note: required because of the requirements on the impl of `FromA<U>` for `T`
|
||||
--> $DIR/issue-39448.rs:24:29
|
||||
|
|
||||
LL | impl<T: A, U: A + FromA<T>> FromA<T> for U {
|
||||
| ^^^^^^^^ ^
|
||||
note: required because of the requirements on the impl of `ToA<T>` for `U`
|
||||
--> $DIR/issue-39448.rs:34:12
|
||||
|
|
||||
LL | impl<T, U> ToA<U> for T
|
||||
| ^^^^^^ ^
|
||||
|
||||
error: aborting due to previous error; 1 warning emitted
|
||||
|
||||
|
|
|
@ -80,7 +80,11 @@ LL | <str as Foo<u8>>::bar;
|
|||
| ^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `str`
|
||||
= note: required because of the requirements on the impl of `Foo<'_, '_, u8>` for `str`
|
||||
note: required because of the requirements on the impl of `Foo<'_, '_, u8>` for `str`
|
||||
--> $DIR/substs-ppaux.rs:11:17
|
||||
|
|
||||
LL | impl<'a,'b,T,S> Foo<'a, 'b, S> for T {}
|
||||
| ^^^^^^^^^^^^^^ ^
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
|
|
|
@ -80,7 +80,11 @@ LL | <str as Foo<u8>>::bar;
|
|||
| ^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `str`
|
||||
= note: required because of the requirements on the impl of `Foo<'_#0r, '_#1r, u8>` for `str`
|
||||
note: required because of the requirements on the impl of `Foo<'_#0r, '_#1r, u8>` for `str`
|
||||
--> $DIR/substs-ppaux.rs:11:17
|
||||
|
|
||||
LL | impl<'a,'b,T,S> Foo<'a, 'b, S> for T {}
|
||||
| ^^^^^^^^^^^^^^ ^
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
|
|
|
@ -10,9 +10,21 @@ LL | SourceDatabase::parse(db);
|
|||
= note: required because it appears within the type `*const SalsaStorage`
|
||||
= note: required because it appears within the type `Unique<SalsaStorage>`
|
||||
= note: required because it appears within the type `Box<SalsaStorage>`
|
||||
= note: required because it appears within the type `Runtime<RootDatabase>`
|
||||
= note: required because it appears within the type `RootDatabase`
|
||||
= note: required because of the requirements on the impl of `SourceDatabase` for `RootDatabase`
|
||||
note: required because it appears within the type `Runtime<RootDatabase>`
|
||||
--> $DIR/cycle-cache-err-60010.rs:23:8
|
||||
|
|
||||
LL | struct Runtime<DB: Database> {
|
||||
| ^^^^^^^
|
||||
note: required because it appears within the type `RootDatabase`
|
||||
--> $DIR/cycle-cache-err-60010.rs:20:8
|
||||
|
|
||||
LL | struct RootDatabase {
|
||||
| ^^^^^^^^^^^^
|
||||
note: required because of the requirements on the impl of `SourceDatabase` for `RootDatabase`
|
||||
--> $DIR/cycle-cache-err-60010.rs:43:9
|
||||
|
|
||||
LL | impl<T> SourceDatabase for T
|
||||
| ^^^^^^^^^^^^^^ ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ struct C<'a>(&'a ());
|
|||
struct X<T: Y>(T::P);
|
||||
|
||||
impl<T: NotAuto> NotAuto for Box<T> {}
|
||||
impl<T: Y> NotAuto for X<T> where T::P: NotAuto {}
|
||||
impl<T: Y> NotAuto for X<T> where T::P: NotAuto {} //~ NOTE: required
|
||||
impl<'a> NotAuto for C<'a> {}
|
||||
|
||||
fn is_send<S: NotAuto>() {}
|
||||
|
@ -26,5 +26,4 @@ fn main() {
|
|||
// Should only be a few notes.
|
||||
is_send::<X<C<'static>>>();
|
||||
//~^ ERROR overflow evaluating
|
||||
//~| NOTE: required
|
||||
}
|
||||
|
|
|
@ -7,7 +7,11 @@ LL | fn is_send<S: NotAuto>() {}
|
|||
LL | is_send::<X<C<'static>>>();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `NotAuto` for `X<C<'static>>`
|
||||
note: required because of the requirements on the impl of `NotAuto` for `X<C<'static>>`
|
||||
--> $DIR/lifetime.rs:19:12
|
||||
|
|
||||
LL | impl<T: Y> NotAuto for X<T> where T::P: NotAuto {}
|
||||
| ^^^^^^^ ^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -7,7 +7,11 @@ LL | fn is_ee<T: Combo>(t: T) {
|
|||
LL | is_ee(4);
|
||||
| ^^^^^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Combo` for `{integer}`
|
||||
note: required because of the requirements on the impl of `Combo` for `{integer}`
|
||||
--> $DIR/simultaneous.rs:11:34
|
||||
|
|
||||
LL | impl<T: Tweedledee + Tweedledum> Combo for T {}
|
||||
| ^^^^^ ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -7,7 +7,11 @@ LL | fn copy<T: Magic>(x: T) -> (T, T) { (x, x) }
|
|||
LL | let (a, b) = copy(NoClone);
|
||||
| ^^^^
|
||||
|
|
||||
= note: required because of the requirements on the impl of `Magic` for `NoClone`
|
||||
note: required because of the requirements on the impl of `Magic` for `NoClone`
|
||||
--> $DIR/supertrait.rs:5:16
|
||||
|
|
||||
LL | impl<T: Magic> Magic for T {}
|
||||
| ^^^^^ ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -69,7 +69,11 @@ LL | is_send(Box::new(Outer2(TestType)));
|
|||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ `dummy3::TestType` cannot be sent between threads safely
|
||||
|
|
||||
= help: within `Outer2<dummy3::TestType>`, the trait `Send` is not implemented for `dummy3::TestType`
|
||||
= note: required because it appears within the type `Outer2<dummy3::TestType>`
|
||||
note: required because it appears within the type `Outer2<dummy3::TestType>`
|
||||
--> $DIR/negated-auto-traits-error.rs:12:8
|
||||
|
|
||||
LL | struct Outer2<T>(T);
|
||||
| ^^^^^^
|
||||
= note: required because of the requirements on the impl of `Send` for `Unique<Outer2<dummy3::TestType>>`
|
||||
= note: required because it appears within the type `Box<Outer2<dummy3::TestType>>`
|
||||
|
||||
|
@ -86,7 +90,11 @@ LL | is_sync(Outer2(TestType));
|
|||
| help: consider borrowing here: `&Outer2(TestType)`
|
||||
|
|
||||
= note: the trait bound `main::TestType: Sync` is not satisfied
|
||||
= note: required because of the requirements on the impl of `Sync` for `Outer2<main::TestType>`
|
||||
note: required because of the requirements on the impl of `Sync` for `Outer2<main::TestType>`
|
||||
--> $DIR/negated-auto-traits-error.rs:14:22
|
||||
|
|
||||
LL | unsafe impl<T: Send> Sync for Outer2<T> {}
|
||||
| ^^^^ ^^^^^^^^^
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
|
|
|
@ -26,7 +26,11 @@ LL | mem::size_of::<Misc<U>>();
|
|||
LL | pub const fn size_of<T>() -> usize {
|
||||
| - required by this bound in `std::mem::size_of`
|
||||
|
|
||||
= note: required because it appears within the type `Misc<U>`
|
||||
note: required because it appears within the type `Misc<U>`
|
||||
--> $DIR/suggest-where-clause.rs:3:8
|
||||
|
|
||||
LL | struct Misc<T:?Sized>(T);
|
||||
| ^^^^
|
||||
|
||||
error[E0277]: the trait bound `u64: From<T>` is not satisfied
|
||||
--> $DIR/suggest-where-clause.rs:15:5
|
||||
|
|
|
@ -19,7 +19,11 @@ LL | is_sync::<MyTypeWUnsafe>();
|
|||
| ^^^^^^^^^^^^^^^^^^^^^^^^ `UnsafeCell<u8>` cannot be shared between threads safely
|
||||
|
|
||||
= help: within `MyTypeWUnsafe`, the trait `Sync` is not implemented for `UnsafeCell<u8>`
|
||||
= note: required because it appears within the type `MyTypeWUnsafe`
|
||||
note: required because it appears within the type `MyTypeWUnsafe`
|
||||
--> $DIR/typeck-default-trait-impl-negation-sync.rs:21:8
|
||||
|
|
||||
LL | struct MyTypeWUnsafe {
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
error[E0277]: `Managed` cannot be shared between threads safely
|
||||
--> $DIR/typeck-default-trait-impl-negation-sync.rs:39:5
|
||||
|
@ -31,7 +35,11 @@ LL | is_sync::<MyTypeManaged>();
|
|||
| ^^^^^^^^^^^^^^^^^^^^^^^^ `Managed` cannot be shared between threads safely
|
||||
|
|
||||
= help: within `MyTypeManaged`, the trait `Sync` is not implemented for `Managed`
|
||||
= note: required because it appears within the type `MyTypeManaged`
|
||||
note: required because it appears within the type `MyTypeManaged`
|
||||
--> $DIR/typeck-default-trait-impl-negation-sync.rs:25:8
|
||||
|
|
||||
LL | struct MyTypeManaged {
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
|
|
@ -30,7 +30,11 @@ LL | test(ms);
|
|||
| ^^^^ `UnsafeCell<NoSync>` cannot be shared between threads safely
|
||||
|
|
||||
= help: within `MySync<NoSync>`, the trait `Sync` is not implemented for `UnsafeCell<NoSync>`
|
||||
= note: required because it appears within the type `MySync<NoSync>`
|
||||
note: required because it appears within the type `MySync<NoSync>`
|
||||
--> $DIR/typeck-unsafe-always-share.rs:8:8
|
||||
|
|
||||
LL | struct MySync<T> {
|
||||
| ^^^^^^
|
||||
|
||||
error[E0277]: `NoSync` cannot be shared between threads safely
|
||||
--> $DIR/typeck-unsafe-always-share.rs:30:10
|
||||
|
|
|
@ -14,7 +14,11 @@ LL | A as fn(str) -> A<str>;
|
|||
| ^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `A<str>`, the trait `Sized` is not implemented for `str`
|
||||
= note: required because it appears within the type `A<str>`
|
||||
note: required because it appears within the type `A<str>`
|
||||
--> $DIR/issue-50940-with-feature.rs:5:12
|
||||
|
|
||||
LL | struct A<X: ?Sized>(X);
|
||||
| ^
|
||||
= note: the return type of a function must have a statically known size
|
||||
|
||||
error: aborting due to previous error; 1 warning emitted
|
||||
|
|
|
@ -15,7 +15,11 @@ LL | udrop::<A<[u8]>>(A { 0: *foo() });
|
|||
| ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `A<[u8]>`, the trait `Sized` is not implemented for `[u8]`
|
||||
= note: required because it appears within the type `A<[u8]>`
|
||||
note: required because it appears within the type `A<[u8]>`
|
||||
--> $DIR/unsized-exprs.rs:3:8
|
||||
|
|
||||
LL | struct A<X: ?Sized>(X);
|
||||
| ^
|
||||
= note: structs must have a statically known size to be initialized
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
|
@ -25,7 +29,11 @@ LL | udrop::<A<[u8]>>(A(*foo()));
|
|||
| ^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `A<[u8]>`, the trait `Sized` is not implemented for `[u8]`
|
||||
= note: required because it appears within the type `A<[u8]>`
|
||||
note: required because it appears within the type `A<[u8]>`
|
||||
--> $DIR/unsized-exprs.rs:3:8
|
||||
|
|
||||
LL | struct A<X: ?Sized>(X);
|
||||
| ^
|
||||
= note: the return type of a function must have a statically known size
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
|
|
@ -301,7 +301,11 @@ LL | VI(Path1),
|
|||
| ^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Path1`, the trait `Sized` is not implemented for `(dyn PathHelper1 + 'static)`
|
||||
= note: required because it appears within the type `Path1`
|
||||
note: required because it appears within the type `Path1`
|
||||
--> $DIR/unsized-enum2.rs:16:8
|
||||
|
|
||||
LL | struct Path1(dyn PathHelper1);
|
||||
| ^^^^^
|
||||
= note: no field of an enum variant may have a dynamically sized type
|
||||
= help: change the field's type to have a statically known size
|
||||
help: borrowed types always have a statically known size
|
||||
|
@ -320,7 +324,11 @@ LL | VJ{x: Path2},
|
|||
| ^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Path2`, the trait `Sized` is not implemented for `(dyn PathHelper2 + 'static)`
|
||||
= note: required because it appears within the type `Path2`
|
||||
note: required because it appears within the type `Path2`
|
||||
--> $DIR/unsized-enum2.rs:17:8
|
||||
|
|
||||
LL | struct Path2(dyn PathHelper2);
|
||||
| ^^^^^
|
||||
= note: no field of an enum variant may have a dynamically sized type
|
||||
= help: change the field's type to have a statically known size
|
||||
help: borrowed types always have a statically known size
|
||||
|
@ -339,7 +347,11 @@ LL | VK(isize, Path3),
|
|||
| ^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Path3`, the trait `Sized` is not implemented for `(dyn PathHelper3 + 'static)`
|
||||
= note: required because it appears within the type `Path3`
|
||||
note: required because it appears within the type `Path3`
|
||||
--> $DIR/unsized-enum2.rs:18:8
|
||||
|
|
||||
LL | struct Path3(dyn PathHelper3);
|
||||
| ^^^^^
|
||||
= note: no field of an enum variant may have a dynamically sized type
|
||||
= help: change the field's type to have a statically known size
|
||||
help: borrowed types always have a statically known size
|
||||
|
@ -358,7 +370,11 @@ LL | VL{u: isize, x: Path4},
|
|||
| ^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Path4`, the trait `Sized` is not implemented for `(dyn PathHelper4 + 'static)`
|
||||
= note: required because it appears within the type `Path4`
|
||||
note: required because it appears within the type `Path4`
|
||||
--> $DIR/unsized-enum2.rs:19:8
|
||||
|
|
||||
LL | struct Path4(dyn PathHelper4);
|
||||
| ^^^^^
|
||||
= note: no field of an enum variant may have a dynamically sized type
|
||||
= help: change the field's type to have a statically known size
|
||||
help: borrowed types always have a statically known size
|
||||
|
|
|
@ -28,7 +28,11 @@ LL | fn bar2<T: ?Sized>() { is_sized::<Bar<T>>() }
|
|||
| |
|
||||
| this type parameter needs to be `std::marker::Sized`
|
||||
|
|
||||
= note: required because it appears within the type `Bar<T>`
|
||||
note: required because it appears within the type `Bar<T>`
|
||||
--> $DIR/unsized-struct.rs:11:8
|
||||
|
|
||||
LL | struct Bar<T: ?Sized> { data: T }
|
||||
| ^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
|
|
@ -41,7 +41,11 @@ LL | fn f8<X: ?Sized>(x1: &S<X>, x2: &S<X>) {
|
|||
LL | f5(x1);
|
||||
| ^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= note: required because it appears within the type `S<X>`
|
||||
note: required because it appears within the type `S<X>`
|
||||
--> $DIR/unsized3.rs:28:8
|
||||
|
|
||||
LL | struct S<X: ?Sized> {
|
||||
| ^
|
||||
help: consider relaxing the implicit `Sized` restriction
|
||||
|
|
||||
LL | fn f5<Y: ?Sized>(x: &Y) {}
|
||||
|
@ -55,7 +59,11 @@ LL | fn f9<X: ?Sized>(x1: Box<S<X>>) {
|
|||
LL | f5(&(*x1, 34));
|
||||
| ^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= note: required because it appears within the type `S<X>`
|
||||
note: required because it appears within the type `S<X>`
|
||||
--> $DIR/unsized3.rs:28:8
|
||||
|
|
||||
LL | struct S<X: ?Sized> {
|
||||
| ^
|
||||
= note: only the last element of a tuple may have a dynamically sized type
|
||||
|
||||
error[E0277]: the size for values of type `X` cannot be known at compilation time
|
||||
|
@ -66,7 +74,11 @@ LL | fn f10<X: ?Sized>(x1: Box<S<X>>) {
|
|||
LL | f5(&(32, *x1));
|
||||
| ^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= note: required because it appears within the type `S<X>`
|
||||
note: required because it appears within the type `S<X>`
|
||||
--> $DIR/unsized3.rs:28:8
|
||||
|
|
||||
LL | struct S<X: ?Sized> {
|
||||
| ^
|
||||
= note: required because it appears within the type `({integer}, S<X>)`
|
||||
= note: tuples must have a statically known size to be initialized
|
||||
|
||||
|
@ -81,7 +93,11 @@ LL | fn f10<X: ?Sized>(x1: Box<S<X>>) {
|
|||
LL | f5(&(32, *x1));
|
||||
| ^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= note: required because it appears within the type `S<X>`
|
||||
note: required because it appears within the type `S<X>`
|
||||
--> $DIR/unsized3.rs:28:8
|
||||
|
|
||||
LL | struct S<X: ?Sized> {
|
||||
| ^
|
||||
= note: required because it appears within the type `({integer}, S<X>)`
|
||||
help: consider relaxing the implicit `Sized` restriction
|
||||
|
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue