summaryrefslogtreecommitdiffstats
path: root/tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs')
-rw-r--r--tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs b/tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs
new file mode 100644
index 000000000..75e5e7fd4
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs
@@ -0,0 +1,10 @@
+// Check that when we clone a `&T` pointer we properly relate the
+// lifetime of the pointer which results to the pointer being cloned.
+// Bugs in method resolution have sometimes broken this connection.
+// Issue #19261.
+
+fn leak<'a, T>(x: T) -> &'a T {
+ (&x).clone() //~ ERROR cannot return value referencing function parameter `x`
+}
+
+fn main() { }