diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2023-01-08 01:53:08 +0000 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2023-01-08 01:53:08 +0000 |
| commit | d85d38b7b8ad9faa12231bbcc9a0214410c0719c (patch) | |
| tree | ad2661dbb9326b56f373d07ac481c2faa5108400 | |
| parent | b1691f6413a4afd7529ab309965123cc63e82021 (diff) | |
| download | rust-d85d38b7b8ad9faa12231bbcc9a0214410c0719c.tar.gz rust-d85d38b7b8ad9faa12231bbcc9a0214410c0719c.zip | |
Add test
| -rw-r--r-- | src/test/ui/type/closure-with-wrong-borrows.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/type/closure-with-wrong-borrows.stderr | 23 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/test/ui/type/closure-with-wrong-borrows.rs b/src/test/ui/type/closure-with-wrong-borrows.rs new file mode 100644 index 00000000000..5f6a78351a2 --- /dev/null +++ b/src/test/ui/type/closure-with-wrong-borrows.rs @@ -0,0 +1,10 @@ +struct S<'a>(&'a str); + +fn f(inner: fn(&str, &S)) { +} + +#[allow(unreachable_code)] +fn main() { + let inner: fn(_, _) = unimplemented!(); + f(inner); //~ ERROR mismatched types +} diff --git a/src/test/ui/type/closure-with-wrong-borrows.stderr b/src/test/ui/type/closure-with-wrong-borrows.stderr new file mode 100644 index 00000000000..e13db6c325a --- /dev/null +++ b/src/test/ui/type/closure-with-wrong-borrows.stderr @@ -0,0 +1,23 @@ +error[E0308]: mismatched types + --> $DIR/closure-with-wrong-borrows.rs:9:7 + | +LL | f(inner); + | - ^^^^^ one type is more general than the other + | | + | arguments to this function are incorrect + | + = note: expected fn pointer `for<'a, 'b, 'c> fn(&'a str, &'b S<'c>)` + found fn pointer `fn(_, _)` +note: function defined here + --> $DIR/closure-with-wrong-borrows.rs:3:4 + | +LL | fn f(inner: fn(&str, &S)) { + | ^ ------------------- +help: consider removing the `` + | +LL | f(inner); + | + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. |
