summaryrefslogtreecommitdiffstats
path: root/tests/ui/borrowck/borrowck-closures-use-after-free.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/borrowck/borrowck-closures-use-after-free.stderr')
-rw-r--r--tests/ui/borrowck/borrowck-closures-use-after-free.stderr16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/ui/borrowck/borrowck-closures-use-after-free.stderr b/tests/ui/borrowck/borrowck-closures-use-after-free.stderr
new file mode 100644
index 000000000..30900a3b6
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-closures-use-after-free.stderr
@@ -0,0 +1,16 @@
+error[E0502]: cannot borrow `*ptr` as immutable because it is also borrowed as mutable
+ --> $DIR/borrowck-closures-use-after-free.rs:22:8
+ |
+LL | let mut test = |foo: &Foo| {
+ | ----------- mutable borrow occurs here
+LL | ptr = Box::new(Foo { x: ptr.x + 1 });
+ | --- first borrow occurs due to use of `ptr` in closure
+LL | };
+LL | test(&*ptr);
+ | ---- ^^^^^ immutable borrow occurs here
+ | |
+ | mutable borrow later used by call
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0502`.