This commit improves the diagnostic when a type parameter is expected and a closure is found, noting that each closure has a distinct type and therefore could not always match the caller-chosen type of the parameter. Signed-off-by: David Wood <david@davidtw.co>
15 lines
599 B
Text
15 lines
599 B
Text
error[E0308]: mismatched types
|
|
--> $DIR/issue-51154.rs:2:30
|
|
|
|
|
LL | fn foo<F: FnMut()>() {
|
|
| - this type parameter
|
|
LL | let _: Box<F> = Box::new(|| ());
|
|
| ^^^^^ expected type parameter `F`, found closure
|
|
|
|
|
= note: expected type parameter `F`
|
|
found closure `[closure@$DIR/issue-51154.rs:2:30: 2:35]`
|
|
= help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `F`
|
|
|
|
error: aborting due to previous error
|
|
|
|
For more information about this error, try `rustc --explain E0308`.
|