86 lines
3.1 KiB
Plaintext
86 lines
3.1 KiB
Plaintext
error[E0277]: `dyn for<'a, 'b> Fn(&'a Foo<'b>) -> &'a Foo<'b>` cannot be shared between threads safely
|
|
--> $DIR/rfc1623.rs:21:1
|
|
|
|
|
LL | / static SOME_STRUCT: &SomeStruct = &SomeStruct {
|
|
LL | | foo: &Foo { bools: &[false, true] },
|
|
LL | | bar: &Bar { bools: &[true, true] },
|
|
LL | | f: &id,
|
|
LL | |
|
|
LL | | };
|
|
| |__^ `dyn for<'a, 'b> Fn(&'a Foo<'b>) -> &'a Foo<'b>` cannot be shared between threads safely
|
|
|
|
|
= help: within `&SomeStruct`, the trait `Sync` is not implemented for `dyn for<'a, 'b> Fn(&'a Foo<'b>) -> &'a Foo<'b>`
|
|
= note: required because it appears within the type `&dyn for<'a, 'b> Fn(&'a Foo<'b>) -> &'a Foo<'b>`
|
|
note: required because it appears within the type `SomeStruct`
|
|
--> $DIR/rfc1623.rs:11:8
|
|
|
|
|
LL | struct SomeStruct<'x, 'y, 'z: 'x> {
|
|
| ^^^^^^^^^^
|
|
= note: required because it appears within the type `&SomeStruct`
|
|
= note: shared static variables must have a type that implements `Sync`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/rfc1623.rs:21:35
|
|
|
|
|
LL | static SOME_STRUCT: &SomeStruct = &SomeStruct {
|
|
| ___________________________________^
|
|
LL | | foo: &Foo { bools: &[false, true] },
|
|
LL | | bar: &Bar { bools: &[true, true] },
|
|
LL | | f: &id,
|
|
LL | |
|
|
LL | | };
|
|
| |_^ one type is more general than the other
|
|
|
|
|
= note: expected type `for<'r, 's> Fn<(&'r Foo<'s>,)>`
|
|
found type `Fn<(&Foo<'_>,)>`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/rfc1623.rs:21:35
|
|
|
|
|
LL | static SOME_STRUCT: &SomeStruct = &SomeStruct {
|
|
| ___________________________________^
|
|
LL | | foo: &Foo { bools: &[false, true] },
|
|
LL | | bar: &Bar { bools: &[true, true] },
|
|
LL | | f: &id,
|
|
LL | |
|
|
LL | | };
|
|
| |_^ one type is more general than the other
|
|
|
|
|
= note: expected type `for<'r, 's> Fn<(&'r Foo<'s>,)>`
|
|
found type `Fn<(&Foo<'_>,)>`
|
|
|
|
error: implementation of `FnOnce` is not general enough
|
|
--> $DIR/rfc1623.rs:21:35
|
|
|
|
|
LL | static SOME_STRUCT: &SomeStruct = &SomeStruct {
|
|
| ___________________________________^
|
|
LL | | foo: &Foo { bools: &[false, true] },
|
|
LL | | bar: &Bar { bools: &[true, true] },
|
|
LL | | f: &id,
|
|
LL | |
|
|
LL | | };
|
|
| |_^ implementation of `FnOnce` is not general enough
|
|
|
|
|
= note: `fn(&'2 Foo<'_>) -> &'2 Foo<'_> {id::<&'2 Foo<'_>>}` must implement `FnOnce<(&'1 Foo<'_>,)>`, for any lifetime `'1`...
|
|
= note: ...but it actually implements `FnOnce<(&'2 Foo<'_>,)>`, for some specific lifetime `'2`
|
|
|
|
error: implementation of `FnOnce` is not general enough
|
|
--> $DIR/rfc1623.rs:21:35
|
|
|
|
|
LL | static SOME_STRUCT: &SomeStruct = &SomeStruct {
|
|
| ___________________________________^
|
|
LL | | foo: &Foo { bools: &[false, true] },
|
|
LL | | bar: &Bar { bools: &[true, true] },
|
|
LL | | f: &id,
|
|
LL | |
|
|
LL | | };
|
|
| |_^ implementation of `FnOnce` is not general enough
|
|
|
|
|
= note: `fn(&Foo<'2>) -> &Foo<'2> {id::<&Foo<'2>>}` must implement `FnOnce<(&Foo<'1>,)>`, for any lifetime `'1`...
|
|
= note: ...but it actually implements `FnOnce<(&Foo<'2>,)>`, for some specific lifetime `'2`
|
|
|
|
error: aborting due to 5 previous errors
|
|
|
|
Some errors have detailed explanations: E0277, E0308.
|
|
For more information about an error, try `rustc --explain E0277`.
|