summaryrefslogtreecommitdiffstats
path: root/src/test/ui/mismatched_types/fn-variance-1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/mismatched_types/fn-variance-1.rs')
-rw-r--r--src/test/ui/mismatched_types/fn-variance-1.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/ui/mismatched_types/fn-variance-1.rs b/src/test/ui/mismatched_types/fn-variance-1.rs
new file mode 100644
index 000000000..b8a6c9a9b
--- /dev/null
+++ b/src/test/ui/mismatched_types/fn-variance-1.rs
@@ -0,0 +1,17 @@
+fn takes_imm(x: &isize) { }
+
+fn takes_mut(x: &mut isize) { }
+
+fn apply<T, F>(t: T, f: F) where F: FnOnce(T) {
+ f(t)
+}
+
+fn main() {
+ apply(&3, takes_imm);
+ apply(&3, takes_mut);
+ //~^ ERROR type mismatch
+
+ apply(&mut 3, takes_mut);
+ apply(&mut 3, takes_imm);
+ //~^ ERROR type mismatch
+}