bors d71e9c4f10 Auto merge of #4266 - uHOOCCOOHu:fix/async_fn_lifetime, r=flip1995
Ignore generated fresh lifetimes in elision check

<!--
Thank you for making Clippy better!

We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.

If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.

If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.

- [ ] Followed [lint naming conventions][lint_naming]
- [ ] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [ ] Executed `util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `cargo fmt`

Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.

Delete this line and everything above before opening your PR -->

fixes #3988

changelog: Ignore generated fresh lifetimes in elision check.

**HELP**: It seems `tests/ui` are compiled under edition 2015, and I don't know how to add tests for this properly.

Here is the test input it had already passed:
```rust
#![feature(async_await)]
#![allow(dead_code)]

async fn sink1<'a>(_: &'a str) {} // lint
async fn sink1_elided(_: &str) {} // ok

async fn one_to_one<'a>(s: &'a str) -> &'a str { s } // lint
async fn one_to_one_elided(s: &str) -> &str { s } // ok
async fn all_to_one<'a>(a: &'a str, _b: &'a str) -> &'a str { a } // ok
// async fn unrelated(_: &str, _: &str) {} // Not allowed in async fn

// #3988
struct Foo;
impl Foo {
    pub async fn foo(&mut self) {} // ok
}

// rust-lang/rust#61115
async fn print(s: &str) { // ok
    println!("{}", s);
}

fn main() {}

```
2019-07-23 09:52:18 +00:00
..
2019-05-28 15:34:25 +02:00
2019-07-19 07:29:25 +02:00
2019-05-12 13:07:58 +02:00
2019-04-30 16:45:28 -03:00
2019-04-30 16:45:28 -03:00
2019-04-30 16:45:28 -03:00
2019-04-30 16:45:28 -03:00
2019-05-08 09:24:24 +02:00
2019-05-08 09:24:24 +02:00
2019-07-01 15:53:48 +02:00
2019-07-16 21:28:03 +02:00
2019-04-02 11:39:43 -03:00
2019-04-25 19:41:23 -07:00
2019-05-14 13:46:10 +02:00
2019-04-01 20:37:05 +02:00
2019-07-01 07:22:04 +02:00
2019-05-12 10:18:38 +02:00
2019-05-12 10:18:38 +02:00
2019-06-14 10:45:03 +02:00
2019-06-14 10:45:03 +02:00
2019-07-06 12:34:32 +07:00
2019-07-06 12:34:32 +07:00
2019-07-06 12:34:32 +07:00
2019-04-02 11:39:43 -03:00
2019-06-30 18:28:12 -04:00
2019-06-30 18:28:12 -04:00
2019-06-30 18:28:12 -04:00
2019-05-08 09:24:24 +02:00