diff options
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.rs | 10 |
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() { } |