# Error code E0760

#### Note: this error code is no longer emitted by the compiler.

`async fn`/`impl trait` return type cannot contain a projection or `Self` that references lifetimes from a parent scope.

Erroneous code example:

    struct S<'a>(&'a i32);

    impl<'a> S<'a> {
        async fn new(i: &'a i32) -> Self {
            S(&22)
        }
    }

To fix this error we need to spell out `Self` to `S<'a>`:

    #![allow(unused)]
    fn main() {
    struct S<'a>(&'a i32);

    impl<'a> S<'a> {
        async fn new(i: &'a i32) -> S<'a> {
            S(&22)
        }
    }
    }

This will be allowed at some point in the future, but the implementation is not yet complete. See the issue-61949 for this limitation.