// build-pass // edition:2018 // Regression test to ensure we handle debruijn indices correctly in projection // normalization under binders. Found in crater run for #85499 use std::future::Future; use std::pin::Pin; pub enum Outcome { Success((S, E)), } pub struct Request<'r> { _marker: std::marker::PhantomData<&'r ()>, } pub trait FromRequest<'r>: Sized { type Error; fn from_request<'life0>( request: &'r Request<'life0>, ) -> Pin>>>; } impl<'r, T: FromRequest<'r>> FromRequest<'r> for Option { type Error = (); fn from_request<'life0>( request: &'r Request<'life0>, ) -> Pin>>> { Box::pin(async move { let request = request; match T::from_request(request).await { _ => todo!(), } }); todo!() } } fn main() {}