rust/tests/ui/suggestions/wrap-dyn-in-suggestion-issu...

79 lines
3.6 KiB
Plaintext

warning: the feature `dyn_star` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/wrap-dyn-in-suggestion-issue-120223.rs:1:12
|
LL | #![feature(dyn_star)]
| ^^^^^^^^
|
= note: see issue #102425 <https://github.com/rust-lang/rust/issues/102425> for more information
= note: `#[warn(incomplete_features)]` on by default
error[E0599]: no method named `method` found for type parameter `T` in the current scope
--> $DIR/wrap-dyn-in-suggestion-issue-120223.rs:24:7
|
LL | pub fn in_ty_param<T: Fn() -> dyn std::fmt::Debug> (t: T) {
| - method `method` not found for this type parameter
LL | t.method();
| ^^^^^^ method not found in `T`
|
= help: items from traits can only be used if the type parameter is bounded by the trait
help: the following trait defines an item `method`, perhaps you need to restrict type parameter `T` with it:
|
LL | pub fn in_ty_param<T: Fn() -> (dyn std::fmt::Debug) + Trait> (t: T) {
| + +++++++++
error[E0277]: the size for values of type `T` cannot be known at compilation time
--> $DIR/wrap-dyn-in-suggestion-issue-120223.rs:29:21
|
LL | fn with_sized<T: Fn() -> &'static (dyn std::fmt::Debug) + ?Sized>() {
| - this type parameter needs to be `Sized`
LL | without_sized::<T>();
| ^ doesn't have a size known at compile-time
|
note: required by an implicit `Sized` bound in `without_sized`
--> $DIR/wrap-dyn-in-suggestion-issue-120223.rs:33:18
|
LL | fn without_sized<T: Fn() -> &'static dyn std::fmt::Debug>() {}
| ^ required by the implicit `Sized` requirement on this type parameter in `without_sized`
help: consider removing the `?Sized` bound to make the type parameter `Sized`
|
LL - fn with_sized<T: Fn() -> &'static (dyn std::fmt::Debug) + ?Sized>() {
LL + fn with_sized<T: Fn() -> &'static (dyn std::fmt::Debug)>() {
|
help: consider relaxing the implicit `Sized` restriction
|
LL | fn without_sized<T: Fn() -> &'static (dyn std::fmt::Debug) + ?Sized>() {}
| + ++++++++++
error[E0310]: the parameter type `impl FnOnce(T) -> dyn Future<Output = ()>` may not live long enough
--> $DIR/wrap-dyn-in-suggestion-issue-120223.rs:8:5
|
LL | Box::new(executor)
| ^^^^^^^^^^^^^^^^^^
| |
| the parameter type `impl FnOnce(T) -> dyn Future<Output = ()>` must be valid for the static lifetime...
| ...so that the type `impl FnOnce(T) -> dyn Future<Output = ()>` will meet its required lifetime bounds
|
help: consider adding an explicit lifetime bound
|
LL | executor: impl FnOnce(T) -> (dyn Future<Output = ()>) + 'static,
| + +++++++++++
error[E0310]: the parameter type `impl FnOnce(T) -> Future<Output = ()>` may not live long enough
--> $DIR/wrap-dyn-in-suggestion-issue-120223.rs:14:5
|
LL | Box::new(executor)
| ^^^^^^^^^^^^^^^^^^
| |
| the parameter type `impl FnOnce(T) -> Future<Output = ()>` must be valid for the static lifetime...
| ...so that the type `impl FnOnce(T) -> Future<Output = ()>` will meet its required lifetime bounds
|
help: consider adding an explicit lifetime bound
|
LL | executor: impl FnOnce(T) -> (dyn* Future<Output = ()>) + 'static,
| + +++++++++++
error: aborting due to 4 previous errors; 1 warning emitted
Some errors have detailed explanations: E0277, E0310, E0599.
For more information about an error, try `rustc --explain E0277`.