]> git.proxmox.com Git - rustc.git/blob - src/test/ui/pin-macro/lifetime_errors_on_promotion_misusage.rs
New upstream version 1.60.0+dfsg1
[rustc.git] / src / test / ui / pin-macro / lifetime_errors_on_promotion_misusage.rs
1 // edition:2018
2 #![feature(pin_macro)]
3
4 use core::{
5 convert::identity,
6 marker::PhantomPinned,
7 mem::drop as stuff,
8 pin::pin,
9 };
10
11 fn function_call_stops_borrow_extension() {
12 let phantom_pinned = identity(pin!(PhantomPinned));
13 //~^ ERROR temporary value dropped while borrowed
14 stuff(phantom_pinned)
15 }
16
17 fn promotion_only_works_for_the_innermost_block() {
18 let phantom_pinned = {
19 let phantom_pinned = pin!(PhantomPinned);
20 //~^ ERROR temporary value dropped while borrowed
21 phantom_pinned
22 };
23 stuff(phantom_pinned)
24 }
25
26 fn main() {
27 function_call_stops_borrow_extension();
28 promotion_only_works_for_the_innermost_block();
29 }