diff options
| author | David Wood <david@davidtw.co> | 2020-09-14 15:21:38 +0100 |
|---|---|---|
| committer | David Wood <david@davidtw.co> | 2020-09-14 15:21:38 +0100 |
| commit | 01f65afa4adff6dfbea84621e6851c028aaa7159 (patch) | |
| tree | 53426d492d50b6db269e91bce49a8a6196b22263 /src | |
| parent | b5f55b7e1562286798358730e06b0ba13b4c0ea6 (diff) | |
| download | rust-01f65afa4adff6dfbea84621e6851c028aaa7159.tar.gz rust-01f65afa4adff6dfbea84621e6851c028aaa7159.zip | |
diag: improve closure/generic parameter mismatch
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>
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/issues/issue-51154.rs | 6 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-51154.stderr | 15 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-51154.rs b/src/test/ui/issues/issue-51154.rs new file mode 100644 index 00000000000..12903f79010 --- /dev/null +++ b/src/test/ui/issues/issue-51154.rs @@ -0,0 +1,6 @@ +fn foo<F: FnMut()>() { + let _: Box<F> = Box::new(|| ()); + //~^ ERROR mismatched types +} + +fn main() {} diff --git a/src/test/ui/issues/issue-51154.stderr b/src/test/ui/issues/issue-51154.stderr new file mode 100644 index 00000000000..3c3428f3096 --- /dev/null +++ b/src/test/ui/issues/issue-51154.stderr @@ -0,0 +1,15 @@ +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`. |
