Rollup merge of #138998 - rperier:donot_suggest_to_use_impl_trait_in_closure_params, r=Noratrieb
Don't suggest the use of `impl Trait` in closure parameter Fixes #138932
This commit is contained in:
commit
573ebf011e
3 changed files with 38 additions and 6 deletions
5
tests/ui/traits/dont-suggest-impl-as-closure-arg.rs
Normal file
5
tests/ui/traits/dont-suggest-impl-as-closure-arg.rs
Normal file
|
@ -0,0 +1,5 @@
|
|||
// Suggestion to use impl trait in closure parameter is invalid, see issue 138932
|
||||
fn main() {
|
||||
let c = |f: dyn Fn()| f();
|
||||
//~^ ERROR: the size for values of type `(dyn Fn() + 'static)` cannot be known at compilation time
|
||||
}
|
16
tests/ui/traits/dont-suggest-impl-as-closure-arg.stderr
Normal file
16
tests/ui/traits/dont-suggest-impl-as-closure-arg.stderr
Normal file
|
@ -0,0 +1,16 @@
|
|||
error[E0277]: the size for values of type `(dyn Fn() + 'static)` cannot be known at compilation time
|
||||
--> $DIR/dont-suggest-impl-as-closure-arg.rs:3:17
|
||||
|
|
||||
LL | let c = |f: dyn Fn()| f();
|
||||
| ^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `(dyn Fn() + 'static)`
|
||||
= 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
|
||||
|
|
||||
LL | let c = |f: &dyn Fn()| f();
|
||||
| +
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
Loading…
Add table
Add a link
Reference in a new issue