about summary refs log tree commit diff
path: root/tests/ui/borrowck/span-semicolon-issue-139049.fixed
blob: c01d1242dd73f451d6a06bae8003f23e8a0a3f3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Make sure the generated suggestion suggest editing the user code instead of
// the macro implementation (which might come from an external crate).
// issue: <https://github.com/rust-lang/rust/issues/139049>

//@ run-rustfix

#![allow(dead_code)]

// You could assume that this comes from an extern crate (it doesn't
// because an aux crate would be overkill for this test).
macro_rules! perform { ($e:expr) => { D(&$e).end() } }
//~^ ERROR does not live long enough
//~| ERROR does not live long enough

fn main() {
    { let l = (); perform!(l); };
    //~^ SUGGESTION ;

    let _x = { let l = (); let x = perform!(l); x };
    //~^ SUGGESTION let x
}

struct D<T>(T);
impl<T> Drop for D<T> { fn drop(&mut self) {} }
impl<T> D<T> { fn end(&self) -> String { String::new() } }